在之前的Win8筆記中我介紹了如何去寫《Dota寶典》,其實這也是我上傳的一個應用,功能較前面介紹的稍多,不過后續Blog中也會一一介紹到。前兩天《Dota寶典》在經歷四次打回之后終於上傳到了Windows 應用商店,感動得淚流滿面T^T……下面是應用上傳歷史,看時間表你就會發現平均是一天打回來一次。
在這里把碰到的四個問題總結一下。
Windows 8應用認證要求請參考:http://msdn.microsoft.com/zh-CN/library/windows/apps/hh694083.aspx
>> 2012/9/9 22:31 不符合3.6認證要求 || 不符合4.1認證要求
3.6主要說的是App停靠側邊欄時會發生的問題。不符合3.6的原因是我不小心刪了如下代碼的緣故,刪除原因是覺得不美觀,與背景及UI風格不符合
1 <!-- 后退按鈕和頁標題--> 2 <Grid> 3 <Grid.ColumnDefinitions> 4 <ColumnDefinition Width="Auto"/> 5 <ColumnDefinition Width="*"/> 6 </Grid.ColumnDefinitions> 7 <Button x:Name="backButton" Click="GoBack" Visibility="Collapsed" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/> 8 <TextBlock x:Name="pageTitle" Grid.Column="1" Visibility="Collapsed" Text="{StaticResource AppName}" IsHitTestVisible="false" Style="{StaticResource PageHeaderTextStyle}"/> 9 </Grid>
這使得當用戶在停靠App到側邊欄時,從GridView轉向ListView會報出異常,原因是系統無法找到backButton和pageTitle元素。解決方法是我重新把它添加了上去,但是加上了Visibility="Collapsed"語句將它隱藏了。
對於違反4.1認證要求的說明一開始我沒理解,說明如下所述:
4.1. Fail - A privacy statement was not found in the Description page of the App. 4.1. Fail - A privacy Statement was not found in the Windows Settings charm of the App. 3.6. Fail - This app crashed, or was not able to enter a snapped layout.
測試人員說我的《Dota寶典》涉及到用戶隱私問題,但是我並沒有書寫隱私策略,於是打回。我當時很納悶了為什么一個《Dota寶典》這樣的簡單應用也會被提到涉及用戶隱私?於是對於4.1要求我並沒有做出修改,但是在重新提交時給測試人員附上了一份說明,希望能夠對4.1認證要求給出明確一些的解釋。
>> 2012/9/11 2:01 不符合4.1認證要求
第二次被打回來時測試人員真的就給了我詳細的解釋T^T
4.1. Fail - A privacy statement was not found in the Description page of the App. The App uses internet connection, need to provide the privacy policy in metadata. 4.1. Fail - A privacy Statement was not found in the Windows Settings charm of the App. The App uses internet connection, need to provide the privacy policy in the setting charm.
然后我就明白了,原來只要使用到了互聯網連接,App就必須要附上一份隱私說明,為用戶說明你的應用符合不會涉及到用戶的任何隱私問題也不會統計、追蹤用戶的行為等等,需要在應用的設置面板中寫出,並且在Windows 應用市場上使用URL明確標出,這其中還必須對用戶需要使用到的涉及隱私的操作做一份詳細的說明。於是我參考了COCKTAIL FLOW的隱私策略,連夜趕了一份《Dota寶典》的隱私策略,添加到了App的設置面板和博客(即Windows 應用市場需要提供的隱私策略URL)中,《Dota寶典》隱私策略地址:http://www.cnblogs.com/wulinfeng/archive/2012/09/11/2680878.html
提交之后4.1要求通過了,但是新的錯誤又來了
>> 2012/9/12 2:29 不符合3.2認證要求
測試人員說明:
3.2 - This App crashes when user click the items in the main page for the second time.
在主頁面雙擊模塊時會導致應用崩潰,這一點是由於在上一點添加設置面板造成的。之前的代碼:
1 public SplitPage() 2 { 3 this.InitializeComponent(); 4 5 SettingsPane.GetForCurrentView().CommandsRequested += onCommandsRequested; 6 App.isRegistered = true; 7 8 9 windowBounds = Window.Current.Bounds; 10 Window.Current.SizeChanged += OnWindowSizeChanged; 11 }
這里有一個原因就是當用戶快速點擊ItemsPage.xaml中的模塊兩次或兩次以上時,程序會連續執行 SettingsPane.GetForCurrentView().CommandsRequested += onCommandsRequested; 語句導致崩潰。於是我在其上添加了一個if語句就完成了。
1 if (!App.isRegistered) 2 { 3 SettingsPane.GetForCurrentView().CommandsRequested += onCommandsRequested; 4 App.isRegistered = true; 5 }
至此3.2認證通過。
>> 2012/9/14 1:45 不符合1.2認證要求
測試人員說明如下:
1.2 - This app appears to be incomplete in its functionality. The share functionality claimed in Description is not working.
這個地方是由於自己的疏忽,當時在測試Share功能時不小心在最后的時候將加載Share模塊的語句注釋掉了,這導致上傳上去的應用實際上不具備Share功能,但是我在功能說明中卻說自己有Share功能囧。后來反注釋后再加入了一些修改和完善,由於至此已經被打回來四次了,信心大減,不敢輕易地再往上提交,於是自行開始了大約1個小時的暴力測試與修改,最后才提交上去,然后通過了~
總的來說,這次的錯誤基本都是一些簡單、疏忽上的錯誤,下次在開發時應該多注意一下避免因測試帶來的時間上的損失。