身為一個程式設計者,寫過那麼多支程式都是為了應付老闆或客戶需求,難免希望有一支程式作品可以代表自己,讓大家因為使用這支程式而認識你,看到你的價值。而 AppStore 提供了這個平台,幾十萬支程式就在這平台上流傳著,只要有心成為一員,你也可以在這平台上發表自己的程式,供全世界的人下載使用,甚至付費,賺錢多一筆額外收入。

就某些程度來說,AppStore 平台的確滿足許多程式設計師多年來的夢想,對於有心想嘗試人來說,我個人有一句體驗深刻的話,那就是:

「有 Hello World,就有 Hello AppStore」

IMG_1982.PNG

 

從Hello World 到Hello AppStore

從 Hello World到 Hello AppStore,回首來時路,才發覺這條路並不太難,只是一切得從無到有,在完全得不到任何外援的條件下,在身邊都沒人嘗試或願意分享相關經驗的環境下,這條 Hello AppStore 的路還是走得非常辛苦。

很多事情我的感受非常深刻,我漸漸可以理解為何願意分享,願意協助的人似乎越來越少。我想也不用多說什麼,總之我還是做到了。

我知道有些人對我這趟的 AppStore 之旅很感興趣,所以我也簡單的寫一下這心路歷程。或許說不上參考價值,就當自己的一段回憶好了。

嘗試 iPhone 程式的開發,最低的投資限度為:

1.一台 MAC 電腦

2. Object-C 語言。

如果又以 AppStore 為目標,則要再加上一項:每年 99 美金的 IDP 憑證,以及 MAC 要 10.6.x 版以後才行。

需不需要 iPhone / iPad?可以說不需要。不過強烈建議最好要有,因為模擬器無法模擬加速器 / GPS / 相機 / 藍芽,除非你有把握寫出沒問題的程式。

看起來就這麼簡單。其實除了學寫 Object-C 程式語言比較恐怖之外,其他一點都不難,有點小錢買 MAC 跟 iPhone,又有貴人教學相助,就可以幫你搞定其他事情,只要專心寫好自己的程式準備上架就夠了。

如果沒錢買 MAC 也沒貴人相助,那麼你必須具備以下的條件...

你要有強烈的學習慾望,和一顆超級強壯的心臟,足以讓你排除萬難。

其實就這麼簡單,如此而已...


 

第一支Hello World的誕生

所以,我們先談如何寫出第一支 Hello World 程式該具備的事情,之後再來談上架 AppStore。

首先,要先有一台 MAC 電腦,如果沒錢買 10.6.x 的 MAC 電腦,只要你要有強烈的學習慾望,以及一顆超級強壯的心臟,足以讓你排除萬難,也還是有辦法生出來。至於怎麼來的,我不能告訴你去偷去搶

再來,上 Apple.com 去註冊 ADC Member,這是免費的,就可以下載最新的 SDK,然後把它裝在 10.6.x 的 MAC 電腦上。目前最新的 SDK 還限定在 10.6.4 以上,所以要先把 MAC 升級到最新的 10.6.4 才能繼續安裝 SDK 。裝好之後會有 XCode 跟 iPhone 的模擬器,就可以開始寫 iPhone 的第一支 Hello World 程式了,成果可以在模擬器上面檢視。

第一支 Hello World 程式,環境要求也只是這麼簡單。

如果之前寫過微軟的 Visual Studio 或是其他類似相關的程式語言,要來學習寫 iPhone 程式,最好先了解以下的幾件事:

1.C 語言的基礎 ==> 高中或大學的計算機概論多少都會教一點,只要不去 Copy 作業,自己有動手寫過 C 語言程式,懂得最基本的 if, else, while, for 迴圈...這些基本的應該就夠了。

2.了解 iPhone 程式架構的 MVC 結構,以及 Delegate 的概念跟用法。這個很難解釋,有點像在玩角色扮演遊戲,需要時間跟強烈的學習心態,它跟以往你學過的任何視窗程式都不一樣。

3.熟悉 Object-C 那種怪異的語言結構,需要時間跟強烈的學習心態。其實這就像是國語跟台語的差別,耳濡目染之後多少也會懂,要學好的話得多花點心思跟時間。

4.熟悉 XCode / Interface Builder 的開發環境。其實這就像學開車一樣,懂得坐進駕駛座之後,學習方向盤,油門/煞車/離合器,排檔桿...的作用。

以上寫的看似簡單,但實際上產出第一支 Hello World 程式卻沒有想像中容易。參考很多範例的做法,照著做都 OK,但自己打造就掛了,程式一 Run 就當機給你看,幾乎每個學習者都會遇到這種情況,尤其之前愈是習慣微軟視窗的開發環境,這種情況愈是無法避免。而上面四點還沒成立的時候,要生出第一支 Hello 還算小有難度,反過來說,生出 Hello World 之後也會跟著對這四點有基礎認識。

如果還是完全摸不著頭緒時,很簡單,只要你有一顆超級強壯的心臟,足以讓你排除萬難,上 youtube 搜尋 iphone hello world,就會跑出一堆教學影片,照著影片跟著做,弄懂這四點只是時間上的問題。

一旦生出 Hello World 之後,我相信 Hello AppStore 就在不遠處了。你會發現寫 iPhone 的程式真的很有趣,很多動畫函數全都已經 Ready 了,你可以用原本看起來很怪異的 Object-C 語法,有趣的操縱它們,讓你的程式畫面充滿生動的動畫效果。 iPhone 程式語法很有創意,尤其是當你已經懂了基本時,再參考 youtube 上的進階教學或是 Google 搜到的討論,會發現這些 Object-C 程式中隱藏的新鮮玩意兒,是以往寫過的程式語法中體會不到的樂趣。

寫出程式之後,我們會想把程式丟到手機中 Run 看看,或是想把程式丟到 AppStore 上面賣,這兩個動作就需要購買 IDP 憑證才能做到。

如果你只是想把程式丟到自己的手機而已,不想花錢購買 IDP,只要你有一顆超級強壯的心臟,足以讓你排除萬難,先把 iPhone 給 JB,再對 XCode 動點手腳,總之這也有方法,但我還是不能告訴你去偷去搶。

 


購買 IDP(iOS Developer Program)

購買 IDP 不是什麼難事,不過對台灣之前申請的開發者來說,似乎是吃盡了苦頭,最主要的原因竟然出自 Apple 的購買 IDP 流程沒有完美整合它們的訂購系統。好在我先前爬過了文,一天就開通搞定了。所以把我的做法跟重點簡單說一遍。

要申請 Apple 的相關服務時,必須先申請一組 Apple ID,如同申請一組奇摩帳號就可使用奇摩拍賣/無名小站/奇摩信箱/即時通...是一樣的意思。在 Apple 網站上的很多地方,都可以依照網頁上的指示連線到申請 Apple ID 的頁面。如果是申請 IDP 而使用的 Apple ID,最好依照以下步驟來準備。

1.準備好自己的姓名,住址,電話,信用卡,以及銀行帳戶資料(用來收錢的,因為上 AppStore 賣程式的錢最後要匯到你使用的這個帳戶),這些資料全都要標準英文。以及最重要的,準備一個保證收得到信且不會被廣告信淹沒的 E-Mail 帳號,拿這E-Mail帳號來當 Apple ID 的登入帳號,未來所有的訊息聯絡都會透過這個E-Mail帳號。

2.用第1.點的資料申請一組專用的 Apple ID(申請網址),而這組 Apple ID 是專用來應付IDP的相關服務(建議與買 App 的 iTunes 帳號分開,別用同一組)。這組的 Apple ID 要很謹慎的填寫正確,因為美商蘋果會對這個 Apple ID 做更多且更嚴謹的身分驗證,設法確認這個 Apple ID 的真實身分,並非只是個空殼假 ID,不然將來一有錯誤時,軟體很可能無法上架,甚至還可能會收不到錢。

3.補完這組 Apple ID 的資料,填上正確的戶籍地址,姓名....都要用英文。須注意的是,一旦地址有問題時,會影響到後續的身分驗證,甚至將來要收錢都可能出現問題(所以我的五碼達人在此時就派得上用場了)

4.用這組 Apple ID 註冊 ADC(Apple Developer Center) member。登入 ADC 之後,如果這組 Apple ID 沒有註冊啟用 IDP,ADC 的頁面會在很多地方貼心叮嚀的提示您加入IDP,所以很容易看得到的提示,像這樣

5.申請 IDP 時就會問東問西了,小心仔細填妥之後就會要你付款,然後畫面會回到台灣蘋果的訂購網頁,確認一切沒問題之後就可以開心的下訂,下訂之後會產生一張訂單要你刷卡付費。這時候把訂單號碼記下來,後面會用得到。

刷卡付費完成不代表 IDP 生效,還需要經過驗證啟動的程序才算整個完成。付費完大約過一段時間之後(幾個小時),IDP 的訂購系統收到付款通知,會主動發出一封啟動 IDP 連結的郵件到 Apple ID 的信箱,這連結是用來驗證訂單付款人和申請IDP是不是同一個人,也就是我前面提到的,Apple透過這個手段來驗證IDP帳號的真實身份。

正常的情況下,啟動郵件的連結按下去,IDP 就生效了。不過台灣的申請者沒有這麼好運,點下去之後出現驗證失敗的機率很高。

因為台灣蘋果的訂單網頁有些欄位是預設中文(縣市)不能改。IDP 的啟動驗證連結會去檢查訂單,但是 IDP 系統不認識訂單的中文欄位,於是跳出驗證失敗的訊息,跟一個回報問題的連結頁面,其他說明都沒有。很多人於是傻傻的在網頁填了問題網頁卻等了多天等不到回應,不然就是又看到說明寫著要「傳真」身分證或護照影本到國外的傳真號碼,國際傳真過去之後竟然說沒收到,林林總總,總之拖了很多天才會處理好。據說有人花了五十幾天才處理到好。

解決的方式也很簡單,準備好上述的資料跟訂單號碼,然後打給台灣蘋果的 0800-020-021 免費客服專線,按2轉接訂單處理,輸入完訂單號碼之後,按指示請專人接聽,用親切的中文直接跟他說要轉接 ADC 處理驗證失效的問題,他會幫你轉到香港 ADC,接著再用親切的中文跟香港 ADC 轉述問題,仔細聽他怎麼說(大都是廣東腔國語),通常不用五分鐘就搞定了。

如果沒有意外,幾分鐘之後會再寄一封啟用 IDP 驗證連結的郵件,這次點下去應該就會生效了。網路上有的人是被要求 E-Mail 寄護照影本,我猜可能是訂單全部用中文而申請IDP全部用英文,導致內容差太多,反正看怎麼做就怎麼做,都是中文溝通所以也不會有其他問題了,這通電話打下去通常一天內就能搞定。

 


 

邁向 AppStore:上架(Ready for sale)

前面提到,如果要將程式丟進實體手機內執行,或是上架到 AppStore 上發表,得購買 IDP 才能辦到。而 IDP 和這兩個動作之間的關係,則是透過電子憑證來達到這個機制。購買IDP 且開通啟用之後,才可以取得所需的憑證檔案,而編譯過的程式必須經過這些憑證進行簽署,才能讓程式在實體手機上執行,或是在 AppStore 上面發表。

IDP 啟用之後,登入 ADC member 畫面就不一樣了,會多出幾個東西出來。我把有關AppStore的重點挑出來說明,只有三個:


1.iOS Provisioning Portal:申請開發憑證/發布憑證/上架軟體ID/其他....

2.iTunes Connect:軟體上架/銷售/iAd/報表...相關。

3.Contracts, Tax, & Banking Information:銀行帳戶/稅表合約---這個是登入 iTunes Connect 之後才看得到的項目。要在 AppStore 賺錢當然得填上自己的銀行帳號跟符合美國稅法的稅務資料,稅務合約是用來說明跟證明你跟美國沒有任何關係,請他們不要扣你的稅。稅務合約中有兩個重要的項目得用標準英文地址,且一旦確定存檔就不能再更改,所以我的五碼達人得再度上場。有問題或是沒有填妥,Apple 不會發錢,通過審核的付費軟體也不會上架。

整個上架的大致上的動作分成兩大步驟,第一個是申請憑證來簽署編譯準備上架的程式,第二是發布並上傳編譯且簽署過的程式檔。

先到第一項申請相關的憑證(開發憑證/發布憑證),申請完下載安裝在自己的 MAC 電腦上,接著就可以在 XCode 編譯時選擇需要的憑證檔進行簽署了。要上架的話,得用發布憑證 (Distribution Certificate) 來編譯,編譯出來的檔案就是準備上架的二進位編譯檔。這些動作在登入 iOS Provisioning Portal 之後的首頁有提供教學,照著做就行了。

要上架的話,得先登入到 iTunes Connect,到首頁的 Manage Your Applications 去新增要發布的應用程式 ID,填一些欄位(如軟體描述),選好相關的問題(如這個軟體是不是18禁)之後會出現 Ready for Upload 的訊息,這時候就可以用 XCode 的 Organizer 程式來上傳剛剛提到用發布憑證編譯的的二進位編譯檔,也就是我們寫好準備上架的程式了。

上傳的軟體還必須經過 Apple 的審查(Review),如果前面的步驟沒有問題時,上傳的軟體沒多久就會停在 Wait for review,這狀態可能會等上好幾天,網路上的說法是一到七天都有。等到 In Review 就表示已經有人開始要審核了,之後就得看情況了。新的軟體 In Review 可能還要再等上兩三天,如果只是軟體更新,In Review 沒問題的話大概幾個小時就過了(我猜是看會不會當機之類的檢查而已)。通過之後就會顯示綠色的 Ready for Sale,表示可以或已經上架了。如果是被退件 (Rejected),除了會顯示紅燈之外,也會收到 E-Mail通知說明退件的理由。

退件的理由通常只會說明一項,修改完再上傳送審又得跑一次流程,又得等上好幾天了。如果又因為別的理由再度退件,日後又得再重跑一次流程送審。所以每次送審的時候最好再全部檢查一遍。我個人很幸運沒有被退過,依照網路上的說法,常見的退件理由如下:

1.會當機,或明顯的 BUG 被抓包....

2.功能跟軟體描述不符

3.軟體名稱不符規定:例如使用 iPhone 開頭,或是名稱跟已上架的某軟體相同,或是太相近且容易混淆。

4.關鍵字與軟體功能無關...之前有人寫了個遊戲,關鍵字寫台灣,結果被退件...原因是遊戲跟台灣沒有直接關聯。

5.使用系統提供的圖示按鈕卻沒有照圖示功能運作。

例如五碼達人的首頁用了一個放大鏡的圖示,內定是「搜尋」的功能,按下去要有搜尋結果產生。

功能.png

之前有人把他拿來做產生亂數的動作,結果被退件...搜尋到很多人都是因為誤用系統圖示而被退件,所以保險一點就是用文字,不然就是自己畫圖示。

6.沒有實質功能的按鈕不能顯示。例如 lite 免費版做一個按鈕只會顯示要用戶付費購買的提示。

7.按下去沒有任何提示就離開程式的按鈕。例如直接呼叫內建的地圖,直接連到 AppStore 的頁面,或開啟 Safari 瀏覽器,一定要先提示用戶會離開程式,用戶選擇是之後才執行。

8.使用地圖時 Google 標題被常態蓋掉。有人因為這邊放廣告把 Google 字樣遮住而退件。

9.對應環境需求必須有錯誤處理。例如需使用網路連線時,網路不通或連不上指定網站要提示使用者。需使用GPS時,無法啟動GPS也要有提示。啟用廣告時如果抓不到廣告,需將廣告隱藏,不能讓畫面空出一片空白廣告。

10.軟體啟動頁面用了iPhone桌面截圖(必退)

11.軟體模擬 iPhone 故障(必退)

12.使用非公開的 API。幾乎必退。

13.有侵權嫌疑,尤其是軟體內要盡量避免與 Apple 商標和 Apple 產品名稱有關的內容。例如國外有人把照片的外框做成像寶麗來(立可拍)的底片就被退了。

14.不良的隱喻與暗示:有人不小心拿了一張大麻葉當底圖,就被退件了。美女寫真、純賣養眼圖的 App 也很可能被退。

15.iPad應用軟體必須支援四個方向的啓動(如果 Apple 認為你的程式必須支援而沒有支援的話,會退件)。

arrow
arrow
    全站熱搜

    benjenq 發表在 痞客邦 留言(5) 人氣()