美文网首页
Xcode8自动打包上传蒲公英和AppStore

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

作者: 言溪Lee | 来源:发表于2017-04-05 14:16 被阅读151次

    本机:Mac Serria,Xcode8

    参考文章:

    使用文章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插件


    jenkins修改keychain.png

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

    相关文章

      网友评论

          本文标题:Xcode8自动打包上传蒲公英和AppStore

          本文链接:https://www.haomeiwen.com/subject/ororuttx.html