源碼:自己用Python寫的iOS項目自動打包腳本

2021-02-23 Cocoa開發者社區

▲點擊上方「CocoaChina」關注即可免費學習 iOS 開發


來源:hades0918 投稿

什麼?又要測試包!

做iOS開發幾年了,每天除了碼代碼,改Bug之外,最讓我煩惱的莫過於測試的妹子跑過來:「剛才的Bug都改完了吧,再打個包吧」。然而對於這個自己應盡的義務我已經煩透了,先不說要配置各種參數什麼的,光是用xcode打包時候clean代碼,驗證證書就讓我焦頭爛額,時不時還要翻個牆甚至要手機開個熱點才能打包成功。每次打包順利的話,也要7~8分鐘,每天n個包,想早點完成任務準時下班想都別想了。於是做了個打包的腳本(然後歡樂的像狗了)。好了,廢話不多說,下面來介紹一下這個腳本,希望能給你帶來方便。

腳本的地址: https://github.com/hades0918/ipapy

優點:

自動化打包,一句指令解決,節省大量打包時間

省去證書驗證的無奈等待

自動上傳到fir.im分發平臺 //不用再發qq給測試人員了,如果你覺得不安全的話,fir.im是可以設置密碼的

自動發送郵件給測試人員

有幫助指令,上手簡單

準備工作:(工欲善其事必先利其器)

參數配置:(如果指令沒安裝好的話,goto 準備工作)

配置相關信息 python ipa.py -c 或者 python ipa.py --config ,後面需要修改的話也用這個指令

targetName:工程的名稱,如:我的工程是BossZP.xcodeproj,所以我的targetName就是BossZP

gitPath:工程的git地址,如:我的git地址是http://git.xxx.org/xxxxxx/xxxxxx.git

certificateName:證書名稱,如:我的是iPhone Developer: YANG YU (7XC3UZCAZM)

firToken:在fir.im上創建應用後的token,如:我的是2ac8uf3j9z3ur98d7gxxxxxxxx

下面的是郵件設置:

emailFromUser:我的郵箱,如:xxxxxx@163.com

emailToUser:測試人員的郵箱,如:xxxxxx@163.com

emailPassword:我的郵箱的密碼

emailHost:郵箱的host,可以去郵箱網頁查看,如:我的是smtp.163.com

配置完信息,可以通過 --help 或者 -h 查看基本的使用方法

-h, --help 查看幫助信息

-c, --config 配置基本信息

-s, --showTags 顯示git上所有的版本

-t TAG, --tag=TAG 設置打包時的版本

● 如果你不喜歡我把放在Documents下面,你可以把腳本的第28行改成你喜歡的目錄,如:target_path = "/Users/yuyang/clone/BossZP"

你可以這樣使用:

python ipa.py -h

python ipa.py --help

python ipa.py -c

python ipa.py --config

python ipa.py -s

python ipa.py --showTags

python ipa.py -t v3.0  //打包時候這樣使用,後面的v3.0參數可以使用python ipa.py -s獲取

python ipa.py -tag v3.0  //打包時候這樣使用,後面的v3.0參數可以使用python ipa.py -s獲取

python ipa.py (tag不寫,默認是master)

最後自曝一下腳本的缺點吧,這個腳本只適合.xcodeproj的工程,workspace的還不支持,後續會慢慢改進。如果這個腳本能給你帶來方便,順手給個star吧,給我把它做的更好來點動力。

微信號:CocoaChinabbs


▲長按二維碼「識別」關注即可免費學習 iOS 開發

月薪十萬、出任CEO、贏娶白富美、走上人生巔峰不是夢

--------

商務合作QQ:645047738

投稿郵箱:support@cocoachina.com

相關焦點

  • iOS自動打包並發布腳本
    xcodebuild 簡介使用xcodebuild和xcrun打包籤名將打包過程腳本化xcodebuild 簡介xcodebuild 是蘋果提供的打包項目或者工程的命令,了解該命令最好的方式就是使用 man xcodebuild 查看其 man page. 儘管是英文,一定要老老實實的讀一遍就好了。
  • iOS 兩套自動打包腳本
    ,廣發說傳承下來的自動打包腳本突然不好使了,現在每次打包上傳都要弄到凌晨,以後改名叫稀發好了。這個項目十幾個包,不同圖標、App名字,手動打包不但慢,而且重複枯燥的工作出錯概率也指數上升。所以如果你的項目也要打幾個包的話,花時間學習自動打包還是值得的。如果只用打一個包,雖然自動打包時間會快點,但學習成本還是在那,見仁見智了。重點是,利用重籤名修改自定義的圖片、App名字等,不用重複編譯,能極大縮短打包時間。
  • Python 源碼混淆與加密
    所以將 Python 打包為 exe 只相當於在編譯為 pyc 的基礎上添加了一步打包操作,同樣不能很有效的對源碼進行保護。使用 PyArmor 加密代碼PyArmor 是一個用於加密和保護 Python 腳本的工具。
  • 將Python腳本打包成可執行文件
    它的發布方式:.py文件:對於開源項目或者源碼沒那麼重要的,直接提供源碼,需要使用者自行安裝Python並且安裝依賴的各種庫。在執行pyInstaller命令的時候,會在和腳本相同目錄下,生成一個.spec文件,該文件會告訴pyinstaller如何處理你的所有腳本,同時包含了命令選項。一般我們不用去理會這個文件,若需要打包數據文件,或者給打包的二進位增加一些Python的運行時選項時...一些高級打包選項時,需要手動編輯.spec文件。
  • Jenkins 實現 iOS 項目自動打包
    Jenkins 概述Jenkins 是一款流行的開源持續集成(Continuous Integration)工具,廣泛用於項目開發,具有自動化構建、測試和部署等功能。Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中運行,也可獨立運行。通常與版本管理工具(SCM)、構建工具結合使用。
  • python項目打包之Pyinstaller
    而本公眾號的作者當時也受到這股風潮的撩動,加入了python編程的大軍。幸運的是,現所在的課題組也更多的使用python進行編程和分析數據,因此也算所學的東西沒有浪費吧。然而,當最近希望發布之前用python寫的可視化項目Multi-omics Visual(推文為《高效繪圖小工具:Multi-omics Visual》)時,卻面臨打包發布較為複雜(相比於其他程式語言)的問題。
  • 記一次iOS自動化打包走過的坑-關於React Native-iOS項目
    ,而且由於項目屬於React Native項目,而且代碼版本較老,更是出現了很多無法預料的問題,因而結合本次Jenkins使用的shell打包腳本及自動化打包過程中遇到的各種日誌和問題做一個總結,希望給有需要的人做一個參考,也給自己加深理解。
  • Appium+python自動化17-啟動iOS模擬器APP源碼案例
    前言上一篇已經可以啟動iOS模擬器上的safari瀏覽器了,啟動app比啟動瀏覽器要複雜一點,本篇以github上的源碼為案例詳細介紹如何啟動
  • 一分鐘教你如何用python寫手機腳本自動刷某音
    最近剛從蘋果換成了安卓陣營,所以無聊研究了一些python寫手機腳本.希望對大家有啟蒙幫助!
  • 別再問我怎麼Python打包成exe了!
    但是呢,我們開發的腳本一般都會用到一些第三方包,可能別人也需要用到我們的腳本,如果我們將我們的xx.py文件發給他,他是不能直接用的,他還需要安裝python解釋器,甚至還要安裝我們用的那些第三方包,是不是有點小麻煩?但是我們都知道,PC是可以直接運行exe文件的,這就為我們提供了一個便捷的方式。
  • 用 Python 打包自己的庫到 PYPI
    那麼,當我們自己寫了一些自認為不錯的庫,想要分享給大家使用時,能不能也能做到這樣呢?環境需求1、擁有一個 PyPI · The Python Package Index 的帳號2、已經寫好能正常使用的庫/方法/項目 (可本地調用)步驟1、創建一個這樣的目錄結構,我們接下來的命令都在 example_pkg/__init__.py 目錄進行
  • Python 庫打包分發(setup.py 編寫)
    Python 單文件列表download_url程序的下載地址cmdclass添加自定義命令package_data指定包內需要包含的數據文件include_package_data自動包含包內所有受版本控制(cvs/svn/git)的數據文件exclude_package_data當 include_package_data 為 True 時該選項用於排除部分文件data_files打包時需要打包的數據文件
  • Python實現iOS自動化打包詳解
    自動化打包1在上圖中,我們只需要執行python腳本,可以看到桌面很快生成了一個ProgramBag的文件夾,打開文件夾,彩蛋就在裡面了!由於我寫的腳本裡包含了上傳蒲公英的代碼,這個包有28.3M,網絡不太好會影響上傳時間,真正的打包時間是可以忽略不記的,也就是執行腳本,敲擊回車就好了的事!
  • 三個你必須要記住的Pyinstaller打包命令——利用Python實現打包exe
    但是呢,我們開發的腳本一般都會用到一些第三方包,可能別人也需要用到我們的腳本,如果我們將我們的xx.py文件發給他,他是不能直接用的,他還需要安裝python解釋器,甚至還要安裝我們用的那些第三方包,是不是有點小麻煩?但是我們都知道,PC是可以直接運行exe文件的,這就為我們提供了一個便捷的方式。所以,從看了這個教程以後,這都將成為過去式,打成exe之後,分享即可用。
  • 【python學習第七篇】Python 程序打包成 exe 可執行文件
    它的發布方式:.py 文件:對於開源項目或者源碼沒那麼重要的,直接提供源碼,需要使用者自行安裝 Python 並且安裝依賴的各種庫。(Python 官方的各種安裝包就是這樣做的)。解析器和你自己的腳本打包成一個可執行的文件,和編譯成真正的機器碼完全是兩回事,所以千萬不要指望成打包成一個可執行文件會提高運行效率,相反可能會降低運行效率,好處就是在運行者的機器上不用安裝 python 和你的腳本依賴的庫。
  • Python打包的兩三件事
    該模塊是使用一個名為 setup.py 的 python 腳本,項目維護人員通過執行這個文件來構建其軟體的發行版,使得用戶也能夠安裝上述發行版。這個腳本可以任意命名,但 setup.py 是標準的命名方式,其他的工具(比如廣泛使用的 pip)就會只尋找以此命名的文件。
  • Python 打包系統簡單入門
    打包項目下面就進入本文的正題,Python的打包系統上。基本上我們不需要完全了解打包系統,只要學會簡單的幾個點就可以打包自己的類庫了。打包需要distutils、setuptools、wheel等類庫,不過基本上我們只需要寫好其中最重要的setup.py,就可以完成打包工作了。distutils是官方的類庫,在當年有很廣泛的使用,不過到了現在很難用。
  • 打包python庫
    這將確保部署的代碼工作正常(打包正確)——否則你的測試將失敗。這讓你不會發布那種完全不能用的軟體包。您將被迫安裝發布。如果你曾經在PyPI上上傳一個帶有缺失模塊或錯誤依賴項的發行版,那是因為你沒有測試安裝。只是能夠成功地建造sdist,不保證它會真的安裝成功。它阻止你輕鬆導入setup.py腳本中的代碼。
  • 工程化你的Python項目
    long_description是一段很長的描述,所以我直接從README.md中讀取整個項目的描述packages描述了哪些Python的包被打包,find_packages會查找當前工程下所有的Python包,通過exclude剔除了不參與打包的。
  • 寫個腳本刷.........
    微信過中秋節,不能群發有點麻煩,搞個腳本發送一下祝福,還是可以的!我在mac系統下測試的,運行環境 python 2.7先安裝 pip,再安裝sudo easy_install pipsudo pip install requestssudo pip install BeautifulSoupsudo pip install bs4