我们有一个与今天扩展集成的应用程序,我们使用xctool和Jenkins进行持续构建和内部分发。
在命令行中,我们使用
之前xctool -workspace our_workspace.xcworkspace -scheme app_schme -xcconfig path_to_xcconfig -configuration Release build archive -archivePath path_to_archive
生成存档然后导出到.ipa,它工作正常。
但是现在有了今天的扩展,我们必须使用另一个方案和xcconfig构建它,我们在xcconfig中放置证书和配置文件,因为今天扩展是一个新目标,应该使用自己的证书和配置文件构建,我'我想知道如何使用xctool。
感谢任何帮助。
答案 0 :(得分:3)
我终于通过xcodebuild设法导出了ipa文件。由于xctool是基于xcodebuild构建的,因此这个答案可能有所帮助。
首先,当您创建扩展程序时,扩展程序的目标将嵌入到主应用程序的方案中。
因此,没有必要使用两种方案。
然后,在项目设置页面中,创建一个新配置,例如AdHoc
。然后,您可以在两个目标的构建设置中设置新的Provisioning Profile
。
(项目设置)
(一个目标的构建设置)
然后为您的目标设置正确的配置文件(并且您最好将code sign identity
设置为自动,以便Xcode可以确定要使用哪个代码标识标识)。
下一步,您可以使用上面刚刚创建的新配置使用xcodebuild归档您的应用程序:
xcodebuild -project Extension\ Demo.xcodeproj -scheme Extension\ Demo -sdk iphoneos -archivePath ./Build/extension-demo.xcarchive -configuration AdHoc archive
在此步骤中,代码签名将通过您指定的配置文件单独签署两个目标。
最后,再次使用xcodebuild将.xcarchive
文件导出到ipa
;
xcodebuild -exportArchive -archivePath ./Build/extension-demo.xcarchive -exportPath ./Build/extension-demo.ipa -exportWithOriginalSigningIdentity
请注意-exportWithOriginalSigningIdentity
已设置,因此xcodebuild不会重新签名您的ipa,并保留xcarchive文件中的代码签名。