Xcode从命令行构建应用程序

时间:2011-12-16 12:15:26

标签: xcode build continuous-integration

我正在使用此脚本从命令行构建应用程序:

#!/bin/bash

TARGET="signtest"
CONFIGURATION="Debug"
SDK="iphoneos"    
IDENTITY="iPhone Developer: Marcin Zyga (CLJR93MXJ6)"
KEYCHAIN="/Users/admin/Library/Keychains/login.keychain"
PASSWORD="admin"


security unlock-keychain -p ${PASSWORD} ${KEYCHAIN}
xcodebuild -target "${TARGET}" -configuration ${CONFIGURATION} -sdk iphoneos CODE_SIGN_IDENTITY="${IDENTITY}" PROVISIONING_PROFILE="94D99766-0268-4E0E-B8D1-053063BB2DA1" OTHER_CODE_SIGN_FLAGS="--keychain ${KEYCHAIN}"

我正在尝试编译应用程序并使用我的配置文件进行签名。我得到了:

Build settings from command line:
    CODE_SIGN_IDENTITY = iPhone Developer: Marcin Zyga (CLJR93MXJ6)
    OTHER_CODE_SIGN_FLAGS = --keychain /Users/admin/Library/Keychains/login.keychain
    PROVISIONING_PROFILE = 94D99766-0268-4E0E-B8D1-053063BB2DA1
    SDKROOT = iphoneos5.0

=== BUILD NATIVE TARGET signtest OF PROJECT signtest WITH CONFIGURATION Debug ===
Check dependencies
[BEROR]Code Sign error: The identity 'iPhone Developer: Marcin Zyga (CLJR93MXJ6)' doesn't match any valid certificate/private key pair in the default keychain


** BUILD FAILED **

当我调用sudo su -时,我可能错过了我的钥匙串中的有效配置。

当我以管理员用户身份调用此构建脚本时,我得到了这个:

Build settings from command line:
    CODE_SIGN_IDENTITY = iPhone Developer: Marcin Zyga (CLJR93MXJ6)
    OTHER_CODE_SIGN_FLAGS = --keychain /Users/admin/Library/Keychains/login.keychain
    PROVISIONING_PROFILE = 94D99766-0268-4E0E-B8D1-053063BB2DA1
    SDKROOT = iphoneos5.0

=== BUILD NATIVE TARGET signtest OF PROJECT signtest WITH CONFIGURATION Debug ===
Check dependencies
[BEROR]Code Sign error: Provisioning profile '94D99766-0268-4E0E-B8D1-053063BB2DA1' can't be found


** BUILD FAILED **

我的配置文件绝对存在。

1 个答案:

答案 0 :(得分:2)

你有两个问题。第一个是在Xcode 4及更高版本中有一些东西正在改变我认为的命令行构建设置的搜索路径或访问权限,因为我也在使用命令行构建时使用相同的代码[BEROR]失败但是不是直接Xcode。

我希望我知道第一个问题的答案。我尝试使用通用的“iPhone Developer”明确设置开发者身份,更新项目设置以获得[sdk-iphoneos *] =“”等,然后我必须找到解决方案。

这是否适用于您,然后您进行了Mac OS / Xcode更新,现在却没有?那是我的困境。

无论如何,你的第二个问题很容易解决:传递PROVISIONING PROFILE的整个路径和文件名,a-la“/Users/zyga/Library/MobileDevice/ProvisioningProfiles/94D99766-0268-4E0E-B8D1-053063BB2DA1.mobileprovision”

... A