6

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

任何帮助表示赞赏。

4

1 回答 1

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

在此步骤中,协同设计将通过您指定的配置文件分别对您的两个目标进行签名。

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

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

请注意-exportWithOriginalSigningIdentity已设置,因此 xcodebuild 不会重新签署您的 ipa,并且 xcarchive 文件中的代码签名被保留。

于 2014-12-24T13:47:12.987 回答