WP7應用程式撰寫與App Hub - Marketplace 送件、審核經驗分享

我想大夥應該都不意外,很久沒更新Blog, 但卻看到我在FaceBook或Plurk上還健在,就表示最近真的很忙,忙什麼呢? 不難猜得出來,就是Windows Phone 7應用程式的開發。

可能很多人都已經知道,從10/11號微軟CEO Steve Ballmer親自上陣的Windows Phone 7發表會之後,數款由HTC, Dell, Samsung所生產的Windows Phone手機就要正式上市了,最快可能下個月,你就可以在通路上(或透過管道)買到手機。

當然這個階段的手機是多國語言的英文版,但對於中文的顯示絲毫不受影響,前陣子有幸試用了HTC 7 Mozart 一段時間,整體來說,看過的朋友(我自己就更不用說了)都相當滿意。WM6.5就不提了,與iPhone比較起來,操控感與流暢性毫不遜色。

但由於是英文機,整個操作介面目前當然都是英文的,但安裝了我們自己撰寫的中文應用程式之後,感覺也沒那麼生硬了。(這一篇po文暫且不談開發過程、流程與應用程式背後的意義,有興趣可參考下個月2010/11月號的Run!PC特別報導)

最近會一直很忙,是因為一直到今天,總算勉強算是走過整段軟體開發與送件(到Marketplace)的流程。類似App Store,在WP7上開發應用程式並且讓使用者可以下載使用的過程和過去WP6.5不太相同。

首先,你必須上App Hub用你既有的Windows Live ID(MSN帳號)建立一個App Hub帳號(如果不是學生,那你需要付費USD$99),且建立帳號後需要審核,強烈建議你如果申請個人帳號,請在一開始申請時填的名字就填和你的護照上一樣, 避免後續查驗時發生問題, 流程可參考這裡(中文版),然後你會收到一封來自GeoTrust的要求認證信件,你必須回這封信件且附上該附的資料,例如護照影本之類,通過審核你的帳號才能開通,一旦開通之後才能將你開發的應用程式送上 Marketplace或是在你登錄的實機上測試。

(對,如果你沒有通過身分認證,那你寫的程式就只能在模擬器上跑...,所以不管你要把寫好的程式送上微軟Marketplace或在實機上測試,你的App Hub帳號是很重要的)

接著,就是把你的程式寫完然後在實機上測過,這一部分的經驗是這樣...
1.整體來說,實機的操控流暢度和靈敏度好過模擬器,
2.在實機上的解析度比較好,文字呈現效果比較清晰,所以其實你的程式即便用預設大小的字型,你或許會覺得在模擬器上看怪怪的,但在實機上顯示起來還算不錯。
3.由於CPU不同,模擬器上的程式運行效能普遍好過實機,請注意這跟前述 1. 不衝突,在實機上的測試感覺是,動畫、畫面資料的捲動...等動作都比模擬器流暢,但請注意,如果你的程式耗用大量的CPU資源進行運算(例如我在某個程式中嘗試做了手寫辨識的運算),在模擬器上跑可能很順,但請注意在實機上運行可能會比較慢一些。
4.如果有需要撥放音效,或是多媒體的處理,建議使用XNA,效能比起Silverlight,會好不少。
5.如果你要大量的存取Isolated Storage,請注意也是在模擬器上的效能好過實機,因此建議你必須在實機上測試過。

另外,你覺得程式寫的不錯了,準備送上Marketpace讓使用者下載,請在Submit前(其實最好是開發前)先看過這份文件,這是微軟審核你的應用程式的標準,你送審的程式,會在3-5天左右的時間內回覆,並且提供你一個test results的report(PDF),其中如果有測試失敗的項目,則會告訴你對照上述那份文件的哪一條Validation Guideline有什麼問題,並且建議你該如何做。

如果審核通過,你會收到來自Windows Phone Marketplace 的信件,恭喜你應用程式已經通過審核,且同時間,你也會在App Hub上看到你的帳戶底下該應用程式已經通過查驗...

大約半個工作天,你的程式就會在Marketplace上架,等到在Marketplace上架之後,你的應用程式就可以從WP7手機上下載使用了。

透過Zune軟體也可以同步看到你的應用程式:


你可以在App Hub上Submit最多五個免費的軟體到Marketplace,沒有限制個數的付費軟體,在送件填寫應用程式資料時,會要求你填寫(決定)手機使用者在Marketplace上下載你應用程式時,需要付費的金額,這個金額會扣稅之後進入你的當時填寫的銀行帳戶。

當然,上述的所有應用程式送件(Submit)動作,目前我個人都建議使用英文,包含你在送件時對應用程式的介紹描述,這樣審查時會比較容易通過。後續,我會再詳細分享整個送件的流程和內容,還有撰寫程式的注意事項。

其實整個流程算不複雜,而在這個階段,對於有興趣撰寫WP7應用程式的開發人員,先學習Silverlight以及申請一個App Hub帳號是必須先準備好的作業。

留言

匿名表示…
初學者也可以參考 http://msdn.microsoft.com/zh-tw/windowsphone/gg180751.aspx 的內容,已經更新為最新的APP HUB註冊流程
匿名表示…
請問如果年費到期不續約了,之前已上線販賣的應用軟體還可以繼續販賣嗎?還是會被強迫下架?
David寫道…
會被下架。

請參考
http://create.msdn.com/en-US/home/faq/windows_phone_7#wp7faq22
原文是...
If I do not renew my annual membership, will my applications be removed from the Windows Phone Marketplace?
Your annual paid membership allows you to manage your account with Windows Phone Marketplace, which includes your Developer Dashboard and application sales processing. If you cancel your paid membership, your applications will be removed from Windows Phone Marketplace and you will not have access to the Developer Dashboard.
Kuan-Lin Yu寫道…
你好
我想請問一下,在app hub裡面的payee detail內我該如何設定?

扯到美國稅金還有身份的問題,我實在是不知道該怎麼處理…
David表示…
to kusofist,
http://msdn.microsoft.com/zh-tw/windowsphone/gg180751.aspx
這裡有說明唷...

另外稅金的部分,你要下載 W-8BEN form 填寫後將紙本郵寄到美國微軟。
Kuan-Lin Yu寫道…
喔喔!原來是要寫W8BEN,看到那些我就驚到不知道怎麼做了,感謝您的解答!
Paymin表示…
董老師您好,
我目前是使用免費的VS 2010 Express開發,
這兩天想送審App,
但我不知該如何Build Release的檔案,
我看方案資料夾Bin裡面一直都只有Debug一個資料夾,
可以請教董老師指導我一下該如何編出Release的XAP檔嗎?謝謝您
Robin 李瑞彬寫道…
申請App hub帳號都建議用個人, 若選公司要注意啥?
Unknown寫道…
昨天於台中參加您的演講
請問一下~
註冊開發者帳號
一定需要護照嗎?
David表示…
to Teuton,

不需要,只要是政府核發的證件即可,但請注意和你填寫的原始資料要相同。
Unknown寫道…
董老師:

另外微軟送手機的活動,剛剛看一下只有前三十名,我想等我申請好帳號,應該就額滿了吧

名額真的蠻少的,台灣開發WP7的廠商大概就有快十家了...
Justing寫道…
同意樓上的!!GOOGLE都是開發者一人一支!!WS這樣有點小氣~~~
匿名表示…
董老師您好~
由於5次免費送審用完之後,每次送審就得付19.99元美金。有一次去微軟聽他們研討會時,聽說您有經驗是,如果應用程式送審時,標示有付費,就沒有送審次數的限制,可以一直送審不用錢,這是真的嗎?
David表示…
只有免費的應用程式再送件5次後,每次要被收 650, 如果應用程式上架時選擇的是要付費的(不管費用是否為0.99或更高,也不管是否支援trial),則不需要被收測試費。
Robin 李瑞彬寫道…
W-8 form 上填寫台灣銀行是可以 ?
小煎寫道…
您好, 我想請問
若是台灣區的 帳號(無法登入 zune)


當作 app hub 的帳號
會不會有問題呢?
匿名表示…
董老師您好,請問我若要上架至marketplace,是直接上傳Release Build的unsign xap檔嗎?
還是我要先將自己的xap檔先sign過一次呢?
匿名表示…
董老師您好, 我想請問一下, 若我用學生的身份獲得開發資格, 未來軟體上市, 仍然可以獲利嗎?
David寫道…
可以的,但學生身分只有一年,一年後就得付年費了,否則權益會被自動終止。

這個網誌中的熱門文章

精彩(且驚人)的Semantic Kernel入門範例

使用Semantic Kernel 建立自然語言請假系統

在 LINE Bot 開發中使用Semantic Kernel建立自然語言請假系統

專業的價值...

使用CLI指令快速開啟Windows Terminal