2020年iOS自動(dòng)打包腳本

?2020年iOS自動(dòng)打包腳本

?1.準(zhǔn)備工作

安裝[fastlane](http://docs.fastlane.tools/getting-started/ios/setup/)

至于fastlane是做什么的就不多說(shuō)了宛乃,自行百度免胃;

sudo gem install fastlane --verbose

安裝成功后沒(méi)有修改gem source 的修改一下泳姐,我用的是https://gems.ruby-china.com/

終端打開(kāi)項(xiàng)目目錄執(zhí)行fastlane init, fastlane init執(zhí)行過(guò)程中需要選擇一些東西,如What would you like to use fastlane for? 并把Gemfile中的source修改成你的gem source的源布隔,

wk@wakedatadeMacBook-Pro uniapp-yuexiuhui-iOS % fastlane init

[?] ??

[?] Looking for iOS and Android projects in current directory...

[15:40:54]: Created new folder './fastlane'.

[15:40:54]: Detected an iOS/macOS project in the current directory: 'uniapp-yuexiuhui-iOS.xcworkspace'

[15:40:55]: -----------------------------

[15:40:55]: --- Welcome to fastlane ?? ---

[15:40:55]: -----------------------------

[15:40:55]: fastlane can help you with all kinds of automation for your mobile app

[15:40:55]: We recommend automating one task first, and then gradually automating more over time

[15:40:55]: What would you like to use fastlane for?

/usr/local/Cellar/fastlane/2.168.0/libexec/gems/highline-1.7.10/lib/highline.rb:624: warning: Using the last argument as keyword parameters is deprecated

1. ??? Automate screenshots

2. ?????? Automate beta distribution to TestFlight

3. ??? Automate App Store distribution

4. ??? Manual setup - manually setup your project to automate your tasks

?這個(gè)地方輸入你要上傳到那個(gè)平臺(tái),一般選2、3茴迁、4

下一步需要提醒你輸入的是你的iOS開(kāi)發(fā)者賬號(hào)

[15:44:09]: To use App Store Connect and Apple Developer Portal features as part of fastlane,

[15:44:09]: we will ask you for your Apple ID username and password

[15:44:09]: This is necessary for certain fastlane features, for example:

[15:44:09]:

[15:44:09]: - Create and manage your provisioning profiles on the Developer Portal

[15:44:09]: - Upload and manage TestFlight and App Store builds on App Store Connect

[15:44:09]: - Manage your App Store Connect app metadata and screenshots

[15:44:09]:

[15:44:09]: Your Apple ID credentials will only be stored in your Keychain, on your local machine

[15:44:09]: For more information, check out

[15:44:09]: https://github.com/fastlane/fastlane/tree/master/credentials_manager

[15:44:09]:

[15:44:09]: Please enter your Apple ID developer credentials

/usr/local/Cellar/fastlane/2.168.0/libexec/gems/highline-1.7.10/lib/highline.rb:624: warning: Using the last argument as keyword parameters is deprecated

[15:44:09]: Apple ID Username:

然后是iOS開(kāi)發(fā)者賬號(hào)的密碼,如果你的賬號(hào)下面有多個(gè)企業(yè)或組織,然后是選擇證書(shū)然后就配置完了萤衰。

然后在你的項(xiàng)目目錄中會(huì)多一個(gè)fastlane文件夾堕义,一個(gè)Gemfile,Gemfile中需要修改source就可以了脆栋。fastlane中有兩個(gè)文件倦卖,一個(gè)Appfile一個(gè)Fastfile,Appfile保存的是iOS開(kāi)發(fā)者賬號(hào)的信息和證書(shū)信息椿争,F(xiàn)astfile中是自動(dòng)打包的腳本怕膛,對(duì)應(yīng)純?cè)拇a這樣基本就可以了;

而對(duì)于現(xiàn)在混口開(kāi)發(fā)盛行的時(shí)代丘薛,我們項(xiàng)目基本都是uni-app寫(xiě)的所以才需要再寫(xiě)一些腳本嘉竟,開(kāi)發(fā)就是越來(lái)越懶,一步也不喜歡手動(dòng)去做洋侨,那么腳本的用處就大了舍扰;

2.寫(xiě)腳本

1. 打包到蒲公英的腳本

#!/bin/bash

env=$1

buildUpdateDescription=$2

ipa_name="項(xiàng)目名"

api_key="蒲公英的api_key"

if [ ! -n "$1" ] ;then

? ? env="build"

fi

# 向iOS的Info.plist里面寫(xiě)值

# environment="production"

# if [[ $env = "dev" ]]; then

# environment="development"

# fi

# path=$(cd `dirname $0`; pwd)

# target_plist="$path/uniapp-yuexiuhui-iOS/Info.plist"

# echo $target_plist

# for plist in "$target_plist"; do

# if [[ -f "$plist" ]]; then

# /usr/libexec/PlistBuddy -c "Set :Environment $environment" "$plist"

# fi

# done

# 修改YXHCommon.m文件,這個(gè)的目的主要是切換生產(chǎn)環(huán)境與測(cè)試環(huán)境的希坚,修改的值主要用于條件編譯

cd uniapp-yuexiuhui-iOS/utils

if [[ "dev" = $env ]]; then

? sed -i '' 's/#if false/#if true/g' YXHCommon.m

else

? sed -i '' 's/#if true/#if false/g' YXHCommon.m

fi

cd ../..

cd ../uniapp-yuexiuhui-vue

# 而下面的npm run xxx這個(gè)主要是HbuilderX 打包腳本

if [ "dev" = $env ]

then

? npm run dev:app-plus

else

? npm run build:app-plus

fi

echo '------覆蓋www------'

cp -R dist/$env/app-plus/ ../$ipa_name/$ipa_name/Pandora/apps/__UNI__E59AA60/www

cd ../uniapp-yuexiuhui-iOS

fastlane pgy

cd ./build

export_ipa_path=$(cd `dirname $0`; pwd)

#上傳ipa到蒲公英 我自己加的

if [ -f "${export_ipa_path}/${ipa_name}.ipa" ]

then

? ? echo '開(kāi)始上傳ipa/apk到蒲公英'

? ? result=$(curl -F "file=@${export_ipa_path}/${ipa_name}.ipa" -F "_api_key=${api_key}" -F "buildUpdateDescription=${buildUpdateDescription}" 'http://www.pgyer.com/apiv2/app/upload')

else

? ? echo "在目錄:${export_ipa_path}/${ipa_name}.ipa 不存在"

fi

echo '上傳到蒲公英成功'

exit 0

2.上傳到TestFlight的腳本

#!/bin/bash

env=$1

if [ ! -n "$1" ] ;then

? ? env="build"

fi

cd uniapp-yuexiuhui-iOS/utils

if [[ "dev" = $env ]]; then

? sed -i '' 's/#if false/#if true/g' YXHCommon.m

else

? sed -i '' 's/#if true/#if false/g' YXHCommon.m

fi

cd ../..

cd ../uniapp-yuexiuhui-vue

if [ "dev" = $env ]

then

? ? npm run dev:app-plus

else

? ? npm run build:app-plus

fi

echo '------覆蓋www------'

cp -R dist/$env/app-plus/ ../uniapp-yuexiuhui-iOS/uniapp-yuexiuhui-iOS/Pandora/apps/__UNI__E59AA60/www

cd ../uniapp-yuexiuhui-iOS

fastlane beta

exit 0

3.如果運(yùn)行腳本報(bào)錯(cuò)請(qǐng)檢查shell語(yǔ)法边苹,當(dāng)然你也可以用Python寫(xiě)

如有什么疑問(wèn)可以聯(lián)系我:

WeChat:fengsh_h

e-mail: fengsh_h@aliyun.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市裁僧,隨后出現(xiàn)的幾起案子个束,更是在濱河造成了極大的恐慌慕购,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茬底,死亡現(xiàn)場(chǎng)離奇詭異沪悲,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)阱表,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)殿如,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人最爬,你說(shuō)我怎么就攤上這事涉馁。” “怎么了爱致?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵烤送,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我糠悯,道長(zhǎng)帮坚,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任逢防,我火速辦了婚禮叶沛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘忘朝。我一直安慰自己灰署,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布局嘁。 她就那樣靜靜地躺著溉箕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悦昵。 梳的紋絲不亂的頭發(fā)上肴茄,一...
    開(kāi)封第一講書(shū)人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音但指,去河邊找鬼寡痰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛棋凳,可吹牛的內(nèi)容都是我干的拦坠。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼剩岳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贞滨!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起拍棕,我...
    開(kāi)封第一講書(shū)人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤晓铆,失蹤者是張志新(化名)和其女友劉穎勺良,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體骄噪,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尚困,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了链蕊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尾组。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖示弓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情呵萨,我是刑警寧澤奏属,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站潮峦,受9級(jí)特大地震影響囱皿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜忱嘹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一嘱腥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拘悦,春花似錦齿兔、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至屁桑,卻和暖如春医寿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蘑斧。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工靖秩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人竖瘾。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓沟突,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親准浴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子事扭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容