欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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.}

具体如下 

Xcode9 命令行打包变化

根据日志可以看出是归档的时候签名失败   

脚本如下

# 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 的描述

Xcode9 命令行打包变化


参考:https://*.com/questions/45748140/xcode-9-distribution-build-fails-because-format-of-exportoptions-plist-has-chang?answertab=votes#tab-top