快速构建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+以上。
快速构建Windows 8风格应用37-常见发布注意事项的更多相关文章
- 快速构建Windows 8风格应用3-打包发布应用
原文:快速构建Windows 8风格应用3-打包发布应用 本篇博文主要介绍如何打包应用程序,成功后如何部署应用程序,最后介绍如何发布应用程序到应用商店中. 如何打包Windows 8风格应用程序呢? ...
- 快速构建Windows 8风格应用17-布局控件
原文:快速构建Windows 8风格应用17-布局控件 本篇博文主要介绍三种常用的布局控件:Canvas.Grid.StackPanel. Panel类是开发Windows 8 Store应用中一个重 ...
- 快速构建Windows 8风格应用13-SearchContract构建
原文:快速构建Windows 8风格应用13-SearchContract构建 本篇博文主要介绍如何在应用中构建SearchContract,相应的原理已经在博文<快速构建Windows 8风格 ...
- 快速构建Windows 8风格应用22-MessageDialog
原文:快速构建Windows 8风格应用22-MessageDialog 本篇博文主要介绍MessageDialog概述.MessageDialog常用属性和方法.如何构建MessageDialog ...
- 快速构建Windows 8风格应用18-基础控件I
原文:快速构建Windows 8风格应用18-基础控件I 本篇博文主要介绍Windows 8风格应用开发中常用的几种基础控件. ProgressRing: ProgressRing控件常见的效果图: ...
- 快速构建Windows 8风格应用19-基础控件II
原文:快速构建Windows 8风格应用19-基础控件II 本篇博文接着上篇博文<快速构建Windows 8风格应用18-基础控件I>介绍开发Windows 8风格应用中常用控件. Sli ...
- 快速构建Windows 8风格应用31-构建磁贴
原文:快速构建Windows 8风格应用31-构建磁贴 引言 磁贴是吸引用户经常使用应用重要手段之一.我们可将应用程序内较好的内容使用磁贴进行展示. 另外应用程序磁贴是应用程序中的核心部分,而且很可能 ...
- 快速构建Windows 8风格应用32-构建辅助磁贴
原文:快速构建Windows 8风格应用32-构建辅助磁贴 引言 Windows Phone中,我们开发者可能会开发的一个功能点是将数据列表中某一项"Pin To Start(固定到开始屏幕 ...
- 快速构建Windows 8风格应用15-ShareContract构建
原文:快速构建Windows 8风格应用15-ShareContract构建 本篇博文主要介绍共享数据包.如何构建共享源.如何构建共享目标.DataTransferManager类. 共享数据包 Da ...
随机推荐
- JSP简单练习-站点计数器
<%@ page contentType="text/html;charset=gb2312" %> <%@ page import="javax.se ...
- boostrap-非常好用但是容易让人忽略的地方------Font Awesome
font-awesome基本用法 官方代码传送门 font-awesome在bootstrap中的特殊用法(这个才是重点) 要点归纳1(官方) 官方代码传送门 要点归纳2(我的) <a href ...
- Bob大叔观OO原则
Bob大叔观OO原则 上篇总结了经典的23种 设计模式,详细的解读后期会陆续的详细揭开.使用设计模式的根本原因就是为了增强代码的复用性和可维护性.而面向对象是实现代码复用的有效途径,所以这里有必要了解 ...
- leetcode第一刷_Length of Last Word
不是非常明确出题人的意图,事实上这道题用java的话简直是太简单了,用split处理一下,得到全部单词的一个数组,然后求最后一个的长度即可了.我个人认为java里最成功的函数就是split了,我做pr ...
- Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装
原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底 ...
- MoveWindow and SetWindowPos
转自:http://blog.sina.com.cn/s/blog_82c346de0100u7kq.html MoveWindow and SetWindowPos (2011-09-14 15:5 ...
- 我的2011年总结--大明zeroson程序猿一周年总结
花絮:看到csdn举办"我的2011"年度征文活动,我恰好工作也一年多了,上个月写了篇博客,主要是我换工作方面的流水账,这篇我从主观.客观.多方位地谈谈我这一年的变化. ...
- c++界面设计皮肤工具
1. 先进行软件界面设计,确定软件界面美术包装方案 2. 依据软件界面美术设计装方案制作对应的图片,图片格式请參见AUDK的帮助文档或皮肤工具SkinTool 的 Demo 3. 打开皮肤工具 Ski ...
- hdu-4419-Colourful Rectangle-段树区,并寻求
这个问题很有趣的项目,写麻烦.它预计将有写了很长的时间. 好在,我想开了一个比较简单的方法.. . 使用位计算,颜色RGB分别1,2,4,代表. 状态的长度了. #include<stdio.h ...
- C# -- 把json字符串转为对象并读取各属性的值
前面2种方法是不需要声明一个Json字符串的类型即可把Json字符串转换为Dictionary对象 而第3种方法则是声明一个Json字符串的强类型对象,然后反序列化为该对象的数据. List<, ...