MAUI+Masa Blazor APP 各大商店新手发布指南(三)vivo篇
前言
上架vivo商店,使用厂家的离线推送当然是一个重要原因,与小米不同,vivo的推送服务可以在应用未上架的情况下通过添加测试手机的方式进行测试
准备材料
审核流程基本与小米类似
一、企业认证
1、准备营业执照黑白复印件/扫描件 附加红色公章即可
2、对公打款提供开户行信息,一般5分钟左右就会打款,3次错误机会,全错需要走人工
二、审核资料
1、apk文件
2、应用信息包括:名称、测试账号、图标、简介、截图(截图要求是1080*1920,2MB以内;格式:png、jpg)
截图需要与应用内容保持一致,例如:如果你截图上有5个按钮,那么测试账号登录之后应该也有5个,截图最好与测试账号身份登录后的效果保持一致。
3、ICP备案号:vivo这里需要添加备案号即可,不需要上传备案截图
4、软著电子证书,上传会自动读取pdf文件证书的信息,如果无法读取,可以在软件著作权栏内上传软著截图
5、承诺书:部分行业资质需要,例如网赚类,也比较简单,按照模板填写公司及app信息盖章拍照上传即可。
6、隐私协议:注意点还是不要过度收集信息。如果使用了其他厂家的推送SDK,需要在协议中体现,可以参照如下:
(1)第三方SDK名称:华为推送SDK
使用目的:消息推送
收集的个人信息类型:AAID(应用匿名标识)、Token、Topic订阅关系、消息下发记录、Token申请记录、缓存消息内容。
官网链接:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/privacy-statement-0000001050042021
(2)第三方SDK名称:魅族推送SDK
使用目的:消息推送
收集的个人信息类型:设备信息、设置信息、位置信息
官网链接:https://www.meizu.com/legal.html
(3)第三方SDK名称:OPPO推送SDK
使用目的:消息推送
收集的个人信息类型:设备信息、使用推送服务的应用信息、推送SDK版本号、网络相关信息、消息发送结果、通知栏状态、锁屏状态。
官网链接:https://open.oppomobile.com/wiki/doc#id=10288
(4)第三方SDK名称:VIVO推送SDK
使用目的:消息推送
收集的个人信息类型:设备标识信息、网络状态信息
官网链接:https://dev.vivo.com.cn/documentCenter/doc/3663
(5)第三方SDK名称:小米推送SDK
使用目的:消息推送
收集的个人信息类型:设备标识信息、设备设置信息、应用使用信息
官网链接:https://dev.mi.com/console/doc/detail?pId=1822
审核流程
vivo对机型的最低版本并没有强制限制,如果你的app只支持Android 9以上,那么vivo的测试机型就不会包含9以下的机型
如果你没有明确指定最低版本,那么测试机型会覆盖Android 8-Android 13的机型
审核失败会收到类似通知
很遗憾,您的应用未通过审核
尊敬的开发者:
您好!您上传的应用“xxxx,包名:xxx.xxx.xxx,版本号:1.1.10”审核未通过。审核未通过原因:
经平台检测该应用隐私测试结果不通过,请您查看测试报告并核实修改apk后再进行上传,避免应用被多次打回。
具体测试报告参见以下链接::
测试报告地址:https://swsdl.vivo.com.cn/appstore/upload2/pdfFile/20230531/xxx.pdf
测试不通过的机型和log文件地址如下(30天有效):
机型列表:
机型:V1809A log日志:https://vivopublic.oss-cn-beijing.aliyuncs.com/xt9nIVI6CeWhyzHX/20230531/xxx.zip
机型:vivo X21A log日志:https://vivopublic.oss-cn-beijing.aliyuncs.com/xt9nIVI6CeWhyzHX/20230531/xxx.zip
隐私测试报告:https://swsdl.vivo.com.cn/appstore/cloudtest/pdf/20230531/xxx.pdf
隐私行为数据:https://swsdl.vivo.com.cn/appstore/cloudtest/xlsx/20230531/xxx.xlsx
测试报告
测试报告会包含测试的机型及是否通过的记录
覆盖Android8.1-13部分不通过截图

覆盖Android9-13全部通过截图

如果有崩溃和异常的情况,可以下周异常机型测试过程的log日志

隐私测试报告
测试报告中会显示检测结论和存在的问题数量

具体不通过的原因和测试场景都会列举,并有相关法律条文的依据。
经验:法律条文可以节约时间,避免与风险、法务、产品部门进行无意义的辩论。


我们这里遇到的问题主要是推送SDK初始化在应用启动就开始了,需要改到在用户同意隐私协议之后才能初始化,如果用户没有同意,那么不能初始化相关SDK。
对敏感权限使用会有分析总览

所有涉及的敏感权限需要得到用户的授权,并需要向用户说明使用目的和作用,按照经验这部分不全部体现到在隐私协议里面也能通过审核。
隐私行为数据
这部分内容是隐私测试报告的补充,显示敏感权限调用的时间点和具体的堆栈信息
如果使用了一些第三方的SDK,可能你无法预测SDK的一些行为,例如推送SDK是什么时间读取的设备ID,除了ID之外还读取了什么信息
这时可以参考这份行为数据,进行分析,调整调用时机,或者阻止不必要的调用

其他问题
1、如果你的App有自动更新或者发现新版本的功能,那么你必须保证上传到vivo商店的版本为最新,任何更新的提示会直接导致审核终止。
2、不能有“未完成的功能”,例如某个功能点击显示“暂未开通”或“敬请期待”。
3、隐私协议必须明确注明账号注销的相关信息和方法
4、App名称必须和提交的信息保持一致,开发者名称必须和公司名称保持一致
5、如果你应用内部有广告,那么必须有关闭按钮。
6、应用分类不正确往往不会导致审核失败,而是审核之后会自动帮助修正分类
7、应妥善处理首页/登录页的回退按钮/回退手势
1、对于回退按钮或手势操作间隔在一点时间内的操作,可以理解为用户需要退出应用,可以使用Microsoft.Maui.Controls.Application.Current.Quit()退出应用

public override bool OnKeyDown([GeneratedEnum] Keycode keyCode, KeyEvent e)
{
if (keyCode == Keycode.Back)
{
var modelStack = Microsoft.Maui.Controls.Application.Current.MainPage.Navigation.ModalStack;
if (modelStack.Count == 0)
{
if (isExit)
{
//第2次返回键
Microsoft.Maui.Controls.Application.Current.Quit();
}
else
{
//第一次返回键
isExit = true;
new Android.OS.Handler().PostDelayed(() =>
{
isExit = false;
}, 2000);
Toast.MakeText(this, "再按一次退出朗诗德在线", ToastLength.Long).Show();
return true;
}
}
}
return base.OnKeyDown(keyCode, e);
}
2、也可以使用 MoveTaskToBack 直接做最小化后台处理
//审核要求登录页回退应该关闭或者最小化
public override bool DispatchKeyEvent(KeyEvent e) {
if (e.KeyCode == Keycode.Back) {
if (e.Action == KeyEventActions.Down) {
if (NavigationManagerExtension.UrList.Any()) {
var lastUrl = NavigationManagerExtension.UrList.Last();
var lastIndex = NavigationManagerExtension.UrList.Count - 1;
if (lastUrl.Contains("Login") || lastUrl == "https://0.0.0.0/") {
NavigationManagerExtension.UrList.Clear();
MoveTaskToBack(true);
return false;
}
else {
NavigationManagerExtension.UrList.RemoveAt(lastIndex);
}
}
else {
//最小化
MoveTaskToBack(true);
return false;
}
}
else if (e.Action == KeyEventActions.Up) {
return false;
}
}
return base.DispatchKeyEvent(e);
}
总结
安卓平台的商店审核规则基本都是一致的,但是审核人员的标准和“仔细”程度不尽相同。
vivo也提供了在线咨询客服的功能,国内商店基本都有在线人工客服,这点比App Store方便很多。
这些审核相关的内容我们如果之前没有App的开发经验,可以提前学习一下,对开发和相关设计都是很有帮助的
例如:权限应该在什么场景下申请,应该怎样向用户说明用途,图标、标题、副标题应该怎样设计。了解不同机型的分辨率和对应的安卓版本等也是很重要的。
vivo官方-应用管理常见问题
vivo官方-开放平台应用审核规范
vivo官方-应用审核常见问题
MAUI+Masa Blazor APP 各大商店新手发布指南(三)vivo篇的更多相关文章
- 大数据新手之路三:安装Kafka
Ubuntu16.04+Kafka1.0.0 1.下载kafka_2.11-1.0.0.tgz http://kafka.apache.org/downloads 2.解压到/usr/local/ka ...
- 在MAUI中使用Masa Blazor
Masa Blazor是什么 在此之前我们已经介绍过什么是Masa Blazor,以及如何使用Masa Balzor,如果还有不了解Masa Blazor的同学可以看我上篇文章[初识Masa Blaz ...
- 使用MASA Blazor开发一个标准的查询表格页
前言 大家好,我是开源项目 MASA Blazor 主要开发者之一,如果你还不了解MASA Blazor,可以访问我们的 官网 和博客 <初识MASA Blazor> 一探究竟.简单来说, ...
- MAUI与Blazor共享一套UI,媲美Flutter,实现Windows、macOS、Android、iOS、Web通用UI
1. 前言 距离上次发<MAUI初体验:爽>一文已经过去2个月了,本计划是下半年或者明年再研究MAUI的,现在计划提前啦,因为我觉得MAUI Blazor挺有意思的:在Android.iO ...
- IOS开始对App Store大扫除:你的APP更新了吗?
成都亿合科技小编从北京商报了解到,对于开发APP应用的要注意啦,IOS要开始对App Store大扫除:你的APP更新了吗? 日前苹果App Store的开发者们发送邮件,表示将实施一个持续评估应用行 ...
- 乘风破浪,.Net Core遇见MAUI(.NET Multi-platform App UI),进击现代化跨设备应用框架
什么是MAUI https://github.com/dotnet/maui .NET Multi-platform App UI (MAUI) 的前身是Xamarin.Forms(适用于Androi ...
- 初识MASA Blazor
MASA Blazor是一个Blazor的UI组件库.就像大家写前端熟知的Bootstrap, Ant Design一样. MASA Blazor官网地址:https://blazor.masasta ...
- MASA Blazor入门这一篇就够了
1.什么是Blazor? 有什么优势? ASP.NET Core Blazor 简介 Blazor 是一个使用 Blazor 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScr ...
- Masa Blazor in Blazor Day
2022年第一场Blazor中文社区的开发者分享活动,我们的团队也全程参与其中,在议程中,也分享了我们团队的Blazor 管理后台模板,针对于Blazor,先科普一波,避免有些朋友不了解,Blazor ...
- Masa Blazor自定义组件封装
前言 实际项目中总能遇到一个"组件"不是基础组件但是又会频繁复用的情况,在开发MASA Auth时也封装了几个组件.既有简单定义CSS样式和界面封装的组件(GroupBox),也有 ...
随机推荐
- Vue3.3 的新功能的一些体验
Vue3 在大版本 3.3 里面推出来了一些新功能(主要是语法糖),网上有各种文章,但是看起来似乎是一样的. 我觉得吧,有新特性了,不能光看,还要动手尝试一下. DefineOptions 宏定义 先 ...
- javascript中的错误类型
javascript 中的错误类型: SyntaxError TypeError ReferenceError RangeError URLError Error SyntaxError 语法错误 / ...
- Python潮流周刊#3:PyPI 的安全问题
你好,我是豌豆花下猫.这里记录每周值得分享的 Python 及通用技术内容,部分为英文,已在小标题注明.(标题取自其中一则分享,不代表全部内容都是该主题,特此声明.) 文章&教程 1.掌握Py ...
- 《数据结构》之栈和堆结构及JVM简析
导言: 在数据结构中,我们第一了解到了栈或堆栈,它的结构特点是什么呢?先进后出,它的特点有什么用呢?我们在哪里可以使用到栈结构,栈结构那么简单,使用这么久了为什么不用其它结构替代? 一.程序在内存中的 ...
- 使用Mybatis-Plus问题解答
我们使用一个新的框架难免会遇到各种问题,当然使用这款国产的优秀的Mybatis-Plus框架也不例外,下面我就给大家列举一下使用Mybatis-Plus可能遇到的一些问题,并做一下一一的解答. 1:如 ...
- ChatGPT玩法(三):AI玩转PPT
前言 在线免费体验ChatGpt:https://www.topgpt.one 作为许多职场人士的必备工具,PPT制作一直是一个琐碎而费时的任务.但最近我发现了一个非常有用的工具网站,它可以通过人工智 ...
- 一分钟学一个 Linux 命令 - mv 和 cp
前言 大家好,我是god23bin.欢迎来到<一分钟学一个 Linux 命令>系列,今天需要你花两分钟时间来学习下,因为今天要讲的是两个命令,mv 和 cp 命令. mv 什么是 mv 命 ...
- 我借助 AI 神器,快速学习《阿里的 Java 开发手册》,比量子力学还夸张
我平时经常要看 PDF,但是我看书贼慢,一个 PDF 差不多几十上百页,看一遍要花挺长时间. 我记性还不好,看完之后,过些日子就记不清 PDF 是讲什么的了.为了找到 PDF 里的某些信息,又得再花时 ...
- 【Ubuntu22.04】配置静态IP地址和FTP服务
## 一.配置静态IP 1. 使用命令`ip a`查看当前网卡名称,Ubuntu22.04默认网卡为ens33: ![](https://img2023.cnblogs.com/blog/308121 ...
- windows服务启动时提示找不到指定路径的问题
我是自己写了一个windows服务,并且在之前一直运行良好,上周四晚上之后,竟然莫名其妙的停止了,我登上远程服务器,才发现,该服务已经停止,当我手动打开该服务时,提示我如下错误,找不到指定路径:. 一 ...