forcedotcom/SalesforceMobileSDK-iOS-Package — pull request #1 by khawkins (2013-05-20 17:15:05+00:00)
Title: Initial package

Here's the initial npm package for iOS. At a high level, the structure is as follows.

- There's a submodule reference to a new repo that will contain the iOS [distribution packages](https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Distribution/tree/unstable20). When we release, the npm package will snapshot those artifacts as part of its release. **Note:** As you can see from the unstable20 distribution repo, the Cordova distribution will have a folder of Cordova-specific artifacts as well (config.xml, cordova.js, etc.), for developers who want to include Cordova into their existing apps.

- There's another submodule reference to the [shared repo](https://github.com/forcedotcom/SalesforceMobileSDK-Shared/tree/unstable20). Like the binaries, the npm module will reference the proper hybrid artifacts associated with the package rev/version.

- Other than the repo/package structure itself, the only real *code* of interest in this review is probably the forceios.js npm module, which wrangles all of these artifacts locations together when creating your app from the template.

NB: Out of the box, **This code does not work prior to release.** That's because we're trying not to store unnecessary binaries (like nightlies) in GitHub. I need to create a script that can populate the submodule folder with ad hoc distributions, for package testing. I currently do that by hand.

I'd really like to find a better solution for hosting binaries. But when we do, the binaries piece is encapsulated enough that we should be able to just pull it out and replace it.