企業內部發佈行動應用程式更新版(Android&iOS)

企業內部發佈行動應用程式更新版(Android&iOS)

一、環境

iOS 7.1+

Xcode 5.1.1

iOS Developer Enterprise Program 授權

Android 4.0+

IntelliJ IDEA 13 CE

Google Play 一般開發授權即可


Apache2(ubuntu 14.04)

IIS7(Windows Server 2008)

部分設定與舊版同,內容若有提及參照舊版文章處,其連結如下。

http://noone-sung.blogspot.tw/2012/01/ioswi-fi.html



二、iOS封裝。

(1)封裝

iOS 封裝檔副檔名為 .ipa,其授權說明參照舊版文章。

由於 iOS 7.1之後有個規定,iOS 的封裝檔必須擺在 https 的伺服器上才能安裝。否則會跳憑證無效錯誤。

image

為了測試方便,我們利用 Dropbox 的 Public 資料夾提供的 https 連結功能。

image

可以先做個 ipa 的假檔,以便先取得連結網址。因為待會使用 Xcode 封裝時就會用到。

image

把這串網址先複製下來。

image

回到 Xcode,開始準備封裝。

封裝前,務必先確認有Enterprise Provisioning Profile。同時系統鑰匙圈中也有 Enterprise Distribution Certificatem。

開發者中心網站可以下載。

image

但是有個地方要特別注意,官方網站下載核發的憑證,在自己電腦或曾經匯入的電腦,會自動出現專用密鑰。

image

如果在其他新電腦上匯入官方下載的憑證,匯入後會發現不會出現專用密鑰,這對後續封裝佈署是有問題的。

image

保險起見,應在產生憑證要求的電腦上,上傳官方核發正式憑證之後,將憑證下載,匯入電腦憑證中,確認是具有專用密鑰無誤的憑證。然後使用輸出 .p12 副檔名的資訊交換檔。將這個 .p12 檔案與官方憑證一同備份保留。

image

image

日後憑證匯入沒有專用密鑰產生,請改用.p12 匯入。

image

除了憑證之外,另一個重點是 Distribution 用的  Provisioning Profile。

同樣也由官網的開發者中心下載。

image

匯入Profile的最直接方法,就是將 Profile 拖拉到 Xcode 的 ICON 上,讓 Xcode吃進去。

image

注意1:如果是 Enterprise Distribution 的 Profile+憑證,開發及轉散佈均可;如果是用到 Developer 的 Profile+憑證,只能開發及供已註冊的裝置使用。

注意2:如果 Xcode 有正確吃進去,即使 Preference 的 Account 沒有設置任何開發者帳號,

image

封裝時也不會出現 “No provisioning profiles” 的錯誤。

image

封裝前,確認專案是否已經指定正確的簽章。

這是有問題的。

image

這才是正確的。

image

image

簽章指定都確認沒問題之後,才能接著進行下一步。

Xcode 5 之後,封裝直接選 [Product] 下面,不需進入 [Buile For]。

image

過程中,會出現數次存取鑰匙圈要求。

image

封裝完後,這裡跟舊版 (Xcode 4) 不大一樣,只有 [Distribution] 可以選。

image

要選企業佈署用。

image

選擇正確憑證。

正常情況下 Profile 這裡顯示的名稱應與開發者中心 Profile 名稱一致。如果顯示的是 "iOS Team Provisioning Profile:*" 之類的名稱,多半是指開發用的 Profile。

image

選擇封裝要儲存的位置。

image

封裝檔做完後,連同 plist 一起上傳到 Dropbox 的 Public 資料夾。



(2) Server端設定。

A、Apache2 網頁伺服器,設定MIME對應。

修改 mime.conf 檔。

sudo gedit /etc/apache2/mods-enabled/mime.conf

加入此行。

AddType application/octet-stream .ipa

image



B、IIS7網頁伺服器,設定MIME對應。

舊版文章已提過未變,請參閱之。



C、建立ipa封裝網頁連結,讓使用者點選下載。

<a data-role="button" data-inline="true" class="ipa-list" href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/u/XXXXXXXXXXX/touchpaint1/touchpaint1.plist">



三、Android封裝。(使用Intellij IDEA環境)

Android封裝檔副檔名為 .apk,其開發授權目前為止只要付一次即可。發佈要走企業或上Google Play請自便。甚至丟到網路芳鄰中,只要你的 Android行動裝置抓的到即可。apk封裝檔安裝跟在Windows上安裝應用程式差不多,下載到裝置內用檔案總管之類 app 找到點擊安裝即可。

產生自簽的 APK 檔。

image

Next

image

如果是第一次做,請先選擇 [Create new…] 以便產生自簽憑證。

image

image

新建OK之後,會自動帶出憑證及密碼。下次使用請自填。

image

apk封裝存放位置。

image

image



(2) Server端

A、Apache2 網頁伺服器,設定MIME對應。

同 ipa 的設定步驟,只是填入值不同而已。

AddType application/vnd.android.package-archive .apk

image



B、IIS7網頁伺服器,設定MIME對應。

這部分同 ipa 一樣,只是填入的值不同而已。

請參照前版舊文。

image



C、建立ipa封裝網頁連結,讓使用者點選下載。

<a data-role="button" data-inline="true" href="apk/touchpaint1/touchpaint1.apk" type="application/vnd.android.package-archive">TouchPaint</a>