第一次向微軟商店提交 Windows 8 的程序,提交后兩天被打回來了:
認證報告:

你的應用不符合要求 1.2。
需要思考的問題:
• 你的應用是否需要使用用戶帳戶? 如果需要使用,你需要在“測試人員說明”字段輸入一個測試帳戶。
• 用戶能否通過該應用購買商品? 如果可以,你需要提供一種方法以對這些購買行為進行測試。
應用不符合此要求的幾種常見原因:
• 應用的主要用戶方案包含非功能分區或包含占位符(標有“即將推出”、“更多精彩即將呈現”、“尚未提供”等字樣)。
• 應用未能在其聲明支持的所有體系結構上運行。 例如,如果你聲明應用可在任何 CPU 上運行,那么它必須能夠在所有體系結
構(包括 ARM)上運行。
• 應用描述中存在誤導或模糊的內容。
• 應用描述使用的屏幕截圖或語句暗指看似無法執行的功能。
• 應用無法對“播放”和“暫停”鍵盤事件做出響應,導致用戶無法控制音頻播放。
• 應用描述中未明確說明任何硬件或網絡要求。
你的應用不符合要求 4.1。
4.1 你的應用必須符合以下隱私相關要求:
4.1.1 如果你的應用支持連網使用,則它必須包含隱私聲明
如果你的應用從技術角度而言能夠傳輸任何用戶的“個人信息”,則你必須維護一個隱私策略。你必須在你的應用的“描述”頁
中以及在顯示於 Windows“設置”超級按鈕中的應用設置中提供對你的隱私策略的訪問途徑。
使你的應用可以聯網使用的應用功能聲明包括 internetClient、internetClientServer 和 privateNetworkClientServer。
你的隱私策略必須告知用戶你的應用傳輸的個人信息及如何使用、存儲、保護和透露該信息,並且描述用戶對使用和共享其信息
所具有的控制權以及他們訪問其信息的方式,並且隱私策略符合適用的法律和法規。
4.1.2 你的應用必須取得自願加入或等效的同意方可共享個人信息
只有在獲得用戶的自願加入同意之后,你的應用才可以將用戶的個人信息發布給服務或其他人。
選擇加入同意 意味着在你執行了如下操作之后,客戶明確允許你執行所請求的活動:
a) 向客戶描述了信息將如何使用或共享;以及
b) 向客戶提供了日后撤消此權限和選擇退出、同時繼續使用應用的機制。
如果你的應用發布某人的個人信息,但這個人不是客戶,則必須先獲得其明確的書面同意方可發布該個人信息,並且必須允許信
息被共享的個人在任何時間撤回同意。 如果你的應用允許客戶訪問其他人的個人信息,也將適用此要求。
個人信息包括可以合理地用於確定個人身份的所有信息或數據。個人信息的示例包括:通訊錄、照片、電話號碼、音頻和視頻錄
像、位置、短信或其他文本通信、計算機桌面圖像或屏幕截圖以及基於計算機硬件的唯一標識符,在某些情況下還包括合並的瀏
覽歷史。
你的應用不符合要求 5.3。
5.3 你的應用必須不包含鼓勵、促進或宣揚非法活動的內容或功能
我大概瀏覽了一下,有四處需要修改的,下面是 微軟測試人員的回復:
測試人員說明:
.D:: This app appears to be incomplete in its functionality to our reviewers. B:: The app has declared access to
network capabilities and no privacy statement was provided in the Description page. C:: The app has declared
access to network capabilities and no privacy statement was provided in the Windows Settings Charm. D:: To our
reviewers this app contained content that included illegal activity.
主要包含兩個錯誤:
1)在你的應用中,不要出現讓用戶感覺你的應用沒用完成的感覺。
之前在程序的用戶反饋功能里面添加了一句很狗血的話:
"windows 8 XXX 為 Beta 版本, 更加豐富的功能會在后續版本添加上,敬請期待"
估計問題出在這里了,果斷刪掉。
2) 沒用添加隱私聲明。
在 App.xaml.cs 文件中,重寫 OnWindowCreated(WindowCreatedEventArgs args) 方法,然后當用戶
點擊 “超級按鈕” 上的設置時 (Windows 8 的設置操作),添加 “隱私聲明” 的鏈接,點擊后可以跳到網站的 “隱私聲明” 頁面:
protected override void OnWindowCreated(WindowCreatedEventArgs args) { SettingsPane.GetForCurrentView().CommandsRequested += onCommandsRequested; base.OnWindowCreated(args); } void onCommandsRequested(SettingsPane settingsPane, SettingsPaneCommandsRequestedEventArgs eventArgs) { //表示處理在用戶調用上下文菜單命令時引發的事件的回調函數。 UICommandInvokedHandler handler = new UICommandInvokedHandler(onSettingsCommand); //創建表示設置項的設置命令對象。此設置命令可追加到 ApplicationCommands 矢量。 SettingsCommand privacyStatement = new SettingsCommand("privacyStatement", "隱私政策", handler); //追加 SettingsCommand 對象,使這些對象可供 SettingsPane UI 使用。 eventArgs.Request.ApplicationCommands.Add(privacyStatement); } //當命令調用時 async void onSettingsCommand(IUICommand command) { SettingsCommand settingsCommand = (SettingsCommand)command; if (settingsCommand.Id.ToString() == "privacyStatement") { Uri pageUri = new Uri("網站的隱私聲明頁面"); await Windows.System.Launcher.LaunchUriAsync(pageUri); } }
搞定,編譯后,再次提交 Windows8 商店。
運行效果:
當用戶點擊 “隱私政策” 時,打開相應網站的頁面。
當應用程序提交時,在 win8 的商店的提交應用頁面,選擇 “提要” 選項:
該頁面的最下面, 在文本框中同樣填寫該隱私聲明的鏈接:
點擊上面的 問號 ,顯示提示信息:
隱私策略介紹了你如何使用和保護客戶的個人信息。 如果你的應用收集個人信息、連接任何在線服務或包含可能允許用戶在不經意間共享個人信息的其他功能,則需要包含隱私策略。 請在此處輸入隱私策略的 URL。 例如,http://privacy.contoso.com/。
了解詳細信息