手機遠程控制Mac實現(xiàn)iOS APP一鍵打包上傳

聽起來有點ridiculous哈~

不談業(yè)務(wù)場景闸度,就說說功能實現(xiàn)~

需要解決兩個問題:

  • 手機怎么就能控制電腦(這里指的Mac)
  • 怎么打包并上傳

問題一:手機控制Mac電腦

AppleScript

有好多辦法是可以控制電腦執(zhí)行一定的操作具垫,這里先用郵件舉個栗子……

Mac自帶的郵件可以觸發(fā)一定的操作斥季,可以預(yù)定義一個腳本虑省,通過接受到的郵件,觸發(fā)預(yù)定義的腳本渡紫。這里的腳本只支持AppleScript乔外,AppleScript是個什么鬼?

AppleScript.png

面熟吧纠炮,就是不咋用月趟,在里面敲個命令

tell application "System Events" to sleep

執(zhí)行一下,屏幕黑了吧恢口!

郵件觸發(fā)腳本

在接收到郵件的時候孝宗,可以設(shè)定一個動作,比如就要出發(fā)上面的一個腳本耕肩,我們可以先保存好這個腳本因妇,一會兒用到。先看看郵件偏好設(shè)置猿诸,如何設(shè)置婚被,見下圖:

郵件設(shè)置.png

幾個設(shè)置比較容易看懂,收到郵件滿足條件則運行AppleScript梳虽,后面的package址芯,就是剛才保存的腳本。腳本需要添加的一定的位置才可以被執(zhí)行,點擊package一行的時候會讓你在 Finder 中顯示如下:

腳本存放位置.png

放到這個 com.apple.mail 文件夾下谷炸!好了北专,試著按照自己設(shè)定的規(guī)則 發(fā)個郵件試試,看看腳本會不會執(zhí)行旬陡。

問題二:打包與上傳的腳本

如果執(zhí)行了拓颓,那666。往后的動作應(yīng)該不陌生了描孟,搞過持續(xù)集成的應(yīng)該對打包上傳的腳本不陌生了录粱,一鍵無痛打包,想必你干過画拾;沒做過的也無妨啥繁,腳本拿去不謝。最基本的流程如下:

打包流程.png

代碼獲取

這個就不說了青抛,相信git或者svn的命令你比我熟多了旗闽,扔進腳本里就好。

如果是 cocoapods 管理的項目蜜另,一般會加上

#更新組件
pod update --no-repo-update

Archive + Export

都是用的xcodebuild命令适室,具體怎么寫看下面的。

上傳

Linux 命令上傳举瑰,具體寫法看服務(wù)器定義捣辆,我找了個蒲公英的上傳樣式。

打包腳本的編寫此迅,聲明一下捌搿:

真正有用的命令只有兩行,其中需要處理的東西比較多耸序,
大神們寫的都很多忍些,包括一些容錯。
我只寫了最基本可以快速使用的部分
如果需要更多的使用方式坎怪,稍后找到鏈接會給大家貼上去

給大神博客打個廣告罢坝,參考如下:
Jenkins+github+fir持續(xù)集成iOS項目

創(chuàng)建一個文件 touch shell, 粘貼如下代碼并保存(當項目通過.xcodeproj打開的)

#!/bin/sh -
export LANG=en_US.UTF-8

# 工程名,你項目叫啥名字
APP_NAME="Package"

# TARGET名稱搅窿,需要打包的TARGET
TARGET_NAME="Package"

# 工程根目錄
CODE_PATH=".xcodeproj 所在的目錄"

# 證書
# 證書名字的獲取后面說
CODE_SIGN_DISTRIBUTION="iPhone Distribution: Zuiye Company Limited"

# archive路徑嘁酿、導(dǎo)出的ipa路徑、需要的ExportOptions.plist路徑可以隨便定義男应,路徑里包含有之前定義的變量的時候闹司,寫法如下:
# "${路徑變量名}/${APP名}.ipa"


# 刪除工程文件
echo "+++++++++刪除工程文件+++++++++"
rm -rf "${baseDirForScriptSelf}/${TARGET_NAME}.xcarchive"
rm -rf "${baseDirForScriptSelf}/DistributionSummary.plist"
rm -rf "${baseDirForScriptSelf}/${TARGET_NAME}.ipa"
rm -rf "${baseDirForScriptSelf}/Packaging.log"

# 進入工程源碼根目錄
cd "${CODE_PATH}"

# 清除工程
echo "=================clean================="
xcodebuild -project "${APP_NAME}.xcodeproj" -scheme "${TARGET_NAME}" -configuration 'Release' clean

#將app打包成xcarchive格式文件(PROVISIONING_PROFILE后面是你配置的證書對應(yīng)的描述文件UUID,獲取方式后面談到)
echo "+++++++++++++++++archive+++++++++++++++++"
xcodebuild archive -project "${APP_NAME}.xcodeproj" -scheme "${TARGET_NAME}" -archivePath "${TARGET_NAME}.xcarchive" -configuration 'Release' PROVISIONING_PROFILE='后面講述怎么獲取' CODE_SIGN_IDENTITY="${CODE_SIGN_DISTRIBUTION}"

# 將xcarchive格式文件打包成ipa
echo "+++++++++++++++++ipa+++++++++++++++++"
xcodebuild -exportArchive -archivePath "${CODE_PATH}/${TARGET_NAME}.xcarchive" -exportPath "${CODE_PATH}" -exportOptionsPlist "${CODE_PATH}/ExportOptions.plist"

# 上傳蒲公英
echo "=================開始上傳================="
curl -F 'file=@'${CODE_PATH}/${APP_NAME}.ipa'' -F '_api_key= 自己蒲公英帳戶的_api_key' https://www.pgyer.com/apiv2/app/upload

如果項目是.xcworkspace打開的殉了,需要修改 cleanxcarchive處如下

# 清除工程
echo "=================clean================="
xcodebuild -workspace "${APP_NAME}.xcworkspace" -scheme "${TARGET_NAME}" -configuration 'Release' clean

#將app打包成xcarchive格式文件(PROVISIONING_PROFILE后面是你配置的證書對應(yīng)的描述文件UUID开仰,獲取方式后面談到)
echo "+++++++++++++++++archive+++++++++++++++++"
xcodebuild archive -workspace "${APP_NAME}.xcworkspace" -scheme "${TARGET_NAME}" -archivePath "${TARGET_NAME}.xcarchive" -configuration 'Release' PROVISIONING_PROFILE='后面講述怎么獲取' CODE_SIGN_IDENTITY="${CODE_SIGN_DISTRIBUTION}"

保存完成后只是一個普通的文本文件薪铜,轉(zhuǎn)換成可執(zhí)行程序需要通過 chmod 命令給權(quán)限

chmod +x  給權(quán)限
chmod -x 去除執(zhí)行權(quán)限

在腳本目錄下執(zhí)行

chmod +x shell

得到可執(zhí)行文件如下:

shell.png

有三個參數(shù)需要獲取 PROVISIONING_PROFILE 众弓、CODE_SIGN_DISTRIBUTION隔箍、exportOptionsPlist

PROVISIONING_PROFILE獲取

比如你項目已經(jīng)配置好了谓娃,也可以打包蜒滩,那么找到 .xcodeproj --> 顯示包內(nèi)容-> 打開project.pbxproj(雙擊)--> 搜索下PROVISIONING_PROFILE 就看到了「┘瑁可能是一串長的字符串捡遍,也可能是你描述文件的文件名。

CODE_SIGN_DISTRIBUTION獲取

打開鑰匙串画株,找到根證書,查看下詳情啦辐,有個類似于 iPhone Distribution: Zuiye Company Limited 這樣的名字谓传,有的后面還會有個小括號芹关,都需要復(fù)制過來续挟。

exportOptionsPlist獲取

可以自己寫侥衬,但是有個最好的方式就是先用xcode打包一次诗祸,然后就看到這個ExportOptions.plist 了轴总,跟 ipa 文件在一起。


現(xiàn)在能控制電腦了肘习,打包腳本也可以自動打包上傳了际乘,然后把兩件事情合并到一起,就是在郵件執(zhí)行的那個腳本里調(diào)用以下這個打包腳本漂佩,如下:

do shell script "打包腳本的路徑"

給你的Mac電腦發(fā)了個郵件脖含,然后電腦執(zhí)行打包腳本并上傳APP,沒完事呢投蝉,缺啥呢养葵?缺了個通知,我不知道有沒有發(fā)布成功啊瘩缆。不要著急关拒,可以讓服務(wù)器給你發(fā)消息。以蒲公英為例,發(fā)布成功一個APP着绊,微信公眾號可以收到消息谐算,如下:

消息通知.png

然后呢,接著開小差归露,再爬他個五百個臺階~

還有洲脂,腳本后面加個關(guān)機的命令,不干活就讓電腦休息吧~

還有剧包,給電腦開個用戶恐锦,就干這個事,因為電腦里太亂了疆液,不想別人看到~

還有一铅,今天大腿有點拉傷了,一字馬沒下到底堕油。手還能動馅闽,熬夜寫了這篇小破文章~

困了,明天再校對吧~

感謝您閱讀完畢馍迄,如有疑問福也,歡迎添加QQ:714387953(蝸牛上高速)。
github:https://github.com/yhl714387953/Package
如果有錯誤攀圈,歡迎指正暴凑,一起切磋,共同進步
如果喜歡可以Follow赘来、Star现喳、Fork,都是給我最大的鼓勵

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末犬辰,一起剝皮案震驚了整個濱河市嗦篱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌幌缝,老刑警劉巖灸促,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涵卵,居然都是意外死亡浴栽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門轿偎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來典鸡,“玉大人,你說我怎么就攤上這事坏晦÷茜瑁” “怎么了嫁乘?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長球碉。 經(jīng)常有香客問我蜓斧,道長,這世上最難降的妖魔是什么汁尺? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮多律,結(jié)果婚禮上痴突,老公的妹妹穿的比我還像新娘。我一直安慰自己狼荞,他們只是感情好辽装,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著相味,像睡著了一般拾积。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丰涉,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天拓巧,我揣著相機與錄音,去河邊找鬼一死。 笑死肛度,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的投慈。 我是一名探鬼主播承耿,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼伪煤!你這毒婦竟也來了加袋?” 一聲冷哼從身側(cè)響起抱既,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎防泵,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體择克,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年壹堰,在試婚紗的時候發(fā)現(xiàn)自己被綠了拭卿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贱纠。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谆焊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辖试,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布罐孝,位于F島的核電站,受9級特大地震影響莲兢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜改艇,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一收班、第九天 我趴在偏房一處隱蔽的房頂上張望谒兄。 院中可真熱鬧,春花似錦舵变、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绵咱。三九已至,卻和暖如春悲伶,著一層夾襖步出監(jiān)牢的瞬間艾恼,已是汗流浹背麸锉。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留花沉,地道東北人媳握。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像蛾找,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赵誓,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

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