91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

不通過App Store,在iOS設(shè)備上直接安裝應(yīng)用程序

admin
2014年11月27日 2:44 本文熱度 12172

今天在iOS設(shè)備上安裝天翼云存儲app,在safari上直接打開http://cloud.189.cn/wap/index.jsp,點(diǎn)擊“點(diǎn)擊免費(fèi)安裝”,如下圖:



神奇的事情發(fā)生了,設(shè)備上直接下載app然后安裝了,不需要經(jīng)過app stroe。安裝完后第一次點(diǎn)擊app打開,會提示“是否打開distribution”之類的。去app store搜索一番,發(fā)現(xiàn)沒有“天翼云存儲”這個(gè)app。


這一下可被震驚了,可能孤陋寡聞,ios的app還可以用這種方式來安裝,那以后可不方便了?


好奇心來了,研究了一下,發(fā)現(xiàn)點(diǎn)擊打開的鏈接如下:


itms-services:///?action=download-manifest&url=http://cloud.189.cn/download/client/iOS/cloud189.plist?v=D1.0.6


google了一番,終于有些眉目了,打開這個(gè)地址:http://cloud.189.cn/download/client/iOS/cloud189.plist,會看到一個(gè)plist文件,內(nèi)容如下:






  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  

  3. <plist version="1.0">  

  4. <dict>  

  5.     <key>items</key>  

  6.     <array>  

  7.         <dict>  

  8.             <key>assets</key>  

  9.             <array>  

  10.                 <dict>  

  11.                     <key>kind</key>  

  12.                     <string>software-package</string>  

  13.                     <key>url</key>  

  14.                     <string>http://cloud.189.cn/download/client/iOS/cloud189_1.1.1.ipa</string>  

  15.                 </dict>  

  16.             </array>  

  17.             <key>metadata</key>  

  18.             <dict>  

  19.                 <key>bundle-identifier</key>  

  20.                 <string>com.21cn.cloud189</string>  

  21.                 <key>bundle-version</key>  

  22.                 <string>1.1.1</string>  

  23.                 <key>kind</key>  

  24.                 <string>software</string>  

  25.                 <key>title</key>  

  26.                 <string>天翼云存儲</string>  

  27.             </dict>  

  28.         </dict>  

  29.     </array>  

  30. </dict>  

  31. </plist>  

ipa放在這個(gè)位置:
http://cloud.189.cn/download/client/iOS/cloud189_1.1.1.ipa
這種安裝方式是利用apple推薦的使用企業(yè)證書簽名app的部署方式來安裝程序,天翼云存儲就是利用這樣的方式,繞過了app store,直接在ios設(shè)備上安裝,嚴(yán)格來說其實(shí)是不符合apple的相關(guān)規(guī)定的。
再深入了解,除了企業(yè)證書簽名的app,用普通簽名方式的app,在打包profile中指定的100個(gè)設(shè)備上也可以用這種方式安裝。呵呵,這可好了,這下子就可以解決發(fā)布未經(jīng)過審核app或者內(nèi)部測試app的問題了,事不宜遲,馬上動手測試。


后續(xù):


經(jīng)過測試,個(gè)人證書簽名是可以按這種方式發(fā)布app的,具體步驟看這里:


http://blog.csdn.net/sing_sing/article/details/7497794




最新的更新請看這里:


iOS 7.1使用企業(yè)應(yīng)用部署方式無法安裝app(2014-09-13更新:dropbox被墻后的解決方案)


http://blog.csdn.net/sing_sing/article/details/23662657


該文章在 2014/11/27 2:44:31 編輯過

全部評論1

admin
2014年11月27日 2:46
 

這篇文章純給自己留個(gè)備份,所以對AdHoc證書內(nèi)部分發(fā)和對iOS客戶端開發(fā)不了解的請直接無視。

一般在iOS游戲或應(yīng)用開發(fā)過程中,正式發(fā)布到App Store之前,都需要內(nèi)部的測試,客戶端的安裝是個(gè)不大不小的問題。蘋果提供了AdHoc的證書(普通版可以裝100臺設(shè)備,企業(yè)版無限),登記設(shè)備號的即可通過iTunes或者無線網(wǎng)絡(luò)安裝使用AdHoc證書的App。具體不多贅述。

參考資料:
http://www.alexcurylo.com/blog/2010/08/27/wireless-ad-hoc-distribution/
http://www.hanchorllc.com/2010/08/24/introducing-ios-beta-builder/

之前有用過一款產(chǎn)品叫HockeyApp(http://hockeyapp.net/),幫助實(shí)現(xiàn)內(nèi)部的分發(fā)和安裝,支持在線安裝、檢測更新,非常方便,簡單分析了一下其原理:

1. 服務(wù)端提供API供客戶端獲取最近版本信息,參考如下: 

https://sdk.hockeyapp.net/api/2/apps/565b9262a3913bb1123c71ba6575e07b?format=json&udid=d2134514a9c016fbd016a0815f1b3f41d9f38c82&sdk=HockeySDK&sdk_version=2.5.4b1&uuid=87dcb0e9981f34f6ad998590087fc554&app_version=4.2.0.12100902&os=iOS&os_version=6.0&device=iPhone3%2C1&lang=zh-Hans&first_start_at=10%2F09%2F2012&usage_time=27300

  

[

    {

        "timestamp": 1349965666,

        "shortversion": "4.2.1",

        "mandatory": false,

        "appsize": 115812817,

        "title": "Metal Nation",

        "version": "4.2.1.12101102",

        "notes": "修復(fù)BUG"

    },

    {

        "timestamp": 1349788437,

        "shortversion": "4.2.0",

        "mandatory": false,

        "appsize": 115866480,

        "title": "Metal Nation",

        "version": "4.2.0.12100902",

        "notes": "修復(fù)BUG"

    },

    {

        "timestamp": 1349704154,

        "shortversion": "4.2.0",

        "mandatory": false,

        "appsize": 115866530,

        "title": "Metal Nation",

        "version": "4.2.0.12100801",

        "notes": "<p>解決無法訪問的問題。</p>"

    },

    {

        "timestamp": 1348125250,

        "shortversion": "4.1.0",

        "mandatory": true,

        "appsize": 133946599,

        "title": "Metal Nation",

        "version": "4.1.0.12092001",

        "notes": "<p>新版本更新主要內(nèi)容:建造建筑變更為分階層進(jìn)行</p>"

    },

    {

        "timestamp": 1345717028,

        "shortversion": "3.9.4",

        "mandatory": false,

        "appsize": 90793414,

        "title": "Metal Nation",

        "version": "3.9.4.12082301",

        "notes": "<p>3.9.4更新內(nèi)容細(xì)節(jié)</p>"

    },

    {

        "timestamp": 1345115309,

        "shortversion": "3.9.3",

        "mandatory": false,

        "appsize": 69261482,

        "title": "Metal Nation",

        "version": "3.9.3.12081601",

        "notes": "<p>本次更新主要內(nèi)容</p>"

    },

    {

        "timestamp": 1344597742,

        "shortversion": "3.9.2",

        "mandatory": false,

        "appsize": 67664284,

        "title": "Metal Nation",

        "version": "3.9.2.12081002",

        "notes": "<p>PA3.9.2更新說明</p>"

    },

    {

        "timestamp": 1344332672,

        "shortversion": "3.9.1",

        "mandatory": false,

        "appsize": 66645470,

        "title": "Metal Nation",

        "version": "3.9.1.12080701",

        "notes": "<p>主要改進(jìn)的數(shù)值</p>"

    },

    {

        "timestamp": 1343992275,

        "shortversion": "3.9.1",

        "mandatory": false,

        "appsize": 66622883,

        "title": "Metal Nation",

        "version": "3.9.1.12080302",

        "notes": "<p>本次更新主要內(nèi)容</p>"

    },

    {

        "timestamp": 1343992251,

        "shortversion": "3.9.1",

        "mandatory": false,

        "appsize": 66622828,

        "title": "Metal Nation",

        "version": "3.9.1.12080301",

        "notes": ""

    },

    {

        "timestamp": 1343813073,

        "shortversion": "3.9.1",

        "mandatory": false,

        "appsize": 66602801,

        "title": "Metal Nation",

        "version": "3.9.1.12080101",

        "notes": ""

    },

    {

        "timestamp": 1343727905,

        "shortversion": "3.9.1",

        "mandatory": false,

        "appsize": 66560890,

        "title": "Metal Nation",

        "version": "3.9.1.12073101",

        "notes": ""

    }

]

 

2. 客戶端根據(jù)版本列表判斷是不是最新版本,和是不是要強(qiáng)制更新,如果需要更新,可以類似與HockeyAPP內(nèi)嵌一個(gè)網(wǎng)頁顯示版本信息,點(diǎn)擊更新按鈕后,訪問服務(wù)端的下載更新包的API。

網(wǎng)頁更新鏈接代碼如下:

<a href="itms-services://?action=download-manifest&url=https://sdk.hockeyapp.net/api/2/apps/565b9262a3913bb1123c71ba6575e07b?format=plist&udid=d2134514a9c016fbd016a0815f1b3f41d9f38c82">Tap Here to Update</a>

 

 

3. 服務(wù)端提供下載更新包的API,傳入用戶設(shè)備號和請求的版本號參數(shù),返回一個(gè)manifest.plist文件,本質(zhì)是一個(gè)XML,包含更新包描述信息,參考如下:

 

https://sdk.hockeyapp.net/api/2/apps/565b9262a3913bb1123c71ba6575e07b?format=plist&udid=d2134514a9c016fbd016a0815f1b3f41d9f38c82

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0"> 

<dict> 

<key>items</key> 

<array> 

<dict> 

<key>assets</key> 

<array> 

<dict> 

<key>kind</key> 

<string>software-package</string> 

<key>url</key> 

<string>https://sdk.hockeyapp.net/api/2/apps/565b9262a3913bb1123c71ba6575e07b?format=ipa&amp;udid=d2134514a9c016fbd016a0815f1b3f41d9f38c82</string> 

</dict> 

<dict> 

<key>kind</key> 

<string>display-image</string> 

<key>needs-shine</key> 

<false /> 

<key>url</key> 

<string>https://sdk.hockeyapp.net/api/2/apps/565b9262a3913bb1123c71ba6575e07b?format=png&amp;udid=d2134514a9c016fbd016a0815f1b3f41d9f38c82</string> 

</dict> 

</array> 

<key>metadata</key> 

<dict> 

<key>bundle-identifier</key> 

<string>com.idfsoft.idfCity</string> 

<key>bundle-version</key> 

<string>4.2.1.12101102</string> 

<key>subtitle</key> 

<string>4.2.1 (4.2.1.12101102)</string> 

<key>title</key> 

<string>Metal Nation</string> 

<key>kind</key> 

<string>software</string> 

</dict> 

</dict> 

</array> 

</dict> 

</plist>

 

其中software-package對應(yīng)的Url為ipa文件下載地址,其中display-image對應(yīng)的Url為App的圖標(biāo)圖片URL

 

 

5. 后臺管理中,需要增加頁面讓用戶可以上傳最新的ipa文件和輸入版本更新信息,其中ipa文件的解析邏輯如下:

  • 將ipa文件作為zip文件解壓縮
  • 解壓后,讀取根目錄下的Info.plist文件,是一個(gè)XML格式文件
  • 讀取CFBundleShortVersionString節(jié)點(diǎn),或得版本號簡寫
  • 讀取CFBundleVersion獲取版本號
  • 讀取CFBundleIdentifier獲取唯一編號
  • 讀取CFBundleDisplayName獲取名稱
  • 保存這些信息到數(shù)據(jù)庫中,在生成manifest.plist的API中用以顯示相應(yīng)數(shù)據(jù)。

 基本上就這樣。


該評論在 2014/11/27 2:46:10 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产视频第一页 | 麻花传剧 | 女同互添下 | 欧洲中文字幕在线 | 国产喷水在线观看 | 欧美日韩伦理电影 | 韩日成人 | 精品日本亚洲影视 | 日本女优中文字幕 | 国产一区二区电影 | 国产又爽又粗又湿 | 日韩欧美激情刺激 | 日韩一级中文字幕 | 日本a级精品一区 | 精品熟女碰 | 国内精品伊 | 日韩中文精品 | 国产一区在线 | 91精品秘入口观看 | 麻花星空影视传 | 日本波多野 | 成人国产欧美 | 欧美日一级 | 精品一精品国产一级 | 日本乱码一区二 | 国产青青手机在 | 69精品人 | 91丨九色丨 | 日韩视频一区 | 3D成人性动漫入口 | 日本成人一=三区 | 国产精品午夜福利 | 国产日韩欧美视频 | 91影院首页 | 国产公妇仑在线观看 | 国产另类巨 | 国产精品久一区 | 乱子轮熟睡1区 | 国泰饭店| 国产熟女乱子伦露 | 动漫精品一区二 |