快速构建Windows 8风格应用37-常见发布注意事项

原文:快速构建Windows 8风格应用37-常见发布注意事项

引言

通常我们发布Windows Store应用失败后,会返回一些错误需要我们去修改。我之前在给学生做培训的时候发现大部分同学应用被打回来,通常由以下几个常见原因:

1,隐私策略;

2,应用图标和文字;

3,本地化;

为了避免这三个原因导致应用发布失败,我们开发应用的时候该怎么去注意并有效避免呢?

一、隐私策略

1,添加隐私策略的场景(摘取MSDN)

  • 应用中收集个人信息或使用他人提供的软件,则需要随应用提供隐私策略或其他许可证条款。
  • 应用中需要从网络获取或写入数据,则需要随应用提供隐私策略或其他许可证条款。

2,添加隐私策略-设置面板

1)打开管理解决方案的NuGet程序包

2)导入Callisto应用程序包;

3)打开应用程序解决方案中App.xaml.cs文件。添加命名空间。

using Windows.UI;
using Windows.UI.ApplicationSettings;
using Callisto.Controls;

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

OnLaunched方法中注册CommandsRequested事件。

SettingsPane.GetForCurrentView().CommandsRequested += App_CommandsRequested;

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }4)“设置面板”中显示隐私策略

void App_CommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
 {
    var privacyPolocy = new SettingsCommand("privacyPolocyId", "隐私策略", (handler) =>
    {
        var settings = new SettingsFlyout();
        //Content属性显示的是应用隐私策略
        settings.Content = "本隐私策略的目的是说明当您访问和使用XX应用" + "\n" + "以及相关服务时我们可能会搜集的资料," + "\n" + " 我们会怎样使用这些资料, 是否会透露给第三方," + "\n" + " 以及您对这些资料的使用及修改方面的选择权利. 本隐私策略适用于XX应用," + "\n" + " 并不适用于其他非XX产品. 您需要仔细阅读产品本身的隐私策略. ";
        settings.HeaderText = "隐私策略";
        settings.HeaderBrush = new SolidColorBrush(Color.FromArgb(255, 0, 77, 96));
        settings.Background = new SolidColorBrush(Color.FromArgb(255, 0, 77, 96));
        settings.IsOpen = true;
     });
     args.Request.ApplicationCommands.Add(privacyPolocy);
}

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

5)显示效果,”启动应用程序”->”超级按钮中选择设置,弹出设置面板”->”点击“隐私策略”,查看隐私策略信息”

3,添加隐私策略-指向网址

1)指向某一网址浏览隐私策略信息

void App_CommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
{
   var privacyPolocy = new SettingsCommand("privacyPolocyId", "隐私策略", (handler) =>
   {
      var IsSeccess = Windows.System.Launcher.LaunchUriAsync(new Uri("http://www.cnblogs.com/wzk89/articles/2718356.html"));
   });
   args.Request.ApplicationCommands.Add(privacyPolocy);
}

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }2)查看运行效果

4,添加隐私策略-应用商店提交

应用商店提交应用程序“提要”部分隐私策略的填写。

5,无需隐私策略的情况

  • 若应用中未从网络获取或读写数据,则应用无需提供隐私策略。
  • 需要将应用清单文件中Capabilities选项卡的Internet项取消勾选。

二、应用图标和文字

需要按照规定的图片分辨率和格式制作自己应用的图标,并将应用中默认生成的图标进行替换。

1,Package.appxmanifest 应用程序UI

  • Logo.png 分辨率:150*150;
  • SmallLogo.png 分辨率:30*30;
  • SplashScreen.png 分辨率:620*300;

2,Package.appxmanifest 打包

  • StoreLogo.png 分辨率:50*50;

需要根据应用程序的功能修改应用程序的默认命名和描述。

1,Package.appxmanifest 应用程序UI

  • 显示名称修改;
  • 说明修改;
  • 短名称修改;

2,Package.appxmanifest 打包

  • 包显示名称修改;

三、本地化

1,页面中本地化:因为我们选择的市场是中国市场,因此所有应用的页面都必须汉化,不可以出现第三方语言比如英文,日文等。

2,截屏中本地化:所有截屏同样道理也不可以出现除中文以外的第三方语言(前提我们选择发布市场是中国)。

注意:关于本地化的审核,在年龄选择12岁以下时尤其严格,所以建议一般情况下都改为12+以上。

时间: 2024-10-29 19:06:52

快速构建Windows 8风格应用37-常见发布注意事项的相关文章

快速构建Windows 8风格应用22-MessageDialog

原文:快速构建Windows 8风格应用22-MessageDialog 本篇博文主要介绍MessageDialog概述.MessageDialog常用属性和方法.如何构建MessageDialog   MessageDialog概述 MessageDialog指的就是对话框. 对话框的命令栏中最多包含三个命令.如果我们指定任何命令,将会有一个默认命令添加到对话框中,目的是关闭对话框. 对话框弹出后界面中所有元素将在对话框下面显示,并且将会阻塞任何触摸事件直到用户进行响应对话框. 另外对话框应该

快速构建Windows 8风格应用19-基础控件II

原文:快速构建Windows 8风格应用19-基础控件II 本篇博文接着上篇博文<快速构建Windows 8风格应用18-基础控件I>介绍开发Windows 8风格应用中常用控件. Slider: Slider控件常见的效果图: 如何在XAML代码中声明Slider控件呢?代码如下: Value属性值表示Slider控件显示的初始值,应用运行状态下我们也可以拖动改变Slider控件的值. C#代码中声明Slider控件.代码可以如下: 可以通过ValueChanged事件获取Slider控件当

快速构建Windows 8风格应用32-构建辅助磁贴

原文:快速构建Windows 8风格应用32-构建辅助磁贴 引言 Windows Phone中,我们开发者可能会开发的一个功能点是将数据列表中某一项"Pin To Start(固定到开始屏幕)",大家都知道这种固定到开始屏幕的磁贴叫做辅助磁贴(也叫二级磁贴),用户可以通过该辅助磁贴启动应用程序并导航到应用程序中某一个页面或某一位置. 其实Windows 8 Store风格应用程序也引入了辅助磁贴的概念,用户在使用Windows 8 Store应用的辅助磁贴和Windows Phone

快速构建Windows 8风格应用17-布局控件

原文:快速构建Windows 8风格应用17-布局控件 本篇博文主要介绍三种常用的布局控件:Canvas.Grid.StackPanel. Panel类是开发Windows 8 Store应用中一个重要类,它在Windows 8 Store应用布局系统中扮演非常重要角色. Panel可以承载多个子元素,面板类可以把子元素存放在栈中.或网格里面.或把子元素停靠在其边缘等. Panel类自身是一个抽象类,下面是Panel类的层次结构: Windows 8 Store应用中包含的三个标准布局控件:Ca

快速构建Windows 8风格应用18-基础控件I

原文:快速构建Windows 8风格应用18-基础控件I 本篇博文主要介绍Windows 8风格应用开发中常用的几种基础控件. ProgressRing: ProgressRing控件常见的效果图: 如何在XAML代码中声明ProgressRing控件呢?代码如下: ProgressRing控件包含IsActive属性,该属性控制ProgressRing控件是否激活可用.默认情况下IsActive属性值为Ture,我们也可以将其值设置为False. 另外我们也可以在C#代码中声明Progress

快速构建Windows 8风格应用13-SearchContract构建

原文:快速构建Windows 8风格应用13-SearchContract构建 本篇博文主要介绍如何在应用中构建SearchContract,相应的原理已经在博文<快速构建Windows 8风格应用12-SearchContract概述及原理>中阐述清楚. 如何在应用中构建SearchContract 这里以常见的构建Search Contract功能为例,具体如下: 设置应用Search权限: 我们在应用中构建SearchContract之前,需要确认应用程序具有相应的Search能力,可以

快速构建Windows 8风格应用31-构建磁贴

原文:快速构建Windows 8风格应用31-构建磁贴 引言 磁贴是吸引用户经常使用应用重要手段之一.我们可将应用程序内较好的内容使用磁贴进行展示. 另外应用程序磁贴是应用程序中的核心部分,而且很可能也是用户最常见到的部分,因此利用动态磁贴来吸引用户经常使用我们的应用程序! 本篇博文主要介绍如何创建基本磁贴(也就是默认磁贴)以及如何使用本地通知更新磁贴. 一.创建基本磁贴 基本磁贴也可以叫做默认磁贴.通常我们点击基本磁贴来启动或者切换应用. 我们可以在应用程序清单文件中设置默认的静态磁贴,并且该

快速构建Windows 8风格应用35-触控输入

原文:快速构建Windows 8风格应用35-触控输入 引用 Windows 8设备通常具有多点触摸屏,用户可以同时使用多个手指来进行不同的输入交互,如点击.拖动或收缩等手势操作.另外Windows 8中将触摸.鼠标和笔/触笔交互是作为指针输入进行接收.处理和管理. 一.手势处理 首先我们来汇总一下Windows 8中常用的手势都有哪些. 1,点击:用一个手指触摸屏幕,然后抬起手指. 2,长按:用一个手指触摸屏幕并保持不动. 3,滑动:用一个或多个手指触摸屏幕并向着同一方向移动. 4,轻扫:用一

快速构建Windows 8风格应用36-商店应用发布流程

原文:快速构建Windows 8风格应用36-商店应用发布流程 引言 在发布应用之前,我们需要注册开发者账号才能够发布应用.我们可以登录https://appdev.microsoft.com/StorePortals/ 该网址进行注册开发者账号,同时我们也可以点击这里来浏览MSDN给到的开发者账号注册的详细步骤.那么注册完成开发者账号后,如何发布Windows Store 应用程序呢? Windows Store App 发布流程 1,使用Visual Studio 2012打开要上传的应用,