Skip to content
/ swm Public

Swift Modules, a swift module (or package) manager #fuck_xcode #terminal_rocks

Notifications You must be signed in to change notification settings

jankuca/swm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swift Modules

The Swift Modules manager similar to the JavaScript world's npm and bower

Installation

$ curl "https://raw.github.com/jankuca/swm/master/install.sh" | bash

Usage

Dependencies

Module dependencies are declared in a swiftmodule.json file in the JSON format:

{
  "name": "ModuleName",
  "directories": {
    "source": "src"
  },
  "dependencies": {
    "Dependency": "jankuca/dependecy",
    "MyOtherDependency": "git://github.com/jankuca/other-dependency"
  }
}
$ swm install

The dependencies are then importable via the import Swift statement using the names specified in the dependencies map of the swiftmodule.json file.

Using packages without a swiftmodule.json file

If a package does not include the swiftmodule.json file, the including package can specify the source file directory of the dependency in its swiftmodule.json.

{
  "name": "ModuleName",
  "dependencies": {
    "Dependency": "jankuca/dependency @source:src"
  }
}

Building

SWM can also build the actual app (the root module). If a source directory is specified in the swiftmodule.json file, all .swift files inside that subtree are compiled into a binary.

$ swm build

Note that swm install also runs this internally.

Code Signing

Once the app is built, it needs to be code-signed for distribution using a certificate obtained from Apple. SWM makes this dead simple by listing the available certificates and provisioning profiles.

There are two signing modes:

  1. store – should be used for signing for the App Store or other distribution
  2. device – should be used for signing for development and testing purposes; this adds a provisioning profile to the app package.
$ swm sign store
Certificate:
  1) CF826998D43332…499C595FCE980F20  "iPhone Developer: … (…)"
1
Signature for device
  Certificate: CF826998D43332…499C595FCE980F20
  Provisioning Profile: (none)
ok

The command prompts for the certificate number (1 in the case above).

$ swm sign device
Certificate:
  1) CF826998D43332…499C595FCE980F20  "iPhone Developer: … (…)"
1
Provisioning Profile:
  1) 7716db78-0b66-…-9fbf-3a9b653ec84a
1
Signature for device
  Certificate: CF826998D43332…499C595FCE980F20
  Provisioning Profile: 7716db78-0b66-…-9fbf-3a9b653ec84a
ok

About

Swift Modules, a swift module (or package) manager #fuck_xcode #terminal_rocks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published