xctool构建与今天的扩展

时间:2014-12-12 14:21:21

标签: ios xcodebuild ios8-today-widget xctool

我们有一个与今天扩展集成的应用程序,我们使用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。

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

我终于通过xcodebuild设法导出了ipa文件。由于xctool是基于xcodebuild构建的,因此这个答案可能有所帮助。

首先,当您创建扩展程序时,扩展程序的目标将嵌入到主应用程序的方案中。

enter image description here

因此,没有必要使用两种方案。

然后,在项目设置页面中,创建一个新配置,例如AdHoc。然后,您可以在两个目标的构建设置中设置新的Provisioning Profile

enter image description here

(项目设置)

enter image description here

(一个目标的构建设置)

然后为您的目标设置正确的配置文件(并且您最好将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文件中的代码签名。