从命令行生成Xcode应用程序

从命令行生成Xcode应用程序,xcode,build,continuous-integration,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 ${

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

#!/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 **
这是当我调用as
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 **

我的资源调配配置文件确实存在。

您有两个问题。首先,在Xcode 4和更高版本中有一些东西正在改变我认为是命令行构建设置的搜索路径或访问权限,因为我在从命令行构建而不是直接从Xcode构建时,同样的代码设计[BEROR]也失败了

我希望我知道第一个问题的答案。我尝试过显式地设置开发者身份,使用通用的“iPhone开发者”,更新项目设置,使[sdk iphoneos*]=”等,但我还没有找到解决方案

这以前对你有用吗?然后你做了Mac OS/Xcode更新,现在不行了?这就是我的困境

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


…A

我与许多人进行了交谈,并确定当您从10.6或更高版本中以活动用户身份运行的crontab启动构建时,默认的密钥链路径与您以交互方式登录时不同。这让我觉得是一个bug,尽管你可能会说它“更安全”。下面是如何看到区别:使用bash工具
安全列表钥匙链。当我在从终端交互运行的构建脚本顶部执行此操作时,它会显示my/User/acoven/。。。钥匙链。当我从crontab执行此操作时,所有我的/User/acoven/。。。钥匙链不在活动钥匙链路径中。