xcodebuild(Xcode 4)的CODE_SIGN_IDENTITY参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xcodebuild(Xcode 4)的CODE_SIGN_IDENTITY参数相关的知识,希望对你有一定的参考价值。
我正在使用Xcode 3附带的xcodebuild
实用程序来自动化Hudson下的构建。该命令如下所示:
xcodebuild -project Project.xcodeproj -target Target -configuration Release -sdk iphoneos CODE_SIGN_IDENTITY[sdk=iphoneos*]="iPhone Distribution:XXXXXX"
我正在尝试对Xcode 4使用相同的命令,但是xcodebuild
似乎只是忽略了CODE_SIGN_IDENTITY
参数,并使用为Xcode中的目标选择的配置文件进行签名。
这对我来说非常关键,因为我必须使用3-4个不同的配置文件进行签名。在Xcode 3上可以正常使用,但在Xcode 4上则不能使用。
任何想法如何解决此问题?
较新的xcodebuild现在允许指定设置。取自developer.apple.com:
xcodebuild [-project projectname] [-target targetname ...]
[-configuration configurationname] [-sdk [sdkfullpath | sdkname]]
[buildaction ...] [setting=value ...] [-userdefault=value ...]
我也找到了解释available settings的资源
CODE_SIGN_IDENTITY (Code Signing Identity)
Description: Identifier. Specifies the name of a code signing identity.
Example value: iPhone Developer
但是,可用命令的索引中缺少PROVISIONING_PROFILE。
我最终使用的命令指定了“ CODE_SIGN_IDENTITY”和“ PROVISIONING_PROFILE”设置。
xcodebuild -sdk <iphoneos> -target <target_name> -configuration <Debug> CODE_SIGN_IDENTITY="iPhone Developer: Mister Smith" PROVISIONING_PROFILE="XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX"
我有以下问题:
我们的开发人员使用了“ iPhone开发”签名身份,但是我需要在我们的自动集成系统中使用“ iPhone发行版”签名身份。
所以我添加了这一行:
codesign -f --sign "iPhone Distribution: XXXXXXX" ${PATH_TO_APP}
在xcodebuild
和xcrun
命令之间交换代码签名身份(请参阅-f
标志。
据我所知,在Xcode 4中,签名是使用xcrun
工具完成的:
/usr/bin/xcrun -sdk "iphoneos" PackageApplication -v "myapp.app" -o "myapp.ipa" --sign "iPhone Developer: XXXXX" --embed "XXXXX.mobileprovisioning"
使用起来有点不舒服,因为您必须同时指定身份和移动配置文件。如果您使用~/Library/MobileDevice/Provisioning Profiles/
目录中的最后一个,尤其不舒服,因为每次从Provisioning Portal自动更新配置文件时,其名称都会更改。
只需使用CODE_SIGN_IDENTITY =“ iPhone Distribution:XXXXXX”和Xcode 4(不带[sdk = iphoneos *])
xcodebuild -project Project.xcodeproj -target Target -configuration Release -sdk iphoneos CODE_SIGN_IDENTITY="iPhone Distribution:XXXXXX"
我发现了使用jenkins构建的绝佳解决方法。
首先,在设置工作之前,下载一个名为:的jenkins插件:
参数化触发器插件
https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin
完成后,创建您的工作,并在创建工作时,选择
'此构建已参数化'复选框
创建一个字符串参数。我叫我CODE_SIGN_IDENTITY。
因此,字符串参数中的名称字段应为:
名称:CODE_SIGN_IDENTITY
默认值:iPhone开发人员:XXX XXXXX
描述:无论您想放在那里什么
然后在您的Xcode插件中,找到“自定义xcodebuild参数”字段。
在“自定义xcodebuild自变量”字段中,放置以下值:
CODE_SIGN_IDENTITY = $ {CODE_SIGN_IDENTITY}
完成您的工作,应该一切准备就绪!
这将绕过空白问题。该插件可以节省生命,因为它运行出色,您可以使用其他参数自定义构建。
以上是关于xcodebuild(Xcode 4)的CODE_SIGN_IDENTITY参数的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 4 UI 可以很好地构建应用程序,但命令行 xcodebuild 在代码签名时失败
xcodebuild构建时报错unknown error -1=ffffffffffffffff Command /bin/sh failed with exit code 1