日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

ios执行python脚本_iOS使用python编写脚本自动化打包

發(fā)布時間:2023/12/20 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios执行python脚本_iOS使用python编写脚本自动化打包 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

剛開始聽到自動化打包這個詞的時候,我表示很驚訝,還可以這樣玩兒?

然后心里一直覺得這么高大上的東西應(yīng)該有點難度吧,在網(wǎng)上搜索了一下,大概掃了幾篇文章,發(fā)現(xiàn)大片大片的文字,腦袋一下就懵逼了,很不情愿去閱讀大量的廢話,但是又沒有找到一篇簡潔易懂,直入正題的文章,后來想想,這東西還是必須要學(xué)一學(xué),聽著就這么高大上,裝逼效果杠杠的,然后耐心去查找資料,原本我是一個iOS程序猿,對于一個剛開始接觸python的新手來說,寫一個python程序去做iOS的自動打包是有那么一點懵逼,不過還好,有時候真的深有體會,好記性不如爛筆頭,但是對于我來說,不光是記性,在網(wǎng)上找了一個python程序自己跟著敲了一遍,然后再回過頭去一段一段理解過來,就大概明白是什么意思了,如果光靠眼睛去看,我表示真的很難懂,所以,任何事情還是都需要親自做過了才更容易明白是怎么回事。

同樣廢話了一大堆,就當(dāng)是和大家交流一下學(xué)習(xí)心得吧,下面進(jìn)入正題:

我們要明確我們的目的,是做iOS自動打包,所以,我們先要知道,我們是怎樣一步一步的去打包iOS項目的,然后再通過python程序,將整個流程串聯(lián)起來,實現(xiàn)自動進(jìn)行打包的這么一個功能。(因為現(xiàn)在進(jìn)行iOS開發(fā),我們都會用到pods這個工具來管理一些三方庫,所以這里我就只介紹對于使用pods的工程打包的命令,對于沒有使用pods管理工具的項目打包的命令會不一樣,有需要的同學(xué)可以自己去查一下資料)

我們知道iOS打包時一般有兩個步驟:

1.archive

2.導(dǎo)出ipa包

我們就可以根據(jù)這兩個步驟來進(jìn)行,既然是自動化,肯定就不能和手動的那樣一樣的方式,當(dāng)然是使用終端命令的方式來進(jìn)行打包,下面直接上命令:

第一步:生成archive命令

xcodebuild -workspace ProjectName.xcworkspace -scheme scheme -archivePath ./build/ProjectName.xcarchive archive

上面這條命令就是archive的命令,我們重點關(guān)注里面加粗顯示的三個地方,ProjectName是你的工程名字ProjectName.xcworkspace就代表你使用pods時生成的工作區(qū),后面的scheme代表你項目中設(shè)置的scheme名,后面的./build/ProjectName.xcarchive這部分是archive后生成的文件的路徑,這里我是在我的工程的根目錄下面進(jìn)行的,所以直接在根目錄生成一個build文件夾放archive生成的文件。(不用擔(dān)心會產(chǎn)生垃圾文件,一會我們在寫python程序的時候會在導(dǎo)出ipa后將這個文件夾里面的垃圾文件進(jìn)行刪除的,后面如果有需要想看看這個文件是什么的同學(xué)可以把python代碼里面的清除方法注釋一下,到build這個文件夾下查看,build文件夾在工程的根目錄中)

第二步:導(dǎo)出ipa命令

xcodebuild -exportArchive -exportOptionsPlist ./ProjectName/info.plist -archivePath ./build/ProjectName.xcarchive -exportPath ~/Desktop/

我們同樣只需要關(guān)注三個地方的參數(shù)就可以了,ProjectName就是我們的項目名字,同樣./build/ProjectName.xcarchive就是我們放archive產(chǎn)生的文件的路徑,然后~/Desktop/就是我們導(dǎo)出ipa包時存放的位置了,這里我是將導(dǎo)出的ipa包放在了桌面,因為打完包以后可以方便我使用。

了解了我們命令打包iOS項目需要用到的兩條主要命令以后,我們接下來就可以編寫python程序了,這里我用到的是pyCharm CE這個工具編寫python程序,看了網(wǎng)上有一些用python寫了自動打包程序的,內(nèi)容太雜,看起來很費勁,里面還有自動將ipa包上傳到第三方托管平臺等的代碼,這里方便大家學(xué)習(xí),我就只說怎么將ipa包自動化打包然后導(dǎo)出來,如果有需要上傳第三方平臺的同學(xué)的可以去看看其他文章,因為我們現(xiàn)在暫時沒有用到第三方平臺,我們用的自己的服務(wù)器,對大家可能不適用,所以就不介紹了,然后后面如果我要用到,會再寫一篇文章的。

我們在編寫python程序的時候會用到subprocess這個第三方庫,直接新建一個python程序,然后import subprocess這個庫,如果已經(jīng)有這個庫就可以直接使用了,如果沒有這個庫,就需要使用python的第三方庫管理工具pip進(jìn)行安裝了,這里使用pip安裝python的第三方庫的時候有可能會有一些小伙伴會遇到報錯的情況,我在另外一篇文章《使用python第三方管理工具pip安裝三方庫時報錯解決辦法》里面有講到,遇到這個問題的小伙伴可以去看一下。

準(zhǔn)備好這個庫以后,我們就來直接開始編寫python程序了。

第一步:

import subprocess

引入這個庫,然后定義一個全局的屬性,用于表示導(dǎo)出ipa包需要存放的位置路徑,方便后面根據(jù)自己的需要修改

EXPORT_MAIN_DIRECTORY ="~/Desktop/"

然后我們進(jìn)行第一個步驟:archive

python進(jìn)行archive的方法

代碼里面注釋已經(jīng)寫得很清楚了,簡單易懂,這里就不和大家廢話了,下一個步驟:

將archive的文件導(dǎo)出成ipa包,在上面的代碼里面可以看到打包成功后是調(diào)用的exportIpa()這個方法進(jìn)行導(dǎo)出的:

python導(dǎo)出ipa包的方法

在導(dǎo)出ipa包之后我們會調(diào)用cleanArchiveFile()這個方法對之前產(chǎn)生的垃圾文件進(jìn)行清除,以免多次打包以后占用我們的工程目錄下的空間,下面是清除這些文件的方法:

python清除文件的方法

請大家忽略我的工程名字,測試使用。

到這里我們的python自動化打包小程序就寫完了,等你也寫完 的時候就會感覺,其實還是挺簡單的嘛。

不要著急,最后一步,沒有這一步,這個python程序也運行不起來啊

在主函數(shù)中調(diào)用我們編寫的方法:

然后保存,收工,如果不出意外的話,前提是你得寫對,這個小程序就完成了,然后就可以打開終進(jìn)行測試了,在終端里進(jìn)入你放這個python程序的目錄下,(這里申明一下,我寫的這個python程序的名字叫做autobuild.py)直接輸入命令:

python autobuild.py

然后回車,如果你看到終端不斷的打印出build的信息,那么恭喜你,你成功了,接下了就是等待,等待build完成,主要就是build的時間久一點,build完以后導(dǎo)出ipa包其實不到10秒鐘就好了,等到你的桌面出現(xiàn)了一個新的ipa包,你的自動打包功能就完成了,然后我們進(jìn)入到build這個文件夾下面去查看,build生成的xcarchive文件也被刪除了,這個小程序就算是成功完成了,以后我們只要想對工程進(jìn)行打包測試的時候只需要在終端輸入python autobuild.py這個命令就可以先忙著其他的事情等到ipa包自動出現(xiàn)了,再也不用手動去一步一步的點擊下一步,隨時盯著進(jìn)度等著點下一步了

總結(jié)

以上是生活随笔為你收集整理的ios执行python脚本_iOS使用python编写脚本自动化打包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。