2019-11-25-如何在国内发布-UWP-应用-程序员宅基地

title author date CreateTime categories
如何在国内发布 UWP 应用
lindexi
2019-11-25 15:46:42 +0800
2019-02-17 10:51:58 +0800
UWP

在国内的开发者,相信都遇到这样的情况,辛苦开发了几个月的应用,发布到应用商店,发现只有几个下载。不断推广却发现有用户评论垃圾应用下载不了。 在国内开发 UWP 最大的问题就是用户很难通过应用商店下载应用,开发出来的应用无法让用户使用。

我通过了很久的时间,请教了邵猛老周 等大佬,再国外几个小伙伴的指导下,找到了一条路径,通过私有部署的形式发布。

通过私有部署就和通过旁加载的形式差不多,不经过应用商店发布自己的应用,这样能够完全自己控制应用的发布和更新,不需要经过应用商店的审核。额外的,除非微软能做到和苹果一样的对设备的控制和用户量,否则玩应用商店就是让应用商店挂。对于大部分商业团队,如果自己发布的应用被下架超过一天就是一个事故,而微软有着极低的效率同时也有说不清楚原因的下架,就能够让大多数的商业团队放弃走应用商店,包括我现在的团队在内。难以想象被下架一天带来的损失。

但是私有部署最大问题是安装条件相对严格,如果自己的团队能够卖给最终用户硬件设备,那么通过预装的方法能解决大量的问题。私有部署要求设备开启旁加载,同时开启自动更新,对魔改系统支持不好,需要加入证书

在自己的出货的设备上预装自己的 UWP 应用,预装的方法是通过私有部署发布的,通过自己搭建一个 Asp dotnet core 服务器,在服务器上通过给不同的用户不同的appinstaller文件,可以实现让不同的用户下载不同的版本

同时在国内依靠自己搭建的服务器和 CDN 服务器将应用程序包发给用户,本身的网络会比从应用商店下载快十分多。

如果是卖给学校的设备,通过在学校搭建一个内网服务器,可以通过 10M/s 的内网下载速度,基本在后台服务点击发布,只需要 10 分钟就可以将全校的设备的应用更新到最新。

在国内发布 UWP 的姿势是一边在应用商店上架应用,同时做好私有部署,通过私有部署可以控制应用自动更新,具体请看 win10 uwp 发布旁加载自动更新

最好是能联系到设备发布的公司,在他发布的设备上预装自己的应用,如联想和小米这些。如自己公司能够将硬件设备卖给用户是最好的。这样相当于控制了入口,解决了开始的用户安装的问题,这个问题是 UWP 最大的问题,如果都不能安装,那么即使软件做的再好有什么用

至于通过私有部署让用户自己去下载,除非是很熟悉电脑的用户,不然这条路不如让用户去应用商店下载。我在 7 个开发者(非桌面端开发者)的设备上用私有部署方法安装我的应用,仅有一个小伙伴能安装成功,其他的都因为环境问题无法安装

虽然我找到在国内发布 UWP 的一个方法,能解决应用商店下载问题和用户更新问题,但是还是没有方法说服产品经理使用 UWP 开发。

对于很多用户,根本就不关心使用的应用是通过什么技术写的,无论是通过 Electron 或 WPF 或 WinFroms 只要交互体验好,应用流畅,用户就觉得这个应用不错。此时在使用 UWP 是完全没有优势的,在国外有开发者告诉我,用户不会因为 UWP 使用流畅设计就选择 UWP 很多时候通过流畅设计的UI界面没有想象那么好看。甚至使用 UWP 还有很大的缺点就是应用商店的设计,在国内我询问过很多产品的开发者,能通过应用商店下载的用户很少,能成功从应用商店下载应用的用户就更少了。现在的用户大部分的习惯都是复制安装包的形式,没有一个产品能和手机的微信或支付宝一样培养用户的习惯,甚至在国内没有一个 PC 端的应用能在后PC时代带领产品。

另一个问题是 UWP 全平台在 PC 下不是全平台,如果我专注 PC 端的开发,那么我如何兼容 Windows7 的用户,在国内大概有一半以上的用户是使用 Windows7 系统,如果使用 UWP 开发,要么就放弃一半以上的潜在客户,要么就是同时开发 WPF(或其他的技术) 和 UWP 两个应用。但是只要 zz 的团队才会想着同时开两个计算做一个产品,如果我使用 WPF 开发,那么我能支持 Windows 7 和 Windows 10 没有理由需要 UWP 应用。

如果我是专注与跨平台开发,不好意思,现在的 UWP 哪有跨平台,我有充分的理由选择 Web 网页或 Xamarin 开发。

另外 UWP 对系统的耦合非常多,如升级了系统可以发现自己的应用打不开了,如我下方的百度应用,在更新系统从 1803 到 1809 的时候就无法使用

也许剩下的优势是信仰

但是微软的 zz 将手机端砍了,于是 UWP 几乎唯一的优势也就不存在了,这几天我询问了好多位大佬未来的 UWP 的方向是什么?欢迎各位大佬在博客下方评论

最近微软又在准备开发 WinUI 3.0 这个我看起来和玩具一样的不实用的技术

本文的方法只适合预装的方法,如果没有预装可以将 UWP 用 win32 的安装包不通过应用商店给用户,请看加强版在国内分发 UWP 应用正确方式 通过win32安装UWP应用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lindexi_gd/article/details/103258389

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签