xcodebuild & xcrun & xctool 脚本打包

Posted iOS张先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xcodebuild & xcrun & xctool 脚本打包相关的知识,希望对你有一定的参考价值。


使用脚本打包可以有三种方法。

不管使用哪种方法,项目的相关设置必须正确,如证书,描述文件等。


注意事项:
1、打包时必须进入项目目录进行
2、获取证书名称:Launchpad->其他->钥匙串访问->选择证书->鼠标右击->显示简介->细节->常用名称->复制
3、获取描述文件UUID:打开Xcode->菜单栏->Preferences->Accounts->Apple IDs->帐号->show Details->Provisioning Profiles->选择项目中使用的描述文件->鼠标右击->show in Finder
4、获取target/schemes:终端->cd 项目目录->进入项目目录后,执行命令"xcodebuild -list"

xcodebuild:https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html
xctool:https://github.com/facebook/xctool

脚本执行方法:终端-sh 脚本文件-回车


方法一

只是使用xcodebuild生成spa包。

脚本代码如下:



  1. # xcodebuild  

  2.   

  3. pwd  

  4.   

  5. # 1 删除旧文件  

  6. rm -rf "archive/log.txt"  

  7. rm -rf "archive/zsydemo.xcarchive"  

  8. rm -rf "archive/zsydemo.ipa"  

  9.   

  10. # 2 清除旧项目  

  11. xcodebuild clean -configuration Release -alltargets >> archive/log.txt  

  12.   

  13. # 3 归档(其他参数不指定的话,默认用的是.xcworkspace或.xcodeproj文件里的配置)  

  14. # workspace  

  15. xcodebuild archive -workspace zsydemo.xcworkspace -scheme zsydemo -configuration Release -archivePath archive/zsydemo.xcarchive CODE_SIGN_IDENTITY="iPhone Developer: sy z (5BE779GQZQ)" PROVISIONING_PROFILE="06bbbb2c-083f-4313-b633-15bc685929a4" >> archive/log.txt  

  16. # project  

  17. # xcodebuild archive -project zsydemo.xcodeproj -scheme zsydemo -configuration Release -archivePath archive/zsydemo.xcarchive CODE_SIGN_IDENTITY="iPhone Developer: sy z (5BE779GQZQ)" PROVISIONING_PROFILE="06bbbb2c-083f-4313-b633-15bc685929a4" >> archive/log.txt  

  18.   

  19. # 4 导出IPA xcodebuild  

  20. # 方法1(未使用plist文件设置ipa包;需要指定包格式)  

  21. xcodebuild -exportArchive -exportFormat IPA -archivePath archive/zsydemo.xcarchive -exportPath archive/zsydemo.ipa  -exportProvisioningProfile "zsydemoDevelopProfile" >> archive/log.txt  

  22. # 方法2(使用plist配置生成ipa;不需要指定包格式)  

  23. # xcodebuild -exportArchive -archivePath archive/zsydemo.xcarchive -exportOptionsPlist archive/ipaTestExportOptions.plist -exportPath archive >> archive/log.txt  



方法二

使用xcodebuild生成archive包,然后使用xcrun生成ipa包。使用注意事项:xcrun生成ipa包时必须时绝对的全路径。

脚本代码如下:



  1. # xcodebuild + xcrun  

  2. # 使用注意:项目必须设置好证书、描述文件;其次ipa包的生成路径必须是绝对的全路径  

  3.   

  4.   

  5. pwd  

  6.   

  7. # 1 删除旧文件  

  8. rm -rf "archive/log.txt"  

  9. rm -rf "archive/zsydemo.xcarchive"  

  10. rm -rf "archive/zsydemo.ipa"  

  11.   

  12. # 2 清理旧项目  

  13. xcodebuild clean -configuration Release -alltargets >> archive/log.txt  

  14.   

  15. # 3 归档(其他参数不指定的话,默认用的是.xcworkspace或.xcodeproj文件里的配置)  

  16. xcodebuild archive -workspace zsydemo.xcworkspace -scheme zsydemo -destination generic/platform=ios -configuration Release -archivePath archive/zsydemo.xcarchive CODE_SIGN_IDENTITY="iPhone Developer: sy z (5BE779GQZQ)" PROVISIONING_PROFILE="06bbbb2c-083f-4313-b633-15bc685929a4" >> archive/log.txt  

  17.   

  18.   

  19. # 4 导出IPA xcrun  

  20. pwd  

  21. ipa_path=`pwd`/archive/zsydemo.ipa  

  22. xcrun -sdk iphoneos PackageApplication -v archive/zsydemo.xcarchive -o "$ipa_path" >> archive/log.txt >> archive/log.txt  



方法三

使用xctool生成archive包,然后使用xcodebuild生成ipa包。使用注意事项:xctool生成archive包时必须设置正确的参数顺序。

脚本代码如下:



  1. # xcodebuild + xctool  

  2. # 使用注意:项目中必须正确设置证书、描述文件;且必须注意xctool命令书写格式。  

  3.   

  4. pwd  

  5.   

  6. echo "<----------开始删除旧文件---------->"  

  7.   

  8. # 删除旧文件  

  9. rm -rf "archive/log.txt"  

  10. rm -rf "archive/zsydemo.xcarchive"  

  11. rm -rf "archive/zsydemo.ipa"  

  12.   

  13. echo "<----------成功删除旧文件---------->"  

  14.   

  15. echo "<----------开始清除旧项目---------->"  

  16.   

  17. # 重要,执行xcodebuild命令时,必须进入项目目录  

  18. # 清空前一次build的项目缓存   

  19. xctool clean -workspace zsydemo.xcworkspace -scheme zsydemo -configuration Release >> archive/log.txt  

  20.   

  21. echo "<----------成功清除旧项目---------->"  

  22.   

  23. echo "<----------开始归档archive包---------->"  

  24.   

  25. # 归档(其他参数不指定的话,默认用的是.xcworkspace或.xcodeproj文件里的配置)  

  26. # 根据指定的项目、scheme、configuration与输出路径打包出archive文件(注意参数配置顺序)  

  27. xctool -workspace zsydemo.xcworkspace -scheme zsydemo archive -archivePath archive/zsydemo.xcarchive >> archive/log.txt  

  28.   

  29. echo "<----------成功归档archive包---------->"  

  30.   

  31. echo "<----------开始导出ipa包---------->"  

  32.   

  33. # 导出IPA 使用指定的provisioning profile导出ipa  

  34. xcodebuild -exportArchive -archivePath archive/zsydemo.xcarchive -exportPath archive/zsydemo.ipa -exportFormat ipa -exportProvisioningProfile "zsydemoDevelopProfile" >> archive/log.txt  

  35.   

  36. echo "<----------成功导出ipa包---------->"  

  37.   

  38. # 输出总用时  

  39. echo "<----------Finished. Total time: ${SECONDS}s---------->"  


以上是关于xcodebuild & xcrun & xctool 脚本打包的主要内容,如果未能解决你的问题,请参考以下文章

命令行工具 - 错误 - xcrun:错误:无法找到实用程序“xcodebuild”,不是开发人员工具或 PATH

xcrun xcodebuild ** EXPORT FAILED ** 安装 Xcode9 后

Xcode Server Bot 集成在 xcrun xcodebuild -exportArchive "Exporting installable product" 上停止

xcrun 错误:无法从

命令行工具打包

Xcode命令行作用