使用mac进行ios几种命令行打包方式

如题所述

第1个回答  2017-03-13
自动打包的方式有如下几种:
一、使用xcodebuild进行打包
参考apple文档:https://developer.apple.com/library/prerelease/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html
xcodebuild -project "${TARGET}.xcodeproj" -target ${TARGET} CODE_SIGN_IDENTITY="${IDENTITY}" clean //将project clean下

xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme archive //进行archive,生成xcarchive文件
xcodebuild -exportArchive -exportFormat IPA -archivePath MyMobileApp.xcarchive -exportPath MyMobileApp.ipa -exportProvisioningProfile 'MyMobileApp Distribution Profile'
确实是可以生成.ipa,但是可能会导致不能安装,https://developer.apple.com/library/prerelease/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html , 链接是apple的官方文档,文档大概的意思将 xcarchive文件作为.ipa方式进行导出, 为什么不能在ios设备上安装?
二、原生xcodebuild、xcrun进行打包,需要详细了解,可以看下这个链接 http://www.jianshu.com/p/1229476fbce4
具体打包指令和第一种方法区别不大,不同代码如下:
xcodebuild -scheme Zxh -configuration ${buildConfiguration} clean //对代码进行clean
xcodebuild -project Zxh.xcodeproj -scheme Zxh -configuration ${buildConfiguration} -destination generic/platform=ios archive -archivePath ${buildPath} //进行build,相当于在xcode里面进行command+b,生成.app文件
#xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/Zxh.app -o ${ipaName}.ipa --sign "iPhone Distribution:(打包证书)" //根据.app文件生成的ipa文件导出到指定目录
三、xctool进行自动打包

参考网页地址:http://www.tuicool.com/articles/uIZRZjy
1、确保安装了xctool

没有安装xctool,可以用brew安装,没有安装brew的,可以通过搜索安装brew,然后执行如下操作安装xctool

安装命令:sudo brew install xctool
介绍下xctool命令:
xctool 是FaceBook开源的一个命令行工具,用来替代苹果的xcodebuild工具。
先附上打包用的参考代码,如下:
#
cd AutoProject //进入项目目录

#
buildDay=$(date +%Y%m%d) //获取当前日期
buildTime=$(date +%Y%m%d%H%M) //获取当前时间
profile=”xxxx” //设置打包配置文件
#
buildConfiguration=”QA” //build时用的证书
buildPath=”../ArchiveProduction/QA/${buildDay}/Auto_QA_${buildTime}.xcarchive” //build后归档的文件目录
ipaName=”../ipa/QA/${buildDay}/Auto_QA_${buildTime}.ipa” //打好包放置位置
#
xctool -scheme AutoProject -configuration ${buildConfiguration} clean //clean下工程
xctool -scheme AutoProject -configuration ${buildConfiguration} archive -archivePath ${buildPath} //对项目进行Archive, 将xcarchive文件导出到指定目录
xcodebuild -exportArchive -exportFormat IPA -archivePath ${buildPath} -exportPath ${ipaName} - exportProvisioningProfile “$profile” //生成的ipa文件导出到指定目录, 此处依然使用的是xcodebuild进行打包, 待优化