Xcode9 命令行打包变化
程序员文章站
2022-04-12 21:30:22
...
最近更新了Xcode9 原有的自动化打包工具不好用了,会出现如下报错
Error Domain=IDEProvisioningErrorDomain Code=9 ""apple.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="apple.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}
具体如下
根据日志可以看出是归档的时候签名失败
脚本如下
# export archive
echo "export archive project ${cur_proj_path} Date:$(date +%Y/%m/%d/%H:%M:%S)"
xcodebuild -exportArchive -archivePath build/Unity-iPhone.xcarchive \
-exportOptionsPlist ${cur_plist} \
-exportPath build/package
if [ $? -ne 0 ];then
echo "export archive failed."
ErrorEnd
fi
经过分析和查阅资料,发现不同之处就是这个${cur_plist}代表的plist文件,之前直接引用的xcode工程内默认生成的plist文件。现在的话就需要自己添加一个plist文件,并且需要在这个plist文件中添加provisioning profile信息
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>provisioningProfiles</key>
<dict>
<key>%app_bundle_id%</key>
<string>%provisioning profiles name or uuid%</string>
</dict>
<key>signingCertificate</key>
<string>%codesign_identity%</string>
<key>signingStyle</key>
<string>manual</string>
<key>teamID</key>
<string>%teamid%</string>
<key>method</key>
<string>development</string>
</dict>
</plist>
上面代码中的%***%需要替换为自己项目的实际内容,不要%%
%app_bundle_id% 是app的bundleid 一般是com.abc.abc 之类的%provisioning profiles name or uuid% 这个是provisioning profiles 的名称或uuid
%codesign_identity% 这个是签名 可以是名称或uuid 如:"iPhone Developer:zhang san(FFFFFFFF)"
%teamid% 这个是10位的teamid
其中key:method 对应了导出ipa的方式:app-store,ad-hoc,package,enterprise,development,developer-id,and mac-application. 默认是development
更多xcodebuild 的参数可以在命令行输入 xcodebuild -help 查看
下面附上-exportOptionsPlist 的描述
参考:https://*.com/questions/45748140/xcode-9-distribution-build-fails-because-format-of-exportoptions-plist-has-chang?answertab=votes#tab-top
上一篇: 马士兵Oracle
下一篇: 开发中hive常见的调优策略