xcodebuild(Xcode 4)的CODE_SIGN_IDENTITY参数

问题描述 投票:9回答:5

我正在使用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上则不能使用。

任何想法如何解决此问题?

shell ios4 xcode4 xcodebuild
5个回答
7
投票

较新的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"

3
投票

我有以下问题:

我们的开发人员使用了“ iPhone开发”签名身份,但是我需要在我们的自动集成系统中使用“ iPhone发行版”签名身份。

所以我添加了这一行:

codesign -f --sign "iPhone Distribution: XXXXXXX" ${PATH_TO_APP}

xcodebuildxcrun命令之间交换代码签名身份(请参阅-f标志。


1
投票

据我所知,在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自动更新配置文件时,其名称都会更改。


1
投票

只需使用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"

0
投票

我发现了使用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}

完成您的工作,应该一切准备就绪!

这将绕过空白问题。该插件可以节省生命,因为它运行出色,您可以使用其他参数自定义构建。

© www.soinside.com 2019 - 2024. All rights reserved.