we have an app integrated with today extension, we use xctool and Jenkins to do continuous build and in-house distribution.
In command line, before we use
xctool -workspace our_workspace.xcworkspace -scheme app_schme -xcconfig path_to_xcconfig -configuration Release build archive -archivePath path_to_archive
to generate archive and then export to .ipa, it works fine.
But right now with today extension, we have to build it with another scheme and xcconfig, we put certificate and provisioning profile in xcconfig, as today extension is a new target and should built with its own certificate and provisioning profile, I'm wondering how to achieve using xctool.
Any help is appreciated.
I finally managed to export ipa files via xcodebuild. Since the xctool is built upon xcodebuild, this answer might help.
First of all, when you create an extension, the extension's target will be embedded into your main app's scheme.
So, there is no need to use two schemes.
Then, in your project settings page, create a new configuration, say
AdHoc
. And then you can set a newProvisioning Profile
in both of your target's build settings.(project settings)
(the build settings of one target)
Then set the right provisioning profiles for your targets (And you'd better set the
code sign identity
to automatic, so that Xcode can determine which code sign identity is to be used).Next step, you can archive your app using xcodebuild with the new configuration you just created above:
In this step, the codesign will sign two of your targets separately by the provisioning profiles you specified.
Finally, export the
.xcarchive
file toipa
, again using xcodebuild;Notice that
-exportWithOriginalSigningIdentity
is set, so that xcodebuild will not re-sign your ipa, and the code signature in the xcarchive file is preserved.