成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS IPA文件的自動(dòng)化生成和無(wú)線分發(fā)

移動(dòng)開(kāi)發(fā) iOS 自動(dòng)化
iOS應(yīng)用開(kāi)發(fā)測(cè)試過(guò)程中,通過(guò)無(wú)線網(wǎng)絡(luò)進(jìn)行IPA包的分發(fā)將是非常便捷的,于是也就有了類(lèi)似testflightapp之類(lèi)的平臺(tái)(該公司近日已被蘋(píng)果收購(gòu))。對(duì)于這一功能,我們也可以自己實(shí)現(xiàn),只需要一個(gè)簡(jiǎn)單的http server,并部署三個(gè)文件。

iOS應(yīng)用開(kāi)發(fā)測(cè)試過(guò)程中,通過(guò)無(wú)線網(wǎng)絡(luò)進(jìn)行IPA包的分發(fā)將是非常便捷的,于是也就有了類(lèi)似testflightapp之類(lèi)的平臺(tái)(該公司近日已被蘋(píng)果收購(gòu))。對(duì)于這一功能,我們也可以自己實(shí)現(xiàn),只需要一個(gè)簡(jiǎn)單的http server,并部署三個(gè)文件:

  • index.htm
  • AppName.plist
  • AppName.ipa

AppName.plist 和 AppName.ipa 文件的生成方式會(huì)在后面講述,而 index.htm的內(nèi)容如下:

  1. <a href="itms-services://?action=download-manifest&url=http://192.168.1.***ppName/AppName.plist">Click to Install AppName</a> 

可以猜測(cè),該index.htm頁(yè)面的功能是下載plist文件,并進(jìn)行觸發(fā)ipa文件的下載和安裝。

注:

iOS Developer Program 類(lèi)賬號(hào)可注冊(cè)的測(cè)試設(shè)備上限為100臺(tái),只有注冊(cè)了其UDID的設(shè)備才可以安裝該賬號(hào)開(kāi)發(fā)的App;

iOS developer Enterprise Program 類(lèi)賬號(hào)則對(duì)設(shè)備數(shù) 量不做限制,相對(duì)iOS Developer Program來(lái)講,企業(yè)賬號(hào)支持“in-house”應(yīng)用,但不能提交應(yīng)用到AppStore。該賬號(hào)可創(chuàng)建"in-house"類(lèi)型的 Provisioning Profile,使用該P(yáng)rofile的App則可以安裝到任何設(shè)備上,無(wú)須注冊(cè)設(shè)備的UDID。

2. IPA文件的自動(dòng)化生成

手動(dòng)生成(Xcode 5):

點(diǎn)擊 Xcode->Product->Archive 菜單項(xiàng),會(huì)打開(kāi) Organizer-Archives 窗口,點(diǎn)擊 Distribute...,然后選擇 Save for Enterprise or Ad Hoc Deployment,之后要選擇相應(yīng)的Provisioning Profile文件,點(diǎn)擊 Export 按鈕會(huì)彈出保存ipa文件的窗口,勾選窗體下方的 Save for Enterprise Distribution 選項(xiàng)

其中"Application URL"為IPA文件的鏈接地址,如 http://192.168.1.***ppName/AppName.ipa,然后填寫(xiě)Title后,其它內(nèi)容 都可不填。這樣,保存后將會(huì)生成AppName.ipa 和 AppName.plist 兩個(gè)文件。

自動(dòng)生成:

上面講到的生成ipa包的過(guò)程,需要點(diǎn)擊、選擇、填寫(xiě)等多個(gè)步驟。這里利用Xcode提供的命令行工具可以自動(dòng)化完成,其關(guān)鍵命令為

xcodebuild -exportArchive -exportFormat IPA -archivePath AppName.xcarchive -exportPath AppName.ipa -exportProvisioningProfile 'MyApp Distribution Profile'

意為,使用provisionging profile 'MyApp Distribution Profile' 將歸檔文件 AppName.xcarchive 導(dǎo)出為IPA文件 AppName.ipa

其中 AppName.xcarvhive 文件在使用上面提到的Xcode->Product->Archive菜單項(xiàng)即可生成(這里要講到的自動(dòng)化生成,即在點(diǎn)擊該菜單項(xiàng)后自動(dòng)化生 成IPA文件),此時(shí)生成的archive文件名都遵循按Xcode自定的命名規(guī)則,并統(tǒng)一生成到一個(gè)既定目錄下(~/Library /Developer/Xcode/Archives)

在Archive Scheme中添加Post-actions

在Product > Scheme > Edit Scheme 的 Archive 項(xiàng)中添加Post-actions,并在其Run Script中添加如下腳本

archive=`bash ~/tools/newest_archive.sh`
ipa_path=~/ipa/AppName.ipa

rm "${ipa_path}"
xcodebuild -exportArchive -exportFormat IPA -archivePath "${archive}" -exportPath "${ipa_path}" -exportProvisioningProfile "MyApp Distribution Profile"

該腳本將在Archive菜單項(xiàng)的操作完成后自動(dòng)執(zhí)行。

獲取***的archive歸檔文件

上面的shell腳本中的 newest_archive.sh 是一個(gè)簡(jiǎn)單的bash腳本,用以獲取***的archive文件,即剛剛由Archive菜單項(xiàng)生成的,其內(nèi)容如下

  1. //! newest_archive.sh 
  2. newest= 
  3. backIFS=$IFS 
  4. IFS=$(echo -en '\n\b'
  5. for f in `find ~/Library/Developer/Xcode/Archives -name *.xcarchive` 
  6. do 
  7.         if [ -z $newest ] 
  8.         then 
  9.                 newest=$f 
  10.         elif [ $f -nt $newest ] 
  11.         then 
  12.                 newest=$f 
  13.         fi 
  14. done 
  15. echo "${f}" 
  16. FS=$backIFS 

如此,在每次點(diǎn)擊Archive菜單項(xiàng)時(shí),都會(huì)將***生成的archive歸檔文件自動(dòng)導(dǎo)出為AppName.ipa文件,并將其存到~/ipa目錄之下。

注:

1. 也許Xcode有提供更方便的訪問(wèn)相應(yīng)archive文件的方法,如有請(qǐng)指教

2. plist文件手工生成一次即可,所以也就沒(méi)有plist文件的自動(dòng)化生成...

參考資料:

1. Wireless AdHoc Distribution http://gknops.github.io/adHocGenerate/

2. 頒發(fā)用于iOS設(shè)備的企業(yè)級(jí)應(yīng)用程序 http://help.apple.com/iosdeployment-apps/mac/1.1/?lang=zh-cn

3. Xcode命令行工具之xcodebuild說(shuō)明 https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html

責(zé)任編輯:徐川 來(lái)源: cnblogs
相關(guān)推薦

2023-08-17 10:14:58

物聯(lián)網(wǎng)家庭自動(dòng)化

2021-05-26 08:51:50

漏洞漏洞掃描符號(hào)執(zhí)行

2025-03-28 11:14:24

Linux巡檢服務(wù)器

2017-04-10 12:25:32

iOS自動(dòng)化測(cè)試

2017-01-06 10:54:03

AndroidiOSJenkins

2015-11-09 10:25:40

自動(dòng)化工具開(kāi)源

2021-12-14 07:40:08

Excel自動(dòng)化辦公

2024-06-11 10:41:14

2009-07-14 18:24:31

ibatis映射文件

2018-05-10 15:54:39

2024-02-20 16:27:29

RPAAI人工智能

2021-09-02 10:44:28

物聯(lián)網(wǎng)制造自動(dòng)化人工智能

2023-07-12 15:41:18

2010-10-27 12:01:37

WLAN自動(dòng)化AP

2017-02-07 18:48:00

NFV自動(dòng)化NFV編排虛擬化

2017-02-06 16:25:51

NFVNFV自動(dòng)化NFV編排

2016-09-27 23:31:23

2023-06-21 11:42:33

2014-05-13 13:41:51

iOS開(kāi)發(fā)自動(dòng)化打渠道包

2021-08-13 18:21:28

自動(dòng)化iOSUA
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 四虎影院在线免费观看 | 欧美日韩视频在线第一区 | 亚洲综合在线视频 | 亚洲一区 中文字幕 | 颜色网站在线观看 | 中文字幕视频网 | 免费视频99 | 粉嫩国产精品一区二区在线观看 | 久久99精品久久久久久狂牛 | 三级在线免费观看 | 久久久精| 国产免费又色又爽又黄在线观看 | 欧美日韩国产精品一区二区 | 成人a视频片观看免费 | 成人在线观 | 一级全黄视频 | 久久久精品黄色 | 亚洲电影一区二区三区 | 婷婷色婷婷| 99re6在线 | 国产精品久久国产精品 | 天天操天天干天天透 | 亚洲精品一区二区 | 九九热最新地址 | 欧美一级片在线看 | 成人免费大片黄在线播放 | 成人国产在线视频 | 色综合天天综合网国产成人网 | 亚洲有码转帖 | 日本一二区视频 | 国产精品久久久久婷婷二区次 | 午夜理伦三级理论三级在线观看 | 中文字幕一区二区三区日韩精品 | 亚洲国产高清免费 | 久久精品一级 | 国产精品精品久久久 | 91久久久www播放日本观看 | 精品不卡 | 天天看天天干 | 中文日韩在线 | 欧美激情视频一区二区三区在线播放 |