xcodebuild的CODE_SIGN_IDENTITY参数(Xcode4)

Dmy*_*tro 9 shell xcodebuild ios4 xcode4

我正在使用xcodebuildXcode3附带的实用程序来自动化我在Hudson下的构建.该命令如下所示:

xcodebuild -project Project.xcodeproj -target Target -configuration Release -sdk iphoneos CODE_SIGN_IDENTITY[sdk=iphoneos*]="iPhone Distribution:XXXXXX"
Run Code Online (Sandbox Code Playgroud)

我正在尝试对Xcode4使用相同的命令,但似乎xcodebuild只是忽略了CODE_SIGN_IDENTITY参数和符号,其中包含为Xcode中的目标选择的配置文件.

这对我来说非常重要,因为我必须使用3-4个不同的配置文件签署构建.它适用于Xcode3,但不适用于Xcode4.

知道如何解决这个问题吗?

小智 7

较新的xcodebuild现在允许指定设置.来自developer.apple.com:

xcodebuild [-project projectname] [-target targetname ...]
           [-configuration configurationname] [-sdk [sdkfullpath | sdkname]]
           [buildaction ...] [setting=value ...] [-userdefault=value ...]
Run Code Online (Sandbox Code Playgroud)

我还找到了这个资源来解释可用的设置

CODE_SIGN_IDENTITY (Code Signing Identity)
    Description: Identifier. Specifies the name of a code signing identity.
    Example value: iPhone Developer
Run Code Online (Sandbox Code Playgroud)

但是,可用命令的索引中缺少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"
Run Code Online (Sandbox Code Playgroud)

  • 或者使用`/ usr/libexec/PlistBuddy -c"打印UUID"/ dev/stdin <<< $(security cms -D -i pathtofile.provision) (4认同)
  • "PROVISIONING_PROFILE"的参数必须是UUID,例如`FAEB2AC2-33DB-4192-9711-06BD5ACD5ADD`.您可以从[iPhoneConfigUtility]获取此UUID(http://support.apple.com/downloads/#iphone%20configuration %20utility)或者只是用vim打开.mobileprovision文件 (2认同)

Mis*_*nko 1

据我所知,Xcode 4 签名是通过xcrun工具完成的:

/usr/bin/xcrun -sdk "iphoneos" PackageApplication -v "myapp.app" -o "myapp.ipa" --sign "iPhone Developer: XXXXX" --embed "XXXXX.mobileprovisioning"
Run Code Online (Sandbox Code Playgroud)

使用起来有点不舒服,因为您必须指定您的身份和 mobileprovisioning 文件。如果您使用~/Library/MobileDevice/Provisioning Profiles/目录中的最后一个,则尤其不舒服,因为每次从配置门户自动更新配置配置文件时,其名称都会更改。