Windows Phone應用提交攻略(圖文詳解)
每一個Windows Phone開發者都比較清楚,向微軟的Windows Phone應用商店提交審核時,開發者被要求在提交過程中,微軟要對其程序進行驗證。該過程包括檢查元數據和驗證上傳的XAP文件。程序集和數據文件必須打包成XAP文件包。Visual Studio 2010 Express for Windows Phone 可以生成必要的XAP包和清單文件。
XAP軟件包提交注意事項
XAP包文件的最大大小為225MB。也就是說,你不要試圖開發超過225MB以上的大應用。例如大型的3D游戲,將超大容量的視頻等內容打包等。
XAP包必須包含以下內容:
1. 一個名為 WMAppManifest.xml 的有效 Windows Phone 應用程序清單文件。
2. WMAppManifest.xml 文件中的 <Title> 元素必須包含應用程序標題。<Title> 元素不得為空。在提交過程的步驟 2 中輸入 Windows Phone 商城 的“應用程序標題”和顯示在該手機上的標題必須相同。
3. 一個名為 AppManifest.xml 的有效 .NET 應用程序清單文件。
4.AppManifest.xml 文件中指定的程序集文件。
如果你希望顯示在手機“應用”列表上的手機應用小磁貼。游戲必須使用手機應用大磁貼替換手機應用小磁貼。手機應用小磁貼必須為 62 x 62 像素的 PNG 文件。
要在用戶將應用程序固定到手機“開始”屏幕體驗上的快速啟動區域時顯示的手機應用大磁貼。手機應用大磁貼必須為 173 x 173 像素的 PNG 文件。
#p#
應用程序代碼驗證
WP開發者要想順利提交應用,必須使用Windows Phone應用程序平臺 上應用程序目標操作系統版本支持的規定API開發應用程序。
應用程序不得通過 PInvoke 或 COM 互操作調用本機代碼。如果調用,則認證過程會失敗。
應用程序必須使用發布配置而不是調試進行編譯。應用程序不得包含調試符號或輸出。
應用程序不得重新分發 Windows Phone 程序集。但是可以重新分發全景圖、數據透視圖和地圖程序集。
在使用 System.Windows.Controls 命名空間中的任何方法時,應用程序不得調用 Microsoft.Xna.Framework.Game 程序集或 Microsoft.Xna.Framework.Graphics 程序集中的任何API。
#p#
各種應用截圖提交注意事項
1.Windows Phone商城圖解
對于每個應用程序,必須提交一個圖標以將你的應用程序顯示在 Windows Phone 商城 目錄中。此圖標必須密切匹配 XAP 包中提供的圖標。當用戶在購買前瀏覽手機上的應用程序目錄時,會看到此圖標。
切記:不要將透明 PNG 圖像文件用于以下手機應用程序圖標。
◆手機應用小磁貼圖標(必選),用于手機 Windows Phone 商城,大小為 99 x 99 像素。
◆手機應用大磁貼圖標(可選),用于手機 Windows Phone 商城,大小為 173 x 173 像素。
◆PC應用大磁貼圖標(必選),用于手機 Windows Phone 商城,大小為 200 x 200 像素。
◆背景照片(可選),用于背景全景圖,大小為 1000 x 800 像素。
2.應用程序屏幕截圖
對于每個應用程序,必須提供至少一個或最多八個屏幕截圖。用戶在購買之前,會在目錄的詳細信息頁面中看到這些屏幕截圖。
屏幕截圖必須只包含應用程序圖形,不得包含任何模擬器鑲邊、幀速率計數器或調試信息。不能以圖形方式增強屏幕截圖,但添加由微軟指定和預先批準的信息性覆蓋內容除外。
3.應用程序磁貼圖像
手機應用大磁貼和小磁貼圖像必須代表應用程序。
#p#
微軟的應用程序策略
為了保護Windows Phone商城服務和服務的用戶,也為了滿足手機運營商的要求,微軟已為Windows Phone商城中提供分發的應用程序建立了一些策略和條款,并且特別指明:微軟保留根據需要更新這些策略的權利。(你懂的)作為WP應用開發者這些條款都是需要在開發之前就牢記在心的。
1.當從Windows Phone商城中獲取時,應用程序必須功能完善(除了下面允許的其他數據以外)。除非與用戶預先存在帳單關系,否則應用程序可不得要求用戶提供支付信息(在該應用程序體驗內)來激活、解鎖或延長應用程序使用期。
2.應用程序不得出售、鏈接到或推銷手機語音計劃。
3.應用程序不得危害Windows Phone手機或Windows Phone 商城的安全或功能。
4.如果應用程序包含或顯示廣告,則該廣告必須遵守微軟廣告創意接受政策指南,并且該應用程序除了顯示廣告之外,還必須具有鮮明的、實質性的、合法的內容和目的。
5.如果應用程序需要下載其他大型數據包(例如,大于50MB的地圖)才能使該應用程序按上述方式運行,則該應用程序描述必須顯示該數據包的近似大小以及可能收取的額外費用,具體取決于用于獲取數據的連接。
6.如果應用程序允許聊天、收發即時消息或進行其他面對面的通信,而且允許用戶從移動設備中設置或創建自己的帳戶或 ID,則該應用程序必須包含一個機制,用來驗證創建帳戶或ID的用戶至少有13歲。
7.以下要求適用于接收用戶移動設備的位置的應用程序:
(1)應用程序必須使用微軟定位服務API確定位置。
(2)應用程序的隱私策略必須通知用戶如何使用和顯示定位服務API中的位置數據,以及用戶對位置數據使用和共享的控制。位置數據可以由應用程序承載,或直接與應用程序相鏈接。
(3)應用程序必須提供應用程序內設置,允許用戶啟用或禁用對定位服務API中位置的訪問和使用。
(4)如果應用程序將從定位服務API獲取的可用位置數據發布到其他服務或透露給其他人員(包括廣告網絡),則應用程序必須實現一種方法來獲得選擇性同意。要“實現一種獲得‘選擇性’同意的方法”,該應用程序必須:
(a) 首先介紹使用或共享位置信息的方式;
(b) 在按上述方式發布位置信息之前,先獲取用戶的明確權限;
(c) 提供一個機制,通過該機制用戶可以稍后不再發布位置信息。應用程序必須定期提醒用戶或提供可視指示器,表明位置數據已被發送到任何其他服務或個人。
(5)應用程序不得覆蓋、回避或禁止任何與定位服務 API 相關的 Microsoft Toast 通知或提示。
(6)應用程序不得覆蓋或回避用戶在移動設備上禁用定位服務的選項。
(7)必須僅在交付應用程序向用戶提供的位置感知功能時,應用程序才請求位置并保留和使用來自位置服務 API 的位置數據。
(8)應用程序必須采取措施,阻止未經授權的訪問、使用或泄露從定位服務 API 中接收的位置數據。
8.如果應用程序與第三方(例如其他服務或個人)共享用戶的個人信息(包括,但不限于聯系人、照片、電話號碼、短信、瀏覽歷史記錄或合并了用戶信息的唯一手機或用戶 ID),則該應用程序必須實現一種方法以獲取“選擇性”同意。要“實現一種獲得‘選擇性’同意的方法”,該應用程序必須:
提供隱私策略,其中至少必須描述將如何使用或共享個人信息;在按上述方式共享信息之前,請先獲取用戶的明確權限;以及提供一個機制,通過該機制用戶可以稍后不再共享信息。
9.如果應用程序使用微軟推送通知服務,則應用程序和微軟推送通知服務的使用必須遵守以下要求:
(1)應用程序必須首先介紹要提供的通知并獲取用戶的明確許可(選擇性獲取),而且必須提供一個機制,通過該機制用戶可以不接收推送通知。使用微軟推送通知服務提供的所有通知必須與提供給用戶的介紹保持一致,并且必須遵守所有適用的應用程序策略、內容策略和特定應用程序類型的其他要求。
(2)該應用程序及其使用微軟推送通知服務不得過度使用微軟推送通知服務的網絡容量或帶寬,否則過多的推送通知會加重 Windows Phone 或其他微軟設備或服務的負擔(由微軟經過合理的考慮決定),而且不得損害或干擾任何微軟網絡或服務器或任何連接到微軟推送通知服務的第三方服務器或網絡。
(3)微軟推送通知服務不得用于發送包含重要任務的通知,否則可能會影響性命攸關的事情,包括但不僅限于與醫療設備或條件相關的重要通知。微軟特別聲明不會對使用微軟推送通知服務或提供微軟推送通知服務通知將不會被中斷、不會出現錯誤或保證實時出現提供任何保證。
10.應用程序必須具有獨特、實用且合法的內容和用途。應用程序必須提供相關功能,而不是用來啟動網頁。
#p#
特定應用程序類型的其他審核要求
除卻嚴格的提交格式和API函數之外,微軟對于WP應用中一些較為特別的功能,還有一些追加的要求。這些也是開發者應該注意和遵循的。
一、位置感知應用程序
用戶可以從“系統設置”頁面關閉手機上的定位服務。在手機上的定位服務關閉時,位置感知應用程序必須仍然保持響應能力。
建議:顯示用戶友好消息以指示位置數據不可用。
二、推送通知應用程序
微軟推送通知服務會提供一個靈活持久的專用通道,用于將通知從 Web 服務推送到移動設備。但在 UI 或“設置”菜單中,該應用程序必須向用戶提供單獨禁用 Toast 通知的功能。你的應用程序第一次使用 BindToShellToast()()()() 方法時,該應用程序必須要求用戶提供顯式權限才能接收 Toast 通知。
建議:使用“允許 Toast 通知”作為此設置的文本標簽。只需要在第一次使用 BindToShellToast 方法時要求用戶提供權限即可。不需要再次要求用戶提供權限。例如,如果每次加載應用程序時該應用程序都要調用 BindToShellToast,則只需在第一次啟動該應用程序時提示用戶即可。
三、在鎖定屏幕下運行的應用程序
通過設置 ApplicationIdleDetectionMode 屬性,前臺中的應用程序就能夠在鎖定手機屏幕的情況下繼續運行。當應用程序在鎖定屏幕下運行時,消耗的電量可能不受用戶控制,并且可能會無意中增加自身的數據費用。因此,必須最大限度地降低你的應用程序在鎖定屏幕下運行時的用電量。(微軟對于耗電大的應用,會把關很嚴格。)
應用程序在鎖定條件下運行時,微軟強烈建議你使用以下新功能,而不是設置 ApplicationIdleDetectionMode 屬性。
對于鎖屏狀態下微軟要求:
當通知鎖定屏幕時,在鎖定屏幕下運行的所有應用程序均必須停止全部 UI 更新、活動定時器及其他不重要的處理工作。
應用程序在鎖定屏幕下播放音頻時,手機電池的最短使用時間必須大于六小時。
如果手機鎖定時應用程序未播放音頻,則手機屏幕鎖定時該應用程序必須仍然保持空閑。
應用程序在鎖定屏幕下運行時,手機電池的最短使用時間必須大于 120 小時。
四、“音樂 + 視頻”中心應用程序
“音樂 + 視頻”中心的應用程序在手機上提供綜合音樂和視頻體驗,這也是它的主要功能。當應用程序調用 MediaHistory 或 MediaHistoryItem 類時,如果手機上已安裝該應用程序,則會視為“音樂 + 視頻”中心應用程序并將顯示在“附加程序”列表中(在 Windows Phone OS 7.0 中稱為“字幕”列表)。提交過程會檢測該應用程序是否使用這些類,并自動將中心類型更新到 Windows Phone 應用程序清單文件中的“音樂 + 視頻”。
微軟的要求:
應用程序功能必須與視頻和/或音樂媒體播放相關。
當用戶點按的磁貼與“音樂 + 視頻”中心的“歷史記錄”或“正在播放”列表中的應用程序相關聯時,該應用程序必須 (a) 啟動該磁貼中標識的內容的播放體驗,或者 (b) 啟動提供先前播放的媒體內容相關信息的視圖并允許用戶繼續播放。當用戶在“音樂 + 視頻”中心的“歷史記錄”、“正在播放”或新列表中點按內容磁貼時,該應用程序不得啟動主登錄頁面或默認登錄頁面。
當應用程序播放媒體時,該應用程序必須更新“音樂 + 視頻”中心的“歷史記錄”列表。
當媒體被添加到手機或用戶在應用程序中創建“對象”時(例如,創建收音機電臺、創建音樂標記),該應用程序必須更新“音樂 + 視頻”中心的“新建”列表。
當媒體與容器相關聯時,“音樂 + 視頻”中心的“新建”列表和“歷史記錄”列表中的中心磁貼必須表示一個有效的容器(例如相冊、藝術家、播放列表、收音機電臺,而不是各個媒體項目)。
“音樂 + 視頻”中心的中心磁貼不得包含廣告、媒體源或其他未經請求的內容。
五、播放媒體的非“音樂 + 視頻”中心應用程序
應用程序運行時可以在后臺播放媒體,即使在其主要功能與音樂或視頻不相關的情況下也是如此。微軟對播放音樂、音頻或聲音效果的應用程序提出了以下要求:
在程序的初始啟動時,如果應用程序啟動時用戶已在手機上播放音樂,則該應用程序不得通過調用 Microsoft.Xna.Framework.Media.MediaPlayer 類暫停、繼續或停止手機 MediaQueue 中播放的音樂。如果應用程序播放自帶的背景音樂或調整背景音樂的音量,則必須征得用戶同意才能停止播放/調整背景音樂(例如消息對話框或設置菜單)。此提示必須在每次啟動應用程序時出現,除非已為用戶提供選擇設置并且用戶已采用此設置進行選擇。
可配置的功能方面,如果應用程序播放背景音樂,則該應用程序必須向用戶提供背景音樂和背景音樂音量的可配置設置。
在播放時,應用程序無需征得用戶同意即可中斷手機上當前正在播放的音樂,以播放非交互式的全動態視頻或非交互式的音頻段(例如影片剪輯或媒體剪輯)。關閉應用程序后,該應用程序必須繼續播放先前播放的音樂。
特效方面,SoundEffect 類不得用于在應用程序中播放連續的背景音樂曲目。
#p#
心得總結
微軟為開發者制定了許多嚴格的條款,作為WP應用平臺的開發者,對這些內容一定要有深刻的了解,而微軟設下的這道“門”也必有其道理。
我一直認為門是用來打開的,所以才會裝了合葉和把手。你設置了阻礙,而其他人必定會設法跨越。人類就是這樣好奇未知,而忽視顯而易見的真知本性。因此,門的存在是有其必然的道理。
微軟正在高壓打擊的方面一定不要去嘗試跨越。另一方面,這些嚴苛的條款對于最終的用戶是好的。我們可以明顯看到,微軟在盡力保障用戶的電池續航時間,在嚴格的保護用戶敏感的隱私。同時微軟也在極力的保證其Metro UI的設計理念能夠深入的貫徹到每一個應用中。總之,上述的這些條款都是微軟該作的,也是不得不作的。最后預祝各位開發者的應用提交流程一帆風順。
【編輯推薦】