Windows Phone 7 App Submit 記事(不定時更新).

在爬文及送件的經驗,將一些當Submit App 時需注意的小事項記錄下來.

 Update at 2012/3/1

 

   在爬文及送件的經驗,將一些當Submit App 時需注意的小事項記錄下來.

 

1. Application Icon

 

   1.1 Icon 分成200x200,173x173,62x62,99x99 ,均使用PNG格式,要透明底,96 DPI

   1.2 62x62 的Icon 是顯示在應用程式列表上,不管其是否為透明,目前的WP7 無法將其顯示為透明底

   1.3 173x173 是顯示在Tile區,透明底有效.

 

2. Before Submiting

 

    2.1 記得以英文描述應用程式的操作流程,方便測試員快速測試你的應用程式功能(Step by Step is good.).

    2.2 當應用程式需要與其他系統連結(例如Remote Control,PC Connection), 測試員可能需要花較多時間建立測試環境(你可以考慮製作Demo Mode).

    2.3 有些Open Source Project裡可能會包含無法通過測試的程式碼,用這些時要特別小心. 

           可以正常通過審核的:

           Json.NET

           RestSharp

           Windows Phone Toolkit         

           SharpZip

    2.4 記得要透過Visual Studio將Build改為Release版(預設為Debug)

    2.5 在不同的Theme下測試(dark,light),確定所有UI皆可見

    2.6 測試員目前常使用Back按鈕來測試你的應用程式,如果你的應用程式有開窗,例如按下按鈕後跳到另一個頁面,或顯示某個對話視窗,

          要記得處理BackKeyPress事件,正確的情況是,當按下Back後,得回到前一個畫面.

    2.7 畫面截圖大小為480x800, 不要截到模擬器的邊框,純畫面,在Debug模式下,模擬器會顯示FPS資料,請關掉Debug,然後擷取無FPS資料的畫面(WP7.1 SDK已經內建截圖功能).

    2.8 當使用到Location Service時,如果只是單次使用,記得要跳對話盒問使用者是否允許.

    2.9 當使用到Location Service,且在App執行期間都會使用,記得要提供關掉的選項.

    2.10 同Location Service, Push Notification Service時也要如同Location Service 般處理.

    (新政策要求, 當使用Location Service時,須提供polices 宣告, 例如: http://www.code6421.com/IEToWP7/Privacy.htm)

    2.11 不要使用會讓人困惑的App Name, like [IE To Windows], IE 可能會讓使用者覺得這個App與IE(部門)有關係,

            所以你可能會收到來自Policy部門的信,要求改名.

    2.12 當使用到網路,例如Web Service/Push Notification時,記得要處理當網路不存在的情況,

            在未處理情況下,於網路不存在時呼叫Web Service,會引發應用程式無預警結束,記得要處理. 

            測試人員會關掉所有網路後測試你的應用程式是否會無預警關閉(或開啟飛航模式).

    2.13 同上,如果要在模擬器上測試無網路狀態,就請將PC上網路斷開,如果是實機,請關閉Wi-Fi及Cellular中的data connection及3G Connection(或開啟飛航模式). 

 3333     22222   222   33                              2.14   當需要透過MediaElement或MediaPlayer,Background Audio Playback播放音樂時,記得先使用MediaPlayer.State與GameHasControl來判斷是否已經有音樂再撥放,State的值會有Pause,Stop,Play,Pause及Play你都得詢問使用者是否停止.

    2.15 加上About頁面或是MessageBox,秀出App的名稱及版本號.

    2.16 如果要在程式中放置其他人的Logo,例如YouTube,DropBox,Google,Microsoft等等,需要取得他人同意,當然,你很難取得這些文件,

             所以就別放了.

          2.16.1 除了程式中盡量不要包含別人的,而你無法取得使用同意的Logo外,沒必要的話,截圖(Screenshot)也不要有, 因為測試員的專業度不同,所以可能會誤判某個功能所顯示的

                     圖示你的程式內容(其實你可能只是想展示圖片顯示的結果).

          2.16.2 連Splash Screen也不能放, 通常跟MS有關的都特別嚴格, 例如SkyDrive就不能放在Splash Screen....(我有想放 Drive In Sky, 過了的話跟你講....)

    2.17 當原始的Back按鍵行為不符合你的需求時,當要離開應用程式,可建立一個Exception物件,繼承自原來的Exception物件,只要在Un-HandleException判斷產生的Exception物件是這個物件,

            不處理即會離開程式.

    2.18 沒有強制規定,當離開程式前須詢問使用者,但保險起見,你還是需要這麼做,通常是透過BackKeyPress事件處理.

    2.19 Runs Under Lock Screen

            基本上,你可以透過設定Idle Mode讓程式執行於Lock Screen下,也就是說即使使用者按下關閉螢幕的按鈕,你的程式仍然可以執行,

            以下是你必須注意的事:

           1. 停止所有UI更新,至少不要那麼明顯.

           2. 停止所有的Timer,至少不要觸發的太頻繁(例如每秒一次)

           3. 可以使用Thread,不過最好把間隔設為5-7秒一次(use sleep..).

           4. 必要時可以提升Thread或是Timer觸發的時間週期,但記得做完事後要調回來.

           5. 提醒使用者,將執行於Lock Screen下,你無法得知電量,所以你只能警告使用者他的裝置可能會因此耗費大量電力.

           6. 透過Obscured事件來調整Thread與Timer的觸發週期,不只是為了過關,也為了減少電力的花費,另外,當解除Lock Screen時,你的程式也必須開始進行UI更新.

           7. 就經驗顯示,Runs Under Lock Screen的審核速度緩慢,大概是在測長時間處於該情況下,程式會不會當機或是耗損太多電力. 

 

3. Certifie Fail.

 

    3.1 當測試不通過驗證時,你會收到Test Result,其中包含了為何測試不通過,還有詳細步驟及修改建議.

    3.2 任何一次測試都是重頭來過,約花費3-5天.

 

4. Ready for signing 

     4.1 應用程式已經通過審核,等待簽署中,你至少還得等半天以上才會收到通知通過審核的信件.

 

5. Ready for Publish

     5.1 看到此狀態,代表著你在Submit時選了手動Publish,所以現在你可以選Action中的Publish to Marketplace.

 

6. Published To Marketplace

    6.1 當測試通過,程式便會上架到Marketplace販賣,一般來說,大約半天至一天後你才能在Marketplace的New App或是搜尋找到你的程式.

 

7. Signing and Encrypt

    7.1 應用程式已經進入排程系統.

 

8. Certified

   8.1 應用程式已經進入測試階段,此時你無法再編修該程式,也無法以同名Upload新版,只能等Test Fail 或是Pass.

 

9. FAQ

 

9.1  我Submit了App,但我發現了有嚴重的Bug,怎麼辦??

      A:  你只能等這個App過關或退件,別擔心,就算過關,使用者也需要大概一天後才download的到你的程式,你可以在過之後,選擇remove from catelog來unpublish.

      PS: 其實盡量不要在最後階段選Auto Publish,這完全沒有必要,等過了再手動Publish就好了.

9.2  100次Free次數是怎麼算的?

      A: 每個帳號有100次的free app額度,超過會收每一個free app 19.95 USD, 計算方式是以Submit次數算,當第一次Submit free app,扣一次,之後這個App不管更新幾次,

          都不會再扣free次數,但! 如果Submit 後被退件,還是會扣一次.

9.3 可以把paid app改成free app,或是反過來嗎?

     A: 不行,只要第一次是submit成paid app,此App就只能調價錢,不能夠變成free,反過來的話,free app可以變成paid app,但目前變過去後就再也變不回free了...

9.4  我可以Submit 一個paid app,然後再把這個paid app Submit成free嗎?

    A: 可以,注意在Test Notes寫這是哪個App的free版,有時因為Tester的疏忽,會把這個App當成山寨版退件.

9.5  使用者反映無法Update?

    A: 這是已知的問題,在paid與trial都會出現,機率高與低而已,特別是trial,目前已確認有此問題,未來聽說會修正.

9.6  Tester如何測試我的App?

    A: 基本上,它們是實機測試,且擁有不同的裝置,通常會測試當Airplane mode on/off,Theme light/dark, 有沒有版本號,Support資訊,

        還有一般性的穩定性及操作測試.

    PS: 通過不代表程式沒Bug.

9.7  Test Result是完整的錯誤報告嗎?

    A: 不一定,基本上測試員並不會因為Bug而停止往下測試,但有些Bug會讓測試員無法繼續下去,此時的Test Result就可能只包含幾個Bug,

        這意味著,不一定照著Test Result修Bug後,就可以過關.

    PS; 測試員也是人,有時也會犯錯,所以不用太苛求.

9.8  Support 信會回嗎?

    A: 會,多半是官方回應,大約是1-2天會收到回應.

9.9 如果我對Support回的信有意見,我要怎麼做?

    A:  直接回信.

9.10  我對於測試報告有意見,該怎麼辦?

    A: 寫信給Support,要求更詳細或是解釋錯誤原因,基本上,大約2-3天會收到回信,

        但不要期望你的App會因為這樣而由Fail轉為Pass,它們通常會要求你再Submit一次,也就是說,這個流程是一貫性作業,過就是過,退就是退,

        要改變結果,就得重來一次.