当前位置:   article > 正文

Xcode9 xcodebuild 命令行打包遇到的坑与解决方案_xcode no profile for team 'shanghai flexem technol

xcode no profile for team 'shanghai flexem technology co.,ltd.

主要涉及的打包脚本命令

if [ $xcodeversion -lt 830 ]

then

#Xcode 8.3 以下打包时使用该脚本

xcodebuild -exportArchive -exportFormat ipa -archivePath ./${schemeName}.xcarchive -exportPath ./${schemeName}.ipa -exportProvisioningProfile "${codesign}"  -configuration ${deployPattern}     #"Debug"

else

#Xcode 8.3 以上使用打包时,使用该脚本

xcodebuild -exportArchive -archivePath ./${schemeName}.xcarchive -exportPath ./  -exportOptionsPlist ${optionsDevelopmentPlistPath}   -allowProvisioningUpdates

echo "==============================make ipa end `date "+%Y.%m.%d_%H.%M.%S"`=============================="

fi


在Xcode8.3 以前使用上面的打包脚本,Xcode8.3 以下使用下面的命令 

Xcode 8.3 以后脚本打包时,需要提供对应的plist说明文件 plist中主要包含内容如下


在Xcode9之前是不需要provisionProfiles ,在9之后需要加入 provisionProfiles,才可以打包通过

    method 包含四种: app-store, ad-hoc, enterprise, development

 对应不同的打包环境 ,在不同的打包环境下使用不同的value

第一个问题:

<code style="font-family:Menlo,Monaco,Consolas,"Courier New",monospace; white-space:pre-wrap; display:block; margin:2px; word-break:break-all; line-height:18.000001907348633px; padding:0px!important; border:none!important" class="hljs">error: exportArchive: "XXX.app" requires a provisioning profile.
Error Domain=IDEProvisioningErrorDomain Code=9 ""XXX.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="Cicada.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}
</code>

原因分析:取不到plist 中的provisioningProfiles的信息
解决方案:在Export Options plist文件里添加以下内容 provisioningProfiles 字典  key->APP对应bundleID  value->{iOS Provisioning Profiles}

<code style="font-family:Menlo,Monaco,Consolas,"Courier New",monospace; white-space:pre-wrap; display:block; margin:2px; word-break:break-all; line-height:18.000001907348633px; padding:0px!important; border:none!important" class="hljs"><key>provisioningProfiles</key>
    <dict>
        <key>com.lianjia.name</key>
        <string>{iOS Provisioning Profiles Name}</string>
    </dict></code>

第二个问题

<code style="font-family:Menlo,Monaco,Consolas,"Courier New",monospace; white-space:pre-wrap; display:block; margin:2px; word-break:break-all; line-height:18.000001907348633px; padding:0px!important; border:none!important" class="hljs">Error Domain=IDEProfileLocatorErrorDomain Code=4 "No "iOS App Development" profiles for team '*****' matching '1825adbe-226c-401e-940d-d3dcede386*' are installed." UserInfo={NSLocalizedDescription=No "iOS App Development" profiles for team '*****' matching '1825adbe-226c-401e-940d-d3dcede386a*' are installed., NSLocalizedRecoverySuggestion=Install a profile (by dragging and dropping it onto Xcode's dock item) or specify a different profile in your Export Options property list.}
</code>

原因分析: 打包时提供的mehtod 的方法value 不对,改为method 中的value 修改为打包证书相同的环境即可
解决方案:修改method的value为对应的  值,即可

所使用的打包命令:

  1. 进入build路径clean一下你的工程
    xcodebuild clean -workspace ${TARGET_NAME}.xcworkspace -scheme ${TARGET_NAME} -configuration ${BUILD_TYPE}

  2. archive导出.xcarchive文件

    xcodebuild archive -workspace ${TARGET_NAME}.xcworkspace -scheme ${TARGET_NAME} -archivePath {ARCHIVEPATH}

  3. 导出ipa包
    xcodebuild -exportArchive -archivePath "${ARCHIVEPATH}/${TARGET_NAME}.xcarchive" -exportPath ${EXPORTPATH} -exportOptionsPlist ${EXPORTOPTIONSPLIST}

解释:

  1. ${TARGET_NAME} 项目对应targets的名字
  2. ${BUILD_TYPE} 打包类型 Debug,Release 等
  3. ${archivePath} .xcarchive文件导出目录
  4. ${EXPORTPATH} 导出.ipa包的目录
  5. ${EXPORTOPTIONSPLIST} exportOptionsPlist文件所在目录,可判断development, ad-hoc等
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号