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