用今天的扩展xctool构build

我们有一个与今天的扩展集成的应用程序,我们使用xctool和Jenkins进行连续构build和内部分发。

在命令行中,在我们使用之前

xctool -workspace our_workspace.xcworkspace -scheme app_schme -xcconfig path_to_xcconfig -configuration Release build archive -archivePath path_to_archive 

生成存档,然后导出到.ipa,它工作正常。

但现在扩展,我们必须build立它与另一个计划和xcconfig,我们把证书和供应configuration文件在xcconfig,因为今天扩展是一个新的目标,应该build立自己的证书和configuration文件,我想知道如何实现使用xctool。

任何帮助表示赞赏。

我终于设法通过xcodebuild导出ipa文件。 由于xctool是build立在xcodebuild之上的,所以这个答案可能会有所帮助。

首先,当你创build一个扩展,扩展的目标将embedded到你的主应用程序的scheme。

在这里输入图像说明

所以,没有必要使用两个scheme。

然后,在你的项目设置页面,创build一个新的configuration,说AdHoc 。 然后,您可以在两个目标的构build设置中设置一个新的Provisioning Profile

在这里输入图像说明

(项目设置)

在这里输入图像说明

(一个目标的构build设置)

然后为您的目标设置正确的configuration文件(您最好将code sign identity设置为自动,以便Xcode可以确定使用哪个代码标识标识)。

下一步,您可以使用xcodebuild将刚刚创build的新configuration存档为您的应用程序:

 xcodebuild -project Extension\ Demo.xcodeproj -scheme Extension\ Demo -sdk iphoneos -archivePath ./Build/extension-demo.xcarchive -configuration AdHoc archive 

在这一步中,密码将通过您指定的供应configuration文件单独签署两个目标。

最后,将.xcarchive文件导出到ipa ,再次使用xcodebuild;

 xcodebuild -exportArchive -archivePath ./Build/extension-demo.xcarchive -exportPath ./Build/extension-demo.ipa -exportWithOriginalSigningIdentity 

请注意,设置了-exportWithOriginalSigningIdentity ,以便xcodebuild不会重新签名您的ipa,并保留xcarchive文件中的代码签名。