iOS 命令打包

本文详细介绍了如何使用命令行在iOS项目中生成archive包和ipa包。首先,通过xcodebuild命令行工具,指定workspace、scheme和archivePath来创建archive。接着,使用exportArchive命令导出ipa包,同时提到了ExportOptions.plist文件的作用和配置。文章还涵盖了打包过程中的错误处理,包括缺少provisioning profile的问题及其解决办法。
摘要由CSDN通过智能技术生成

参考了   点击打开链接   点击打开链接    


现在自己工程配置好所有的证书 等等  运行没问题后 CD 到项目跟目录   

1.生成archive包,此处的”ScalperMerchant”是项目的名字

“-workspace”: 如果项目中没有使用到CocoaPods,则该命令可以不用。
“-scheme”: 和工程名字一样,
“-archivePath”: 后面跟的是编译后生成的archive包的路径。


xcodebuild -workspace ScalperMerchant.xcworkspace  -scheme ScalperMerchant -archivePath build/ScalperMerchant.xcarchive archive


2.命令执行成功后会显示”* ARCHIVE SUCCEEDED *“,在工程下面生成了一个build文件夹,iCan xcarchive包已经生成


xcodebuild -exportArchive -archivePath build/ScalperMerchant.xcarchive -exportPath build -exportOptionsPlist ExportOptions.plist

导出ipa 包       

ExportOptions.plist文件可以自己在Xcode-Product-archive   打出来后   export出来  后 会获取到plist文件



第二种命令

  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等

实例

xcodebuild clean -workspace ScalperMerchant.xcworkspace -scheme ScalperMerchant -configuration Debug


xcodebuild archive -workspace ScalperMerchant.xcworkspace -scheme ScalperMerchant -archivePath build/ScalperMerchant.xcarchive archive


xcodebuild -exportArchive -archivePath build/ScalperMerchant.xcarchive -exportPath build -exportOptionsPlist ExportOptions.plist



如果要打  release 的  包   改变  

xcodebuild clean -workspace ScalperMerchant.xcworkspace -scheme ScalperMerchant -configuration  Release

然后在ExportOptions.plist 修改 method  为 app-store 

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

provisioningProfiles   修改为  上线配置文件    

signingCertificate   修改为上线证书



第一个报错

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

原因分析:取不到plist 中的provisioningProfiles的信息

解决方案:在Export Options plist文件里添加以下内容 provisioningProfiles 字典  key->APP对应bundleID  value->{iOS Provisioning Profiles}

<key>provisioningProfiles</key>
    <dict>
        <key>com.lianjia.name</key>
        <string>{iOS Provisioning Profiles Name}</string>
    </dict>


第二个报错

Code Signing Error: Signing for "ipaAuto" requires a development team. Select a development team in the project editor.Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.2'** BUILD FAILED **
说明我们在工程中没有配置好 BundleIdentifier 和
Provisioning Profile。因为xcodebuild命令如果没有指定具体参数,就会采用项目中的默认配置。配置好项目中的
BundleIdentifier 和 Provisioning Profile 文件,保证项目正常运行后,再次使用命令,就能得到正确的提示。


第三个报错 
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.}

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

第四个报错
error: exportArchive: The data couldn’t be read because it isn’t in the correct format.

Error Domain=NSCocoaErrorDomain Code=3840 "No value." UserInfo={NSDebugDescription=No value., NSFilePath=/var/folders/_r/3_bstv751wvd5312csbl2hp00000gn/T/ipatool-json-filepath-h8AXks}

Xcode-Product-archive   打出来后   export出来时     



以后遇到了再写  




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值