ios xcode命令

最近更新了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 的描述


 

猜你喜欢

转载自blog.csdn.net/a133900029/article/details/83094423