第一个问题
** INTERNAL ERROR: Uncaught exception **
Uncaught Exception: -[__NSCFString objectForKeyedSubscript:]:
unrecognized selector sent to instance 0x7fd4c8e38fd0
原因分析:Export Options plist文件里的格式不对,导致参数无法识别
解决方案:修改Export Options plist文件里的格式
第二个问题:
error: exportArchive: "Cicada.app" requires a provisioning profile.
Error Domain=IDEProvisioningErrorDomain Code=9 ""Cicada.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.}
原因分析:取不到provisioningProfiles的信息
解决方案:在Export Options plist文件里添加以下内容
<key>provisioningProfiles</key>
<dict>
<key>com.lianjia.name</key>
<string>{iOS Provisioning Profiles Name}</string>
</dict>
解释:com.lianjia.name -> APP对应bundleID
{iOS Provisioning Profiles} -> iOS Provisioning Profiles 对应的Name
第三个问题NSLocalizedDescription=Provisioning profile "General" doesn't include signing certificate "iPhone Developer: ******".}
原因分析:Provisioning Profiles文件未更新
解决方案: 资源库---->MobileDevice---->Provisioning Profiles,将里面的齿轮文件全部删除,然后到Xcode下的Preferences下Account重新下载新的齿轮文件以及证书即可
第四个问题
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.}
原因分析:因为解决上一个问题的时候删除了Provisioning Profiles文件,起初设置的profile的UUID,导致设置的对应的Profiles UUID找不到了
解决方案:修改Export Options plist文件里的provisioningProfiles,改为profile name即可,可避免UUID每次更新后都会变的问题
所使用的打包命令:
-
进入build路径clean一下你的工程
xcodebuild clean -workspace ${TARGET_NAME}.xcworkspace -scheme ${TARGET_NAME} -configuration ${BUILD_TYPE}
-
archive导出.xcarchive文件
xcodebuild archive -workspace ${TARGET_NAME}.xcworkspace -scheme ${TARGET_NAME} -archivePath {ARCHIVEPATH}
-
导出ipa包
xcodebuild -exportArchive -archivePath "${ARCHIVEPATH}/${TARGET_NAME}.xcarchive" -exportPath ${EXPORTPATH} -exportOptionsPlist ${EXPORTOPTIONSPLIST}
解释:
${TARGET_NAME}
项目对应targets的名字${BUILD_TYPE}
打包类型 Debug,Release 等${archivePath} .xcarchive
文件导出目录${EXPORTPATH}
导出.ipa包的目录${EXPORTOPTIONSPLIST}
exportOptionsPlist文件所在目录,可判断development, ad-hoc等