#Win8# 错误总结
在之前的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个小时的暴力测试与修改,最后才提交上去,然后通过了~
总的来说,这次的错误基本都是一些简单、疏忽上的错误,下次在开发时应该多注意一下避免因测试带来的时间上的损失。