6

我们有一个相当大的代码库,需要很长时间来清理构建。每当我们归档构建(Product->Archive)时,归档过程首先清理所有,然后构建。

这似乎不必要且耗时,我们希望能够在没有干净构建的情况下创建存档。增量构建应该没问题。

有人知道如何在 XCode 归档过程中禁用“全部清除”步骤吗?非常感谢,我在这方面的搜索只提供了关于如何更快地构建的建议(这对我们来说不是有用的建议)。

4

3 回答 3

6

是的,有可能。

正如我所怀疑的那样,这可以从命令行完成。我们花了一段时间才弄清楚这一点。这是我们的 TeamCity 构建脚本的摘录。基本上你生成一个构建(干净或增量是你的选择),然后从构建中生成和 .ipa。这是一个选项(开发人员身份和配置文件 ID 当然被删除):

export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate"

xcodebuild -project <PROJECT NAME>.xcodeproj -target <PROJECT NAME> -configuration Release -sdk iphoneos -arch armv7 ONLY_ACTIVE_ARCH=NO CONTRIB_PATH=%system.agent.home.dir%/Contrib2 CODE_SIGN_IDENTITY="iPhone Developer: <DEV NAME> (ID)"  
PROVISIONING_PROFILE=<PROFILE ID>

rm -rf Payload
mkdir Payload

cp -R build/Release-iphoneos/ Payload/

rm ~/<PROJECT NAME>.ipa
xcrun -sdk iphoneos PackageApplication -v Payload/<PROJECT NAME>.app -o ~/<PROJECT NAME>.ipa --sign "iPhone Developer: <DEV NAME> (ID)" --embed ~/Library/MobileDevice/Provisioning\ Profiles/<PROFILE ID>.mobileprovision
于 2013-02-04T23:06:44.853 回答
0

设置一个持续集成服务器怎么样,这样每次提交都可以触发一个导致归档构建的过程。. . (希望在先运行测试等之后),以及发布 API 文档等。

它仍将花费相同的时间,但由于它在每次签入代码后在后台运行,并且最新的候选版本将始终可用 - 您可能不会注意到。

否则,您会遇到头疼的问题,您必须在发布模式下进行开发而不是调试等 -它只是无法正常工作

这是一个 (OSX) 项目的示例,其中包含一个可以由持续集成服务器运行的构建脚本。我用的是 Bamboo,但如果你想要一些免费的东西,比如 Jenkins:

https://github.com/jasperblues

在上面的项目中,每个成功的构建(每当有人提交代码时触发)都会将 API 文档和测试覆盖率报告发布到 github 页面。. . 对于 iOS 项目,你也可以让它进行归档。

于 2013-02-01T06:24:28.923 回答
-2

增量构建不适用于存档。清理的重点是因为有时您可能会在清理修复的增量构建中遇到问题。这是在开发过程中可以接受的问题,但 Archive 是为分发构建而设计的,分发构建根本不应该有这种风险。

更不用说,您的正常构建过程是构建一个 Debug 构建,而 Archive 将构建一个 Release 构建,因此无论如何您都需要重新构建大部分应用程序(自上次 Release 构建以来发生的任何变化)。

于 2013-02-01T06:22:10.813 回答