前言

上架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篇的更多相关文章

  1. 大数据新手之路三:安装Kafka

    Ubuntu16.04+Kafka1.0.0 1.下载kafka_2.11-1.0.0.tgz http://kafka.apache.org/downloads 2.解压到/usr/local/ka ...

  2. 在MAUI中使用Masa Blazor

    Masa Blazor是什么 在此之前我们已经介绍过什么是Masa Blazor,以及如何使用Masa Balzor,如果还有不了解Masa Blazor的同学可以看我上篇文章[初识Masa Blaz ...

  3. 使用MASA Blazor开发一个标准的查询表格页

    前言 大家好,我是开源项目 MASA Blazor 主要开发者之一,如果你还不了解MASA Blazor,可以访问我们的 官网 和博客 <初识MASA Blazor> 一探究竟.简单来说, ...

  4. MAUI与Blazor共享一套UI,媲美Flutter,实现Windows、macOS、Android、iOS、Web通用UI

    1. 前言 距离上次发<MAUI初体验:爽>一文已经过去2个月了,本计划是下半年或者明年再研究MAUI的,现在计划提前啦,因为我觉得MAUI Blazor挺有意思的:在Android.iO ...

  5. IOS开始对App Store大扫除:你的APP更新了吗?

    成都亿合科技小编从北京商报了解到,对于开发APP应用的要注意啦,IOS要开始对App Store大扫除:你的APP更新了吗? 日前苹果App Store的开发者们发送邮件,表示将实施一个持续评估应用行 ...

  6. 乘风破浪,.Net Core遇见MAUI(.NET Multi-platform App UI),进击现代化跨设备应用框架

    什么是MAUI https://github.com/dotnet/maui .NET Multi-platform App UI (MAUI) 的前身是Xamarin.Forms(适用于Androi ...

  7. 初识MASA Blazor

    MASA Blazor是一个Blazor的UI组件库.就像大家写前端熟知的Bootstrap, Ant Design一样. MASA Blazor官网地址:https://blazor.masasta ...

  8. MASA Blazor入门这一篇就够了

    1.什么是Blazor? 有什么优势? ASP.NET Core Blazor 简介 Blazor 是一个使用 Blazor 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScr ...

  9. Masa Blazor in Blazor Day

    2022年第一场Blazor中文社区的开发者分享活动,我们的团队也全程参与其中,在议程中,也分享了我们团队的Blazor 管理后台模板,针对于Blazor,先科普一波,避免有些朋友不了解,Blazor ...

  10. Masa Blazor自定义组件封装

    前言 实际项目中总能遇到一个"组件"不是基础组件但是又会频繁复用的情况,在开发MASA Auth时也封装了几个组件.既有简单定义CSS样式和界面封装的组件(GroupBox),也有 ...

随机推荐

  1. 3 分钟利用 FastGPT 和 Laf 将 ChatGPT 接入企业微信

    原文链接:https://forum.laf.run/d/556 FastGPT 是一个超级的 ChatGPT 平台项目,功能非常强大: 集成了 ChatGPT.GPT4 和 Claude 可以使用任 ...

  2. es笔记四之中文分词插件安装与使用

    本文首发于公众号:Hunter后端 原文链接:es笔记四之中文分词插件安装与使用 前面我们介绍的操作及演示都是基于英语单词的分词,但我们大部分使用的肯定都是中文,所以如果需要使用分词的操作肯定也是需要 ...

  3. 计算机网络 vlan

    目录 一.vlan的概念 二.vlan的优势 三.vlan的种类 四.静态vlan的配置 五.trunk的概念和配值 六.实验 一.vlan的概念 在传统的以太网中,所有的用户都是同一个广播域,当数据 ...

  4. 记录一次ScrollViewer控件 经过大量文本数据卡顿的原因

    在 WPF 中,CanContentScroll 是 ScrollViewer 控件的一个附加属性,它控制滚动视图中的内容是否按项或像素来滚动. 当 CanContentScroll 设置为 fals ...

  5. 通过命令行创建ACFS文件系统

    其实使用asmca图形创建ACFS文件系统既简单又不容易出错,但是考虑到某些客户场景不允许我们调取图形,所以本文演示下通过命令行创建ACFS文件系统的步骤. 可以通过MOS搜索到下面这篇文档: ASM ...

  6. Galaxy Project 是一个由 NIH、NSF、Johns Hopkins University 等机构支持的开源生物医学开源项目。Galaxy 作为其中的一个子项目,提供了以英文为主,......

    本文分享自微信公众号 - 生信科技爱好者(bioitee).如有侵权,请联系 support@oschina.cn 删除.本文参与"OSC源创计划",欢迎正在阅读的你也加入,一起分 ...

  7. CVE-2021-41773 apache路径遍历

    来自tryhackeme的漏洞复现 CVE-2021-41773/42013 利用:路径遍历利用将允许服务器公开任意文件 需要启用mod_cgi模块才能获得远程代码执行 2021 年 10 月 5 日 ...

  8. @Inherited元注解的使用

    @Inherited注解标记其他的注解用于指明标记的注解是可以被自动继承的. 注意:此注解只对注解标记的超类有效,对接口是无效的. 示例: 先声明两个用@Inherited标记的注解,@Name和@A ...

  9. Linux系统运维之负载均衡Tengine

    一.介绍 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到 ...

  10. 记一次 .NET 某埋线管理系统 崩溃分析

    一:背景 1. 讲故事 经常有朋友跟我反馈,说看你的文章就像看天书一样,有没有一些简单入手的dump 让我们先找找感觉,哈哈,今天就给大家带来一篇入门级的案例,这里的入门是从 WinDbg 的角度来阐 ...