Some thoughts regarding to iOS Passbook app

Apple released Passbook in iOS 6 update, and it’s one of the features that impress me much in iOS 6. Passbook allow users to collect all coupons, cinema tickets, boarding pass in their iPhone.

With Passbook, there is no need anymore to download and register any other third-party ticket-collecting apps. I think it would be extremely convenient for general public in the coming future. However, such trend shows less sign in Taiwan market.

Recently in Taiwan, smartphone user population is seeing obvious growth among total cell phone population. Nevertheless, the way users in Taiwan using smartphone is much different to place where iPhone was invented, says USA.

For example, in Taiwan, seldom do general public purchase legitimate digital music. People here are already used to buying things on internet, but much more on traditional website rather than on mobile web or within smartphone apps. Since iOS 6 was released in June 2012 for developers only, and in September 2012 for all iOS devices users, I have seen only two taiwanese companies who had started developing services regarding to Passbook.

Besides digital purchasing digital music, goods, and e-books on mobile devices, many O2O services which are already popular in USA or western countries are still unfamiliar to Taiwanese consumers. This phenomenon from time to time frustrates startups and developers on this island.

購買數位音樂

iPod.

國、高中時,零用錢很少,我把10元、20元慢慢存起來,每次存到300元便拿去買唱片。當時,一張CD的價格大約是298到319元之間,直到十多年後的現在,緩漲到了一張約349元左右。雖然現在已經非常少買CD唱片,但是從國中到現在,十多年中也是買掉了好幾萬元的正版CD。

在小學就聽說了Mp3這玩意兒,但在當時,Mp3隨身聽太貴了,是我完全不可能擁有的奢侈品。當時,在夜市仍能看到盜版的唱片,非法的mp3下載網站也尚未絶跡。直到2006年,我才買了第一台Mp3隨身聽,Apple的iPod Mini。在當時,Apple藉由iTunes Store打開了數位音樂購買的市場,但是該服務遲遲沒能進入台灣。在Mp3播放器風行之後的幾年中,身為一個重度網路沉迷者,我的電腦和手機中難免也會有一些…走在路上撿到的Mp3音樂(汗)。

2008年,聽說了Indievox,由台灣獨立搖滾樂團Echo主唱吳柏蒼創辦,吸引了台灣絕大多數獨立音樂人將作品放在Indievox網站上販售,藉由下載收益拆分來賺錢。Indievox上音樂雖不少,但是多半是獨立小眾音樂,無法全然滿足我聽音樂的需求。我並非討厭或是不聽獨立音樂,但是我覺得在獨立音樂中要尋覓到好聽的新音樂,需要花上不少時間;反之,我偏好從過去發行的音樂中尋找已經過一段時間考驗的音樂。我幾乎是在Indievox創辦後沒多久就申請了會員帳戶,在帳戶中儲值音樂,斷斷續續、零散買過一些名氣不是很大的音樂人的作品。

多年之後,在今年稍早時,我居然發現,有幾位當年在Indievox上認識的音樂人,現在還活躍在台灣音樂圈中,且或許也獲得了更多群眾的支持。

不知道從什麼時候開始,即便我買了CD唱片,會立刻拆開包裝之後、把整張唱片的每一首音軌轉錄成Mp3儲存進電腦裡,往後幾乎只會用電腦或Mp3隨身聽來聽這些歌。實體CD變成了一種紀念,或是作為對特定音樂人表達支持的表徵。

退伍後開始工作,我加入了一個Mobile App新創團隊。既然自己都在做軟體的公司了,當然沒有藉口去買非法的軟體或數位內容。台灣iTunes Store有一個長久以來的遺憾,便是遲遲無法像其他國家一般付費購買Mp3音樂。2012年9月,iTunes Store終於在台灣開通,在iOS平台上下載正版音樂變得非常方便,我立刻買了萬芳、Radiohead、李宗盛、Gotye、Faithless等人的唱片。現在若我想要聽某首歌,我會在電腦或iPhone上打開iTunes Store,搜尋、輸入購買密碼、下載取得音樂,方便又快速。

沒有音樂我真的不知道該如何活下去。也許我們愈來愈少、甚至再也不買CD唱片了,但我和許多朋友一樣,對實體CD唱片仍有感情,那些年以來買過的CD,我會永遠好好收存在書櫃中,偶爾拿出來瞧瞧,懷想那些年的青春。

平板電腦 市場數據 (updating)

2012年Q3全球

  • 廠牌:iPad 市佔率 50.4%,Samsung市佔率18.4% (2011.11.5 Business Insider)
  • 作業系統:iOS市佔率 56.7%,Android市佔率 41.3%
  • 現有App數量:275,000個 (2012.11.30)
  • 全球前100大iPad導入企業案例 (2012.10.16 Forbes.com)
  • 94%的Fortune 500大企業已經導入或是正在測試使用iPad
  • 網路流量:

美國

  • 超過2500所美國學校使用iPad
  • 80%的美國高中教材可以在iBooks Store上下載

2012美國感恩節假期線上購物統計

  • 行動裝置佔整體線上購物流量:iPad佔了10%流量,iPhone佔8.7%流量,所有Android裝置流量總共只有5.5% (2012.11.25 Business Insider)
  • 單就平板電腦而言:iPad佔消費流量88.3%,Nook佔3.1%,Kindle佔2.4%,Samsung Galaxy佔1.8%

tablet-chart

tablet-share

台灣:(2012.1.31 iThome)

  • 企業已採用平板:iPad佔43%,Android佔17.9%
  • 醫療業採用平板:34.8%採用iPad,26.1採用Android
  • 企業採購:47.9%企業採購iPad,25%企業採購Android,18.2%企業採購Windows
  • 「署立雙和醫院資訊室主任陸偉輝則認為,企業所導入的平板作業系統與內部App開發有關,但企業在導入Android作業系統上仍多存有安全上的疑慮。」
  • 「天主教聖保祿修女會醫院則認為iPad2不管在系統運作效能、安全防護等方面都有較好的表現,螢幕尺寸、裝置重量等也較適合行動醫療之用,故在評比過多種平板產品之後,選擇iPad2作為行動醫療裝置。」

中國大陸

  • iPad市佔率 71.4% (2012.11.30 Forbes)
  • 2012年7月到11月,iPad在中國賣出260台,佔全球銷量的19%

Windows 8 vs Windows RT

Apple iOS MDM service 簡介

藉由MDM服務,企業可以用來控管配發給員工的iOS Device。可以採用Apple官方推出的工具,也可以採用第三方開發的服務。

MDM server傳送描述檔和指令的流程

  1. 管理員傳送一個設定描述檔(Configuration Profile)到使用者的iOS裝置上。
  2. 使用者安裝該設定描述檔。
  3. 該台iOS裝置向MDM server註冊,開始被監管。
  4. MDM server透過Apple Push Notification Service發送推播訊息到給iOS裝置,請裝置向server確認是否有新的指令或query。
  5. iOS裝置藉由HTTPS和MDM server連接,MDM server傳送指令給裝置、或是向裝置要求回傳資訊。

Apple Push Notification

當MDM server要和iOS裝置溝通,Apple Push Notification會送一則通知給在螢幕鎖定中的iOS裝置,請iOS裝置向MDM server做check in,看看有沒有新的環境設定、或工作任務需要被推送到裝置上。

如果iOS裝置決定接收新的資料,Configuration Profile及其他設定,會在背景用被SSL/TLS加密的方式在裝置和MDM server之間做傳輸。

為了讓Apple Push Notification服務正確辨認來自MDM server送出的指令,必須申請及下載Apple Push Certificate,將其安裝到MDM server中,如此才能讓iOS裝置向MDM server註冊。 網路設定

  1. MDM server最好是連接到一個固定網域,而非一個IP位置。(The IP address range for the push service is subject to change; the expectation is that an MDM server will connect by hostname rather than by IP address. The push service uses a load-balancing scheme that yields a different IP address for the same hostname. This hostname is gateway.push.apple.com (and gateway.sandbox.push.apple.com for the development push notification environment). Additionally, the entire 17.0.0.0/8 address block is assigned to Apple so firewall rules can be established to specify that range)
  2. 把這台MDM server建置在企業內部時,建議打開以下port:
    • Port TCP 80 (http)
    • Port TCP 443 (https)
    • Port TCP 1640 (SCEP)
    • Port TCP 5223 (APNS)
      • 讓iOS裝置連接到push service。
    • Port TCP 2195 (APNS)
      • 讓MDM server傳送通知到Apple Push Notification service。
    • Port TCP 2196 (APNS)
    • feedback service

註冊

iOS裝置註冊(Enrollment) 裝置註冊是讓iOS裝置接受被某台MDM server管理。可以把iOS裝置插線到電腦、或是用無線(Over-the-Air Enrollment)傳輸的方式來接收註冊描述檔(Enrollment Profile),多半都是後者,其流程包括:

  1. User Authentication
    • 管理員可透過email、簡訊、網頁、App來請使用者在iOS裝置上進行註冊。
  2. Certificate Enrollment
    • iOS會透過SCEP(Simple Certificate Enrollment Protocal)產生一個certificate enrollment request,這個request傳送到CA(Certificate Authority),接著使iOS裝置收到identity certificate。
  3. Device Configuration
    • 安裝好identity certificate後,iOS裝置就可以OTA收到加密過的環境設定(configuration information)。

上面可以掠過不看,總之就是,使用者必須在iOS裝置上下載安裝由MDM server發出的profile(描述檔),接著該台裝置就會自動向MDM server進行註冊。註冊完成後,這台iOS裝置就能接收來從MDM server發出的環境設定、資訊更新、被遠端鎖定、被遠端清除資料等工作。

用Apple Configurator來啟用監管

  1. 透過Apple Configurator,iOS裝置可以變成supervised的狀態。
  2. 你可以搭配iPhone Configuration Utility,在Apple Configurator中就先設定好iOS裝置的環境設定,也可以隨後再用MDM server來設定。
  3. 接著這台裝置當然也可以透過OTA被MDM server監管。

缺點是,如果採用Apple Configuration,必須把各台iOS裝置連接到電腦上,逐次做啟用監管的動作。

管理

  1. 可從MDM Server藉由推播設定描述檔(Configuration Profile)來改變iOS裝置中的環境設定,包括:禁止使用相機、App Store下載功能、預設wifi帳號密碼、VPN設定…等。
  2. MDM server可推播App Store上的免費App、企業內部開發的in-house App到iOS裝置上進行安裝。使用者會在iOS裝置上收到請安裝該App的通知,使用者有決定安裝或是取消安裝的權力。
  3. 這些由MDM server發送給使用者的App,其中儲存的資料不會被備份到iTunes或iCloud中。
  4. 如果管理者想要購買某款付費App來發送給使用者的iOS裝置,則可以先藉由Volume Purchasing Program(VPP)來購買授權碼(Redemption Code),並且將授權碼交給使用者,使用者即可用來安裝該App,而不必自己付錢。
  5. MDM server可以移除先前推播給iOS裝置的App,並且查看當profile描述檔被移除時,這些App是否也被移除了。

遠端清除iOS裝置中的資料

當有iOS裝置遺失或是疑似遭竊,管理員可以透過MDM server遠端發送指令到裝置上,將必要的資料刪除,以防企業內部資料被有心人士洩漏出去。指令送出之後,一旦該台iOS裝置連接到無線網路,指令就會在裝置中執行。

  1. 如果iOS裝置遺失,MDM server 可以遠端發送指令,將裝置的螢幕鎖定,必須輸入該使用者先前設定好的密碼,才能解除鎖定。
  2. 管理員可以刪除從MDM server推播給iOS裝置的MDM Configuration Profile,如此一來,裝置中所有藉由這些描述檔接收的環境設定、App,都會消失。
  3. 承上,當然管理員也可以指單獨刪除某些設定描述檔(Configuration Profile)和App。
  4. MDM server可以發送指令,清除掉整台iOS裝置中的所有資料,回到出廠時的狀態。

另外,如果使用者不小心忘記了自己設定的螢幕鎖定密碼,可以請管理員透過MDM server遠端發送指令,將該台iOS裝置的密碼清除,但同時要求60分鐘之內必須設定新的密碼。

( 以上資料來自:http://tinyurl.com/br55zxr )

Lion Server之Profile Manager監管大量iOS設備 (進階篇)

先前我們在設定OS X Lion Server的Server App及無線監管iOS裝置這篇裡面簡介了如何設定Server App和Profile Manager,用來監管iOS裝置。在Profile Manager中無線推播App和描述檔給iOS裝置,其中必須手動去每一台iOS裝置上登入My Devices頁面去把自己註冊給Server,但是以上都是建設在你的iOS裝置數量不多的情況下。

如果今天你的iOS裝置數量很多(例如上百台),我在之前這篇裡面提供幾種變通的方法,其中,現在這一篇便要來說明用CSV檔案把所有iOS裝置的序號預先輸入到Profile Manager的作法。

0.我的需求

  • 用OS X Lion Server的Server App監管100台iPad,這100台iPad會發給100個使用者
  • 我不想讓使用者自行到My Devices頁面註冊自己的iPad,原因是不想讓使用者有機會自己鎖定自己的iPad。解決辦法是把信任描述檔和登記描述檔放在我另外建立的網頁上,供使用者手動點選下載安裝。
  • 我要從Profile Manager來無線推送設定iPad使用限制的描述檔到iPad上,並且不定期推送自行開發(In-house)的App到iPad上。

1.輸出憑證

首先,當然是先在Server App中設定好Profile Manager。

接著是從Profile Manager中輸出信任描述檔(Trust File For)和登記描述檔(Enrollment Profile)。

7225728720_96da7519dd_o
▲在右上角可下載「信任描述檔(Trust File For)」

7225728906_d7a378617c_o
▲在左下角可以新增「登記描述檔(Enrollment Profile)」,右下角則可以下載輸出

在你自己的網域中建一個註冊iPad用的網頁(暫名為:http://xxxx.server/download ),把信任描述檔和登記描述檔的連結放上去。

2.用CSV檔大量輸入裝置序號

接著,蒐集好100台iPad的序號,用來建立.csv檔案。當然你可以用記事本或是寫script來產生,但是我很懶所以我想用excel。然而,不知為何我用Office Excel輸出的CSV檔案始終無法成功輸入到Profile Manger,所以我選擇用Google Doc來做變通。

在Google Doc中,在表格的第一列建立下面五個值:「DeviceName」、「SerialNumber」、「udid」、「IMEI」、「MEID」。

在「SerialNumber」這一欄中,輸入100台iPad的序號。其他四列都可以維持空白。

接著,輸出儲存為.csv檔案。

打開你的Profile Manager,點選「設備」頁面, 此時中間的設備清單是一片空白的,因為我們尚未加入任何iPad進去。點選空白欄位最底下的「+」,選擇「輸入暫存區(Place Holder)」,輸入剛剛我們做好的.csv檔案。

接著,便會在設備欄位中看到100台iPad的序號了。

你可以順勢把這100台iPad的序號全部製作成一個「設備群組」(暫名為「100 iPad Group」),往後再這個設備群組中做更動,就會直接無線推送到所有iPad上面。

3.註冊監管

再接下來則是在iPad上註冊讓Server監管。

請使用者在iPad上打開Safari,前往http://xxxx.server/download,依序點選下載安裝「信任描述檔」和「登記描述檔」。

兩者安裝完畢之後,此時該台iPad已經開始被Server監管,管理員在Profile Manager中已經可以看到該台iPad的資訊。

如果管理員已經有為「100 iPad Group」製作一個描述檔來定義各種環境設定,此時iPad就會自動下載安裝,不需使用者手動點選確認;如果管理員已經把某些App指定發送給「100 iPad Group」,此時iPad螢幕上會跳出請使用者確認是否要安裝該App的對話框。

4.輸入單一裝置序號

如果,在你把100台iPad都註冊給Server之後,突然又多了一台新的iPad要加入被Server監管:

在Profile Manager中點選「設備頁面」,點選設備清單下方的「+」,點選「加入暫存區」,輸入該台iPad的名稱和序號。

相同地,到 http://xxxx.server/download下載安裝信任描述檔和登記描述檔。

此時這台iPad也被列入監管,能接收到來自Server發送出的各種描述檔和App。

關鍵是:一定要先把iPad序號加入到Profile Manager中的設備清單中。

Over-The-Air (OTA)無線發佈iOS Enterprise Program App

0.前置作業:

  • 把iOS Enterprise Program的Certificate安裝到要build App的電腦上
  • 產生Enterprise Program的Provisioning File
  • 把App寫好,build出.ipa檔
  • 準備好57×57和512×512的icon圖檔各一個,這是App在下載途中顯示在手機螢幕上用的。
  • 準備好一個網站server,本篇文章假設你的網域名稱叫做www.apple.com

1.事前提醒:

  • 如果你原本有在用iOS Individual Developer Program,在Xcode裡面build App的時候,可能會和Enterprise Program的certificate衝到。可以先把iOS Developer Program的certificate從Keychain裡面輸出並且移除,之後再重新安裝回來。

2準備manifest檔案:

  • 用Xcode寫好manifest檔案,格式可以參考Apple的說明文件
  • 在manifest檔案裡面寫好ipa、icon圖示在網站空間上的存放位置,寫好Provisioning File。
  • 官方文件的manifest範例有提到md5:
    • 這是預防下載安裝App的時候出錯,所以可以設定成下載一部分的同時先做檢查,檢查無誤再下載另外的部份。
    • Apple的說明文件的manifest寫法是假設你把ipa檔案分成兩份,第一份的md5-size設定為10485760,兩份檔案的md5s分別為41fa64bb7a7cae5a46bfb45821ac8bba和51fa64bb7a7cae5a46bfb45821ac8bba。如果你不想要做這樣的設定,可以把有md5字樣的key通通刪除。
  • 在這裡假設把manifest檔案命名為app.plist

3.Manifest檔案範例示意圖:




4.準備下載頁面:

  • 寫一個簡單的html頁面,讓人連到這個頁面來下載App
  • 這裡假設你的頁面命名為http://www.apple.com/download.html
  • 在頁面裡寫上:
  • 注意:上面的連結是要寫manifest的連結,不是ipa的連結

5.流程:

  • 把Provisioning File包到App,Code Sign是iPhone Distribution
  • build成ipa,記得是要選擇Distribute for Enterprise。在這裡假設把ipa檔命名為app.ipa
  • 把download.html上傳到www.apple.com/download.html
  • 把app.ipa、app.plist兩個檔案以及57×57和512×512的icon檔案上傳到你的網站空間,所有檔案的網址都要和你寫在manifest檔案(app.plist)中的一致

6.結語

如此一來,用iPhone連上www.apple.com/download.html這個頁面之後,點選”Install The Application”,就會把你的App下載到iPhone上面了!

簡介Apple iOS Enterprise Program

適用對象:

  • 公司想開發In-House App發送公司內部員工使用
  • 公司必須有Dun & Bradstreet (D-U-N-S) Number鄧白氏編碼
  • 例如:BBC自己開發給BBC記者專用的App

幾項大重點:

  • 申請的等待時間可長可短,目前有聽說有人申請了半年才收到Apple回音。
  • 不能把App上架到Apple App Store
  • Ad-Hoc Distribution的Provisioning File:
    • 把App安裝到iOS裝置上做測試使用。
    • Developer帳號一年只能發送App到至多100台iOS裝置。
  • In-House Distribution的Provisioning File
    • 則沒有iOS裝置數量限制
    • 權限可說是無限大。只要把這個Provisioning File綁在App的.ipa檔案裡面,可以在任何一台iOS裝置上安裝,而不須像Ad Hoc一樣必須事先把裝置登記到Provisioning File中(在http://developer.apple.com中的Devices頁面)。

發佈App方式:

  • 法一:用Ad-Hoc Distribution,把.ipa檔燒進有登記到Provisioning File的iOS裝置中。
  • 法二:把ipa檔案,綁上In-House Distribution的Provisioning File,用email發佈給公司員工,透過iTunes來安裝App。
  • 法三:透過OS X Lion Server的Profile Manager,綁上In-House Distribution的Provisioning File,用推播訊息(Push Notification)無線通知使用者下載安裝。
  • 法四:Over-The Air:綁上In-House Distribution的Provising File,架一個只有讓公司員工可以連上的網頁,把App放在網頁中供人下載安裝。
  • 法五:用第三方MDM(Mobile Device Management) Solution。

控管:

參考資料:

  1. http://developer.apple.com/support/ios/enterprise.html
  2. http://images.apple.com/iphone/business/docs/20110801_In-house_App_Accelerator_Guide.pdf
  3. http://www.apple.com/iphone/business/integration/mdm/
  4. http://developer.appcelerator.com/question/88651/developingdistributing-inhouse-apps
  5. http://www.prnewswire.com/news-releases/distributing-in-house-apps-now-a-snap-for-apple-iphones-88806962.html
  6. http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html
  7. images.apple.com/iphone/business/docs/iPhone_MDM.pdf
  8. 申請D-U-N-S Number:https://eupdate.dnb.com/requestoptions.asp