我正在使用PhoneGapCLI3.1和XCode5。我试图通过Phonegap和Xcrun生成发布模式的构建。我不想使用Phonegap上传移动设备或其他任何过程。我想通过xcrun来完成它,以便为发布版本分配Mobile但书。
1) cordova构建ios --发布
在平台上编译应用程序"ios“通过命令"/Applications/MAMP/htdocs/MyTest/MyTestApp/platforms/ios/cordova/build”-发布平台"ios“编译成功。
"MyTestApp_Dis.mobileprovision" 2) sudo xcrun -sdk iphoneos PackageApplication -v“ios/build/仿真器/MyTestApp.app”-o“-o/mymac/Desktop/Testnew/MyTestApp.ipa”--标记"iPhone分发:名称(TEAM_ID)“-嵌入
打包应用程序:‘ios/build/仿真器/MyTestApp.app’参数: embed=MyTestApp_Dis.mobileprovision verbose=1 verbose=1 sign=iPhone分发: NAME (TEAM_ID)
环境变量:
HOME = /Users/mymac
SUDO_GID = 20
SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk
VERSIONER_PERL_PREFER_32_BIT = no
MAIL = /var/mail/root
SSH_AUTH_SOCK =/tmp/zsBMC8 zsBMC8 8/侦听器
LANG =en_en.US.UTF 8
USER = root
罗纳梅根
__CF_USER_TEXT_ENCODING = 0x0:0:0
用户名=根
PATH = /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin
SUDO_USER = mymac
SHELL = /bin/bash
术语=x项-256色
SUDO_COMMAND = /usr/bin/xcrun -sdk iphoneos PackageApplication -v ios/build/仿真器/MyTestApp.app -o /-o/mymac/Desktop/Testnew/MyTestApp.ipa-标志iPhone分发:名称(TEAM_ID) -嵌入MyTestApp_Dis.mobileprovision
SUDO_UID = 501
VERSIONER_PERL_VERSION = 5.12
输出目录:'/Users/mymac/Desktop/Testnew/MyTestApp.ipa‘
临时目录:'/tmp/W81FhZ9VAH‘(详细设置后退出时不会删除)
程序/bin/cp返回0:[]
检查原始应用程序
检查了原来的应用程序
嵌入'MyTestApp_Dis.mobileprovision‘
发布于 2013-12-02 09:44:45
嗯,我也有类似的问题。
运行“cordova buld ios --从shell中释放”,然后执行“xcrun.”之后对我有用,好吧。
但是:当在脚本中运行这个序列时,我会收到一个"Codesign检查失败.“错误也是..。
如果我在我的脚本中的cordova和xcrun调用之间插入(比如)一个“等待”循环,它就能工作。
所以-对我来说-似乎,科多瓦回到壳牌,而它还没有完全完成(?)
事实上,如果我把我的脚本写成
#!/bin/bash
cordova build ios --release
sleep 5
sh -c "xcrun ..."对我来说很管用。问题:是科多瓦/phonegap的一个bug吗?
发布于 2013-12-03 10:14:51
同时,我发现:事实上,当科多瓦退出并返回壳牌时,科多瓦相关的活动还没有完成!
在cordova退出之后,需要一段时间才能显示'platforms/ios/AppName/_CodeSignature/CodeResources‘文件。这个文件显然是由xcrun命令启动的“codesign”成功所必需的。
所以我在我的脚本中这样做(我称之为“buildit.sh”)
#!/bin/bash
[...]
cordova build ios --release
signaturefile="platforms/ios/build/device/$appname/_CodeSignature/CodeResources"
echo DEBUG:signatur file is $signaturefile
while [ ! -f $signaturefile ]
do
echo waiting
sleep 1
done
xcrun ...然后,在一个脚本中完成整个构建/打包过程。
但是:从我的ContinuousIntegration服务器Jenkins运行脚本,我发现这个条件可能是必要的,但还不够。从CI中我仍然得到了一个
/usr/bin/codesign --验证-vvvv .程序/usr/bin/codesign返回1:.代码对象根本没有签名。
错误!?
编辑(05.12.2013): --这是因为Jenkins服务无法访问密钥链。例如,在Jenkins工作中,在运行构建脚本之前对密钥链进行解锁,对其进行排序。(可能不是最优雅的解决方案,但至少它会导致问题不在脚本中:)
发布于 2013-11-15 09:35:03
为了跳过代码签名,您可以从控制台执行手动构建,如::
CODE_SIGN_IDENTITY= CODE_SIGNING_REQUIRED=NO使用-configuration、-target和-sdk参数来定义您的构建设置。
禁用代码签名:
*去/Applications。右键单击XCode并选择“显示包内容”。将Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/SDKSettings.plist复制到桌面。(确保实际复制和粘贴。(没有拖放)打开它,在DefaultProperties下将CODE_SIGNING_REQUIRED设置为NO。将其复制回来并替换原始文件。重新启动XCode。打开你的项目。在Project中,选择您的项目并打开您的porject的Build部分(而不是任何特定的目标),在代码签名下查找代码签名标识,对于调试和发布模式,将任何iOS SKD设置为不要代码签名。现在,您应该能够构建您的项目没有任何错误。
做IPA的:
在“Project”中,选择产品,右键单击NameOfYourProject.app并选择'Show‘。创建一个文件夹并将其命名为“有效载荷”,将NameOfYourProject.app移动到“有效载荷”。压缩有效载荷并将其重命名为NameOfYourProject.ipa
https://stackoverflow.com/questions/19783931
复制相似问题