Description
Right now a lot of our users rely on opening the Xcode project in platforms/ios
and manually going through Xcode's Archive step in order to submit a binary to the store.
xcodebuild
has an archive
action that performs the same kind of build. Xcode's toolchain attaches additional meaning to archive
builds - for instance, only archive
triggers full Bitcode generation as opposed to markers-only generation in regular builds of projects that enable Bitcode. So it's not the same as doing a normal build in the Release
configuration.
I propose that a new command is added to the CLI, one that invokes xcodebuild archive
internally, and depending on switches either reveals the created archive in Xcode's Organizer, runs a validation or even initiates App Store publishing right from the command-line. Ideally, this new command will be hook-able so that actions that make sense for App Store builds can run.
I'm not familiar whether there's a special kind of build that has to be done for Android in order to get the app in Store-ready state, but I think that what this command can do for both Android and iOS is to always codesign with distribution credentials and allow the resulting package to be saved in a custom location, rather than the platform folder.
Examples:
tns package ios --archive
- perform xcodebuild archive
and open the archive in Xcode. Could be the default action.
tns package ios --output <path-to-new-ipa-location>
tns package ios --verify
- run itmstransporter
's verification on the archive
tns package ios --publish
- run itmstransporter
s publish step interactively
tns package android --output <path-to-new-apk-location>