前提:
要實現這一功能,首先要有一個企業賬戶(年費是$299),並且已經配置好了相應的證書以及Provisioning Profile。
其次,要有一個git.oschina.net的帳號,用於相關文件的存放。
最后,要安裝Apache之類的Web服務器。
詳細教程:
第一部分:Xcode應用打包
首先,打開你要發布的Xcode工程。選擇工具欄的Product->Archive,此時Xcode會對應用程序進行打包。
如果Archive是灰的,把運行平台選為iOS設備就可以了。
打包完成之后,會彈出Archives對話框。這里顯示了剛剛打包好的工程,此時要點擊右側的Distribute按鍵。
點擊Distribute按鍵之后會提示進行發布方式選擇。這里選擇中間的Save for Enterprise or Ad Hoc Deployment。
接下來會彈出提示選擇相應的Provisioning Profile,必須是企業賬戶並正確配置后才能有相應的發布Provisioning Profile。選擇完成后點擊Export。
之后會進入文件存儲路徑選擇,這里我們選擇了桌面。然后勾選底下的Save for Enterprise Distribution,此時會彈出企業發布的相關設置。這里必填的只有兩項:Application URL和Title,前者是應用的下載地址,后者是應用的名稱。由於我們現在還沒有部署程序下載地址。所以這里可以先填入類似下圖的地址,Title就起應用的名字。其他的可以留空。
點擊Save,此時會發現桌面多了兩個文件,一個是.ipa文件,一個是.plist,有了這兩個文件,就能部署在線安裝應用了。
如果你的iOS設備已經越獄,此時把這個ipa通過xx助手里面安裝就能裝上了。
第二部分:部署下載服務器
首先,你要搭建一個Web服務器,Mac上可以通過MAMP(http://www.mamp.info/en/)進行,下載安裝基本都是一路Next,沒有什么難度,安裝完成之后,啟動MAMP,在Preference里面查看Apache Port,默認是8888。之后點擊OK關閉Preference。此時只要點擊Start Servers便可以啟動Web服務器。
此時其他設備通過你電腦的ip:端口便可以訪問你的Web服務器了。比如你的Mac的IP是192.168.1.107,用手機瀏覽器訪問192.168.1.107:8888便可以訪問服務器了(當然這里要保證在同一路由下)。
看到這里,你可能會想直接把ipa放到服務器里面,然后用手機瀏覽器直接打開這個ipa進行安裝,但很可惜這是不行的,蘋果還沒有這么開放。
雖然無法通過直接打開ipa下載安裝應用,但我們也可以把之前在桌面生成的ipa和plist文件放到Web服務器的根目錄下(默認是Application/MAMP/htdocs)。還記得之前打包應用的時候,有一項Application URL是隨便填的嗎,這里可以輸入正確的地址了:假設你的IP地址是192.168.1.107,Apache端口是默認的8888,這里Application URL就應該是http://192.168.1.107:8888/**.ipa(這里**填入你應用的名稱)。修改Application URL的方法是:打開你剛剛放到Web服務器根目錄的plist,修改里面url對應的值,改成http://192.168.1.107:8888/**.ipa。
來到Web服務器根目錄,刪掉原來的index.php文件(當然,最好是先備份一下),新建一個index.html的文件(推薦使用Sublime Text2工具)。然后輸入以下語句(將http://192.168.1.107:8888/UVMork.plist換成相應的地址):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>iPhone Application</title> </head> <body> <ul> <li><a href="itms-services://?action=download-manifest&url=http://192.168.1.107:8888/UVMork.plist"> App Install</a> </li> </ul> </body> </html>
保存后,用手機訪問192.168.1.107:8888便會進入這個html頁面。
此時,點擊App Install,會有兩種情況,如果你的iOS設備是iOS7.0或者更低的版本,App已經開始安裝了,但是,如果你的設備是iOS7.1的,很可惜,會提示證書無效,無法安裝。
無法安裝的原因是蘋果在iOS7.1之后更改了itms-services協議,更改后只能通過https協議在線安裝應用。而我們之前部署的Web服務器都是http開頭的,也就無法安裝。
解決的方法有兩種。第一種是為你的Web服務器添加https協議,第二種便是這里要用到的通過使用了https協議的第三方網盤來存放plist以及ipa文件,實現類似自己搭建的Web服務器的效果。但是不是任意網盤都能實現這一功能的,國內的百度雲盤,360等都不支持。國外的Dropbox支持,但有牆在,基本沒法用。這里我們使用的是開頭提到的git.oschina.net。
接下來的步驟就是把ipa和plist都存放在git.oschina.net里,然后修改Web服務器index.html的鏈接地址,改為plist文件在git.oschina.net的地址(你可以通過查看文件的原始數據獲得這個地址),然后iOS設備訪問原來的地址(192.168.1.107:8888)便可以正確安裝了。如果你用過Git進行代碼管理,基本就不需要教程了。如果你沒有接觸過Git,可以先學習下Git的一些基本功能。
首先登錄https://git.oschina.net,然后點擊右上角的加號『創建一個新項目』,項目名可以填Xcode的工程名。其他可以留空。然后點擊創建項目按鍵,項目就創建完成了。
接着,進入項目的地址,找到項目對應的HTTPS地址(以git結尾),復制到剪貼板。
接着用你的Git工具(比如Version)把此地址的項目下到本地,然后將你的ipa和plist文件通過Git工具Push到遠端。Push完成之后,在瀏覽器中刷新你的Git工程所在的頁面,就能看到剛剛Push的文件了。
此時,在瀏覽器中打開ipa文件,右鍵點擊『下載』,選擇拷貝下載鏈接。然后修改剛Push到遠端的plist文件的url,改成這個下載連接。修改之后再次Commit,Push到遠端。
最后,打開MAMP服務器的網頁文件目錄,修改html的地址為剛剛Push的plist的地址(通過瀏覽器查看plist文件的原始數據可以獲得)就行了,iOS7.1或更新的設備再次通過瀏覽器訪問原來的地址(192.168.1.107:8888),點擊App Install便可以正確安裝應用了。
接下來,你可以設計下下載的頁面,讓這個頁面更好看。此外,由於網址是LAN的地址,所以要外網訪問的話,還需要在路由進行端口映射,這樣外網的用戶就能下載到你的應用了。