iOS自动打包上传实践-企业账号APP上传到自己服务器

公司使用企业账号发布app到自己服务器,每天必须发布一个app包,几乎每天在打包上面就得至少半个钟头,而每天下午都得开会30分钟,于是就想充分利用这时间,在开会前在输入终端命令,执行脚本文件实现自动打包,并且上传到自己服务器。这样开完会就已经自动打包完成。早点下班回家!
本文是参考:iOS自动打包并发布脚本的实践

使用苹果自带的工具xcodebuild和xcrun打包签名

  1. 打开Mac终端,输入命令 man xcodebuild ,man xcrun查看使用方法。
    xcodebuild.png
    xcrun.png
  2. 在项目的根目录输入以下命令:
    xcodebuild -workspace leapParent.xcworkspace -scheme leapParent-configuration Release,我使用的是cocoapods管理的项目所以使用第一张图的第三种方式build,成功之后如下:
    buildsuccess.png
    此时在./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的绝对路径
  3. 使用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有这几项需要配置下:
    1
    2
    3
    4
    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文件就可以了。

添加app打包完成后自动上传到upyun服务器

这步骤相对简单,参考upyun的Python SDK官方文档将上传方法添加到脚本文件就可以了(温馨提示下:python文件不要用xcode打开编辑,使用sublime就行,因为tab键为4个空格,不符合python语法,执行脚本文件会出错)
83208632-897C-4E2A-B635-2035E9F764D6.png
我使用的是断点续传:
FFE4D847-2647-44FF-9624-3D9767848865.png