构建适用于iPhone的iOS应用程序适用于xCode,但不适用于命令行(xcodebuild)

问题描述:

我目前正在尝试使用自动化构建优化构建和发布流程,该构建可在OSX服务器计算机上运行,​​运行OSX 10.6.7的MacMini安装了xCode 4.0.1和iOS SDK 4.3(Apple的最新版本)。 我跟着Mike Nachbaur's出色的指导,感觉就像我几乎在那里,但我仍然有一个最后的障碍要克服。构建适用于iPhone的iOS应用程序适用于xCode,但不适用于命令行(xcodebuild)

所以。我们有我们的应用程序,它在打造精细:

一)我的笔记本电脑在Xcode

b)由与xcodebuild联编

三)构建机器命令行我的笔记本电脑在Xcode

BUT它不起作用

d)使用xcodebuild从命令行生成机器。

这里是控制台输出的末尾:

CreateUniversalBinary build/Distribution-iphoneos/CallControl.app/CallControl normal "armv6 armv7" 
    cd /Users/ainutveckling/Jenkins/workspace/CallControl_iPhoneContiousBuild/Callcontrol 
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/Users/ainutveckling/Jenkins/tools/jdk6/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    /usr/bin/lipo -create /Users/ainutveckling/Jenkins/workspace/CallControl_iPhoneContiousBuild/Callcontrol/build/Callcontrol.build/Distribution-iphoneos/CallControl.build/Objects-normal/armv6/CallControl /Users/ainutveckling/Jenkins/workspace/CallControl_iPhoneContiousBuild/Callcontrol/build/Callcontrol.build/Distribution-iphoneos/CallControl.build/Objects-normal/armv7/CallControl -output /Users/ainutveckling/Jenkins/workspace/CallControl_iPhoneContiousBuild/Callcontrol/build/Distribution-iphoneos/CallControl.app/CallControl 

GenerateDSYMFile build/Distribution-iphoneos/CallControl.app.dSYM build/Distribution-iphoneos/CallControl.app/CallControl 
    cd /Users/ainutveckling/Jenkins/workspace/CallControl_iPhoneContiousBuild/Callcontrol 
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/Users/ainutveckling/Jenkins/tools/jdk6/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    /Developer/usr/bin/dsymutil /Users/ainutveckling/Jenkins/workspace/CallControl_iPhoneContiousBuild/Callcontrol/build/Distribution-iphoneos/CallControl.app/CallControl -o /Users/ainutveckling/Jenkins/workspace/CallControl_iPhoneContiousBuild/Callcontrol/build/Distribution-iphoneos/CallControl.app.dSYM 
ProcessProductPackaging "/Users/ainutveckling/Library/MobileDevice/Provisioning Profiles/F792F2E5-45DB-43C7-969C-6012C59BF778.mobileprovision" build/Distribution-iphoneos/CallControl.app/embedded.mobileprovision 
    cd /Users/ainutveckling/Jenkins/workspace/CallControl_iPhoneContiousBuild/Callcontrol 
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/Users/ainutveckling/Jenkins/tools/jdk6/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    <com.apple.tools.product-pkg-utility> "/Users/ainutveckling/Library/MobileDevice/Provisioning Profiles/F792F2E5-45DB-43C7-969C-6012C59BF778.mobileprovision" -o /Users/ainutveckling/Jenkins/workspace/CallControl_iPhoneContiousBuild/Callcontrol/build/Distribution-iphoneos/CallControl.app/embedded.mobileprovision 

** BUILD FAILED ** 

+ failed build 
+ echo 'Failed: build' 
Failed: build 
+ exit 1 
Notifying upstream projects of job completion 
Finished: FAILURE 

在我的机器,它看起来几乎一样:

GenerateDSYMFile build/Distribution-iphoneos/CallControl.app.dSYM build/Distribution-iphoneos/CallControl.app/CallControl 
    cd /Users/anders/Utveckling/CallControl/iphone/totala_samtalslistan/Callcontrol 
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/anders/Utveckling/android-sdk-mac_x86/tools:/Users/anders/Utveckling/android-sdk-mac_x86/platform-tools:" 
    /Developer/usr/bin/dsymutil /Users/anders/Utveckling/CallControl/iphone/totala_samtalslistan/Callcontrol/build/Distribution-iphoneos/CallControl.app/CallControl -o /Users/anders/Utveckling/CallControl/iphone/totala_samtalslistan/Callcontrol/build/Distribution-iphoneos/CallControl.app.dSYM 

ProcessProductPackaging "/Users/anders/Library/MobileDevice/Provisioning Profiles/F792F2E5-45DB-43C7-969C-6012C59BF778.mobileprovision" build/Distribution-iphoneos/CallControl.app/embedded.mobileprovision 
    cd /Users/anders/Utveckling/CallControl/iphone/totala_samtalslistan/Callcontrol 
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/anders/Utveckling/android-sdk-mac_x86/tools:/Users/anders/Utveckling/android-sdk-mac_x86/platform-tools:" 
    <com.apple.tools.product-pkg-utility> "/Users/anders/Library/MobileDevice/Provisioning Profiles/F792F2E5-45DB-43C7-969C-6012C59BF778.mobileprovision" -o /Users/anders/Utveckling/CallControl/iphone/totala_samtalslistan/Callcontrol/build/Distribution-iphoneos/CallControl.app/embedded.mobileprovision 

** BUILD SUCCEEDED ** 

但成功...... 如果我开始没关系直接从构建机器上的命令行构建,或者如果它是由Hudson启动的,则结果相同。 上面指出的证书似乎已经到位。

我几乎已经准备好放弃这件事了,所以我非常感谢任何帮助,以澄清事情!

最好的问候, 安德斯

+0

你有没有解决这个问题?我似乎遇到了同样的错误。 – nazbot 2011-05-17 16:25:16

+0

不,我用旧的瑞典装置“放弃永远不会太晚”,而且,恩,放弃了。 我可能稍后再给它一些时间,但暂时不会。有趣的是,虽然看到其他人有同样的问题。如果您发现任何问题,我会非常感激这里的评论。 – AndersG 2011-05-18 12:23:25

+0

尝试解锁您的钥匙串。我认为这就是我所做的解决这个问题的方法(如果确实是相同的错误)。 – nazbot 2011-05-18 14:52:32

我遇到了你更新到新的分发证书和供给配置文件后,上面显示我的构建机器上的具体错误。在ProcessProductPackaging步骤之后,它将显示** BUILD FAILED **消息。

但是,当在构建机器上手动运行构建时,我遇到了KeyChain权限对话框。点击“始终允许”解决问题。

这除了在构建脚本解锁:

security unlock -p $PASSWORD 
+0

谢谢,我会尽快尝试... – AndersG 2011-06-28 09:24:59

这行代码添加到您的脚本:

security list-keychains -s $KEYCHAINFILE

这已固定我的问题。