Xcode8自动打包上传蒲公英和AppStore

本机:Mac Serria,Xcode8

参考文章:

  • 使用python打包:http://www.jianshu.com/p/1229476fbce4
  • 使用shell脚本,自动打包:http://www.jianshu.com/p/bd4c22952e01

使用文章1的方式(xcodebuild,xcrun)进行打包或者脚本调用,build success,但是无法打包
使用文章2的方式(xcodebuild archive ,exportArchive,exportOptionsPlist)成功了,并且包大小与之前使用Xcode打出的包大小完全一致(根据文章2的各打包方式分析,由此猜测是Xcode的因素),但还是命令行一步步来,麻烦
于是,就想着把两个文章结合起来,也就是说修改autobuild.py脚本,使用xcodebuild archive等命令打包,代码可前往github查看,可打adhoc和AppStore包并直接上传蒲公英和AppStore,一行命令走天下。

执行过程中遇到的问题,即执行python需要的配置:

  • autobuild.py执行需要python最新版,可以去官网下载,下载安装之后可以使用which python3查看安装地址。

  • 报错

File “autobuild.py”, line 6, in 
 import requests 
ImportError: No module named requests 

原因:python中HTTP处理用到了requests,如果之前未安装过,需要安装一下,安装方式如下

方式一:先安装pip,再安装requests

 sudo easy_install pip 
 sudo pip install requests

使用此种方法,如果还是无法调用requests,需修改系统的PYTHONPATH,将PYTHONPATH 指向requests的路径
export PYTHONPATH=$PYTHONPATH:./requests(绝对路径)(未成功,没仔细研究)

方式二:requests官网下载

//我是从github下载源码,然后嵌入到python包里
cd ./requests (路径直接拖上来)
python3 setup.py install
  • 再记下python缩进错误


    python缩进错误.png

python的代码对缩进方式非常严格,tab和空格不可混用,遇到IndentationError就要检查下自己的缩进,当然一般是看不出来什么的,所以我都是把整段代码重敲一遍,就OK了。敲黑板:一定要注意,不要随便用xcode打开python做改动,一不小心就把缩进弄错了,查看修改保存都用编辑器。

最后,一行代码,打包上传蒲公英,完美执行,哈哈哈,撒花
更厉害的python:http://www.2cto.com/kf/201312/262436.html

使用plistBuddy管理plist文件

由于plistBuddy不在默认path中所以必须使用绝对路径调用,加入-c否则会进入人机交互模式不会执行后面的命令。
可以使用-h查看使用信息
/usr/libexec/PlistBuddy -h
举例:修改bundleVersion
/usr/libexec/PlistBuddy -c 'Set :CFBundleVersion 1991’ /xxx.plist

提交到开发者中心

altoolPath="/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"
${altoolPath} --validate-app -f ./xxx.ipa -u username -p password --output-format xml >>
${altoolPath} --upload-app -f ./xxx.ipa -u username -p password --output-format xml

其中,username、password即开发者账号和密码。成功会有个success-message的key,而失败会有product-errors的key

  • Jenkins/ssh远程登录打包出错:code sign ...User interaction is not allowed
    1.原来是需要UI界面来提示使用钥匙串中的证书进行签名,默认的证书都添加到了登录中,可以在打包前使用下面命令打开钥匙串:
security -v unlock-keychain -p "这是登录用户的密码"~/Library/Keychains/login.keychain

2.还可以使用Jenkins的xcode插件


Xcode8自动打包上传蒲公英和AppStore_第1张图片
jenkins修改keychain.png

注:远程登录,也需要电脑切换为该远程用户登录,并配置好证书和相关配置文件,否则出现no profile错误

你可能感兴趣的:(Xcode8自动打包上传蒲公英和AppStore)