iOS 自动打包实践(企业账号APP上传到自己服务器)
公司使用企业账号发布app到自己服务器,每天必须发布一个app包,几乎每天在打包上面就得至少半个钟头,而每天下午都得开会30分钟,于是就想充分利用这时间,在开会前在输入终端命令,执行脚本文件实现自动打包,并且上传到自己服务器。这样开完会就已经自动打包完成。早点下班回家!
本文是参考:iOS自动打包并发布脚本的实践
使用苹果自带的工具xcodebuild和xcrun打包签名
-
打开Mac终端,输入命令
xcodebuild.pngman xcodebuild
,man xcrun
查看使用方法。
xcrun.png -
在项目的根目录输入以下命令:
buildsuccess.png
xcodebuild -workspace leapParent.xcworkspace -scheme leapParent-configuration Release
,我使用的是cocoapods管理的项目所以使用第一张图的第三种方式build,成功之后如下:
此时在./Build/Release-iphoneos文件夹下会有leapParent的文件。
紧接着输入:xcrun -sdk iphoneos -v PackageApplication /Users/romance/Desktop/CQCoder/CloudClassroom_iOS/Build/Products/Release-iphoneos/leapParent.app -o ~/Desktop/leapParent.ipa
;其中-o ~/Desktop/leapParent.ipa
:代表项目打包输出的路径,
/Users/romance/Desktop/CQCoder/CloudClassroom_iOS/Build/Products/Release-iphoneos/leapParent.app
这个是上一步骤xcodebuild成功之后.app的绝对路径 -
使用python脚本实现的自动打包(原理就是将2的内容用python写好,然后传入参数,执行脚本)
将autobuild.py,放入项目的根目录,然后执行python ./autobuild.py -w leapParent.xcworkspace -s leapParent -o ~/Desktop/leapParent.ipa
命令,此时可能报错:
ImportError: No module named requests
此时输入以下命令就可以解决问题sudo easy_install -U requests
其中autobuild.py有这几项需要配置下:
CODE_SIGN_IDENTITY = "iPhone Distribution: xxxxxxxx Co. Ltd (xxxxxxx9A)"
PROVISIONING_PROFILE = "xxxxxxxxxx-xxxxx-xxxxx-xxxx-xxxxxxxxxxxx"
CONFIGURATION = "Release"
SDK = "iphoneos"
其中CODE_SIGN_IDENTITY获取方式:
CODE_SIGN_IDENTITY.png
PROVISIONING_PROFILE获取方式:
provisionfile.png
至此,就大功告成了!但还没做上传到自己服务器,但这个也容易叫后台人员添加一个接口,配置autobuild.py文件就可以了。
2016-10-17 星期一一个上午配置完成,以此纪念自己的学习之路!加油共勉 !
2016-10-24跟新内容
添加app打包完成后自动上传到upyun服务器
这步骤相对简单,参考upyun的Python SDK官方文档将上传方法添加到脚本文件就可以了(温馨提示下:python文件不要用xcode打开编辑,使用sublime就行,因为tab键为4个空格,不符合python语法,执行脚本文件会出错)
83208632-897C-4E2A-B635-2035E9F764D6.png
我使用的是断点续传:
FFE4D847-2647-44FF-9624-3D9767848865.png