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部分不通过截图
1
覆盖Android9-13全部通过截图
1

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

隐私测试报告

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

1

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

1
1

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

对敏感权限使用会有分析总览

1

所有涉及的敏感权限需要得到用户的授权,并需要向用户说明使用目的和作用,按照经验这部分不全部体现到在隐私协议里面也能通过审核。

隐私行为数据

这部分内容是隐私测试报告的补充,显示敏感权限调用的时间点和具体的堆栈信息
如果使用了一些第三方的SDK,可能你无法预测SDK的一些行为,例如推送SDK是什么时间读取的设备ID,除了ID之外还读取了什么信息
这时可以参考这份行为数据,进行分析,调整调用时机,或者阻止不必要的调用

1

其他问题

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

1、对于回退按钮或手势操作间隔在一点时间内的操作,可以理解为用户需要退出应用,可以使用**Microsoft.Maui.Controls.Application.Current.Quit()**退出应用

1

    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官方-应用审核常见问题

相关推荐

MASA MAUI 预览Office文件

在线预览Office文件Api,拼接自己的office文件地址参数后在浏览器中访问即可达到预览效果。接下来我们按照这个思路在Maui中实现这个效果。本文主要介绍了如何在Maui下预览Office文件,并分享开发过程正踩过的坑以及对应的解决方案。希望能帮助到遇到同样需求问题的朋友。

MASAteam的博客 552

MASA MAUI iOS 文件下载与断点续传

是 iOS 中用于处理网络请求和数据下载的核心类之一。它提供了强大的功能,使应用程序能够与远程服务器通信、下载文件、上传数据等。本文我们借助中的来创建下载任务。下载任务直接将服务器的响应数据写入临时文件,在数据从服务器到达时为应用提供进度更新。在后台会话中使用下载任务时,即使应用处于挂起状态或未运行,这些下载也会继续。可以暂停(取消)下载任务,稍后再恢复它们(需要服务端支持)还可以恢复由于网络连接问题而失败的下载。

MASAteam的博客 774

MAUI+Masa Blazor APP 各大商店新手发布指南(二)小米篇

先说一下我们上架厂家应用商店的原因:除了方便用户下载之外,需要厂家的离线推送和微信内容分享等都需要上架应用商店(微信分享不上架有调用次数限制)。如果你的App需要在国内使用离线推送功能,也就是App不启动的场景下接收消息推送,那么你需要集成厂家的SDK,如果你使用了第三方推送,例如 极光、个推。

MASAteam的博客 611

MAUI+Masa Blazor APP 各大商店新手发布指南(一)App Store篇

作为新手App开发,iOS由于众所周知的原因,必须通过App Store下载安装App,所以通过App Store的审核是必须的(当然如果您有299美元一年的企业版证书可以走内部分发渠道的场景除外)。以下是我们首次使用MAUI+MASA Blazor开发App并上传App Store中遇到的审核意见和我们的解决方法,供MAUI新手开发参考。首先强调:1、App Store不需要软著。2、发布App Store需要确认证书为个人或者公司,企业证书是不能发布App Store的。

MASAteam的博客 841

MAUI+MASA Blazor 兼容性测试报告及分析

由于越来越多的Net开发者开始使用MAUI+Blazor的框架来开发移动端应用,我们决定对MASA Blazor组件在MAUI框架进行兼容性测试,以确保其在移动端App中的兼容性和稳定性。通过这次测试,我们的目标是验证MASA Blazor组件在MAUI框架下的表现,识别任何潜在的问题和缺陷,并提供改进和优化建议,以确保用户可以在各种移动设备上无缝使用该组件。MASA Blazor作为Blazor家庭中广受欢迎的组件,无论在PC端还是移动端都可以提供良好的交互与性能,并提供了大量移动端专用组件。

MASAteam的博客 1376

2023年北京.NET线下技术沙龙圆满落幕!

第三位嘉宾是代强老师,他是云联网信技术负责人、.NET开发者,从业五年,微信公众号【美男子玩编程】维护者之一,博客园【关关长语】HandyControl开源项目文档贡献者之一,多能力开发者。接下来是李国梁老师,他是公众号、博客园【yi念之间】的作者,拥有近10年的.NET开发经验,主导过多个大型TOB平台从0到1的架构设计,热衷于开源项目贡献。他的分享主题是“.NET在工业软件的应用实践”,通过实际案例和技术方案,让听众们深入了解了.NET在工业软件领域的应用和实践。

MASAteam的博客 433

北京.NET线下技术沙龙倒计时一天

(中关村智能制造创新中心)(距海淀黄庄地铁站100米)【地下停车场可停车】.NET技术沙龙活动与你不见不散。

MASAteam的博客 392

2023年北京.NET线下技术沙龙来了!大咖分享,还有精品好礼等你

MASA技术团队来北京啦!为了与北京的.NET开发者们更深入的交流学习,我们将在北京市举办一场.NET线下技术沙龙。同时也是希望通过举办这样的线下沙龙,让更多的.NET开发者了解我们,加入.NET开源技术生态,向更多的.NET开发者分享我们的理念。期间,我们邀请到的四位技术大咖,将会围绕各自的主题向大家分享他们的技术心得。当然,我们也为大家准备了许多礼物,相信大家一定会喜欢,快来报名参加吧!2023年5月20日13:30-18:00。

MASAteam的博客 1071

使用MASA全家桶从零开始搭建IoT平台(三)管理设备的连接状态

获取一个设备的在线和离线状态,是一个很关键的功能。我们对设备下发的控制指令,设备处于在线状态才能及时给我们反馈。这里的在线和离线,我们可以简单的理解为设备与MQTT的连接状态。

MASAteam的博客 1319

使用MASA全家桶从零开始搭建IoT平台(二)设备注册

以上就是本文要讲的内容,本文介绍了通过账号密码的方式通过接口在EMQX中创建用户,并连接EMQX的过程,EMQX支持的认账方式还有很多,例如JWT认证方式可以授权一次性密码认证,可以控制认证的有效期,我们在后面的章节具体应用中会进行说明。如果你对我们的 MASA 感兴趣,无论是代码贡献、使用、提 Issue,欢迎联系我们QQ:7424099。

MASAteam的博客 1666

使用MASA全家桶从零开始搭建IoT平台(一)环境准备

本系列文章以IoT开发小白的角度,从零开始使用.Net为主要技术搭建一个简单的IoT平台,由于是入门系列,所有代码以围绕IoT基础业务场景为主,不会涉及DDD等设计思想。

MASAteam的博客 1668

成都.NET线下技术沙龙倒计时一天

四川省成都市武侯区世纪城路198号世纪城新国际会展中心2区3楼。2023年4月15日下午13:30。.NET技术沙龙与你不见不散。点击链接即可报名活动。

MASAteam的博客 257

2023年成都.NET线下技术沙龙来了!大咖分享,报名从速

MASA技术团队来成都啦!我们联合了成都.NET俱乐部,将在成都市举办一场.NET线下技术沙龙,为.NET开发者创造一次交流学习的契机,我们邀请到的几位技术大咖,将会围绕各自的主题向大家分享他们的技术心得。2023年4月15日13:30-17:30四川省成都市武侯区世纪城路198号世纪城新国际会展中心2区3楼(知域空间)【楼下可停车】

MASAteam的博客 620

Blazor在IoT领域的前端实践 @.NET开发者日

2023年3月11号,MASA技术团队参加了“.NET开发者日”,IoT项目经理郭浩在活动中做“”的主题分享数闪科技 IoT 项目经理从事 .NET 开发10余年,目前在数闪科技担任 IoT 项目经理,有大量 IoT 产品的开发经验,在 Android 和 iOS 的 Blazor MAUI 开发上有大量实践经验。本次分享主要分为两个部分第一部分我们为什么要在IoT项目中使用Blazor技术,Blazor给IoT带来了什么?第二部分。

MASAteam的博客 1016

MASA MAUI Plugin (十)iOS消息推送(原生APNS方式)

本系列文章面向移动开发小白,从零开始进行平台相关功能开发,演示如何参考平台的官方文档使用MAUI技术来开发相应功能。Apple 推送通知服务(Apple Push Notification service),简称 APNs。与之前Android使用个推不同,由于APNs国内可用,所以我们可以直接使用APNs来实现远程消息推送,不依赖其他第三方组件和服务。我们这里推送使用的是p8证书,p8证书相对p12证书来讲,更灵活,而且没有p12证书有效期1年的限制。

MASAteam的博客 1359

MASA MAUI Plugin (九)Android相册多选照片(使用Android Jetpack套件库)

本系列文章面向移动开发小白,从零开始进行平台相关功能开发,演示如何参考平台的官方文档使用MAUI技术来开发相应功能。Jetpack 包含一系列 Android 库,它们都采用最佳做法并在 Android 应用中提供向后兼容性。hl=zh-cn上一篇我们是通过Intent实现的,今天我们用Jetpack 实现相册的多选功能。

MASAteam的博客 936

MASA MAUI Plugin (八)Android相册多选照片(Intent 方式)

本系列文章面向移动开发小白,从零开始进行平台相关功能开发,演示如何参考平台的官方文档使用MAUI技术来开发相应功能。项目中有需要从相册多选图片的需求,MAUI提供的无多选功能,虽然可以实现多选,但是多选文件需要长按,而且没有预览和返回按钮,用户交互效果不好。作为安卓开发小白,本人目前找到两种UI交互良好而且不需要定制选取界面的方法和大家分享。

MASAteam的博客 1542

MASA Stack 1.0 发布会 —— 社区问题解答

社区关心的问题都在这统一解答

MASAteam的博客 421

MASA Stack 1.0 发布会讲稿——生态篇

首先感谢贡献者们为MASA Stack社区所作的积极贡献,这些贡献者给我们提出了很多宝贵的建议,更是积极的提交PR帮助我们一起让产品更健壮,更完善,还在各种场合推广我们的解决方案,非常给力,大家都是为爱发电,给你们点赞!

MASAteam的博客 510

MASA Stack 1.0 发布会讲稿——实践篇

大家可能都有类似排查问题的经历,有很多大公司尤其是外企,非常重视流程管理,这时候如果你的数据经过了多个业务系统,但又没有使用类似TSC的平台支撑,那么你要调查具体的问题就很麻烦,你需要向多个系统的项目经理提出申请,让他们安排具体的运维或者DBA甚至开发来协助你调查,如果涉及的数据存在涉密或者用户的个人信息,那么还需要涉及到产品和业务人员签字,那么如果这个问题的优先级不够高,一个问题调查一两周都是很常见的情况。如图是我们部分系统界面展示,包含我们的IoT后台,用户端小程序,云商城小程序,和业务端App。

MASAteam的博客 719

MASA Stack 1.0 发布会讲稿 —— 产品篇

这三种方式里Caller都出现了,如果说你的项目比较复杂,可能用了不同的协议,还是更推荐Caller,因为Caller是我们的一个构建块,它是面对接口的方式去编程的,不管你对接哪一种方式,只需要调换Contrib包,书写方式没有特别大的区别。以上三种方式是大家比较常见的,最后一种方式是还在开发中的MASA Stack 2.0 集成平台,在2.0里,我们会做一个集成平台,它会帮大家去接管内外的应用,HTTP、gRPC、Dapr在我们的集成平台里面都可以快速接进来。从最初的底层环境创建,部署和创建对应的集群。

MASAteam的博客 613

MASA Stack 1.0 发布会讲稿——趋势篇

随着时间推移,云计算技术越来越成熟,能力越来越丰富,有很多的需求可以用云的能力直接提供,所有陆续会出现一些比如PaaS这样的平台,其实就是云计算提供的中间件能力。到了2014之后,随着容器和K8s这样的技术出现,我们能在云计算平台拿到更多的能力,这是一种非常强大的平台层的抽象,我们前面讲过的不可变基础设施等都是通过容器、K8s技术实现的,之前需要花很多资源和精力搭建的中间件的能力,现在开发者可以非常容易的获取和实践,从此开发者的诉求和基础设施之间的鸿沟不断的在变小。

MASAteam的博客 310

MASA Stack 1.0 发布会圆满收官

MASA Stack 1.0 发布会圆满收官,此次发布会得到了大家的热烈反响,视频号和B站两个平台观看人数突破千人,点赞超过两万本次发布会分为五大部分——MASA Stack 1.0趋势篇、产品篇、实践篇、生态篇、圆桌座谈

MASAteam的博客 364

MASA MAUI Plugin (七)应用通知角标(小红点)Android+iOS

本系列文章面向移动开发小白,从零开始进行平台相关功能开发,演示如何参考平台的官方文档使用MAUI技术来开发相应功能。上一篇文章我们集成了个推的消息通知,那么消息到达移动端之后,除了会在通知栏显示之外,在应用的角标也会显示未读消息的数量(小红点),然后用户点击查看消息之后,这些数字角标也可以自动消除,这个功能在MAUI中如何实现呢。

MASAteam的博客 1124

MASA Framework 事件总线 - 跨进程事件总线

跨进程事件总线允许发布和订阅跨服务传输的消息, 服务的发布与订阅不在同一个进程中在Masa Framework中, 跨进程总线事件提供了一个可以被开箱即用的程序: 提供了发件箱模式: 借助Dapr实现了消息的发布: 基于EFCore实现的集成事件日志的提供者, 提供消息的记录与状态更新、失败日志重试、删除过期的日志记录等。

MASAteam的博客 583

MASA Framework 事件总线 - 进程内事件总线

事件总线是一种事件发布/订阅结构,通过发布订阅模式可以解耦不同架构层级,同样它也可以来解决业务之间的耦合,它有以下优点松耦合横切关注点可测试性事件驱动根据需要我们可以自定义中间件,并注册到EventBus的请求管道中,比如通过增加, 将参数验证从业务代码中剥离开来,从而使得处理程序更专注于业务注册, 修改Program.cs自定义验证中间件,用于验证参数{_logger;{}{_logger?{_logger?typeName,

MASAteam的博客 495

MASA MAUI Plugin (六)集成个推,实现本地消息推送[Android] 篇

本系列文章面向移动开发小白,从零开始进行平台相关功能开发,演示如何参考平台的官方文档使用MAUI技术来开发相应功能。鉴于现在运营需求的增强,消息推送在Android开发中应用的场景是十分常见,如电商的活动宣传、资讯类产品进行新闻推送等等,所以关于这个功能我就不过多介绍了。

MASAteam的博客 812

MASA MAUI Plugin (五)Android 指纹识别

本系列文章面向移动开发小白,从零开始进行平台相关功能开发,演示如何参考平台的官方文档使用MAUI技术来开发相应功能。在API 级别 23 (Android 6.0)设备上引入指纹扫描仪为应用程序提供了传统的用户名/密码用户身份验证的替代方法。相较于用户名和密码,采用指纹对用户进行身份验证使应用程序安全性的实现更具隐私性,之后中添加了生物识别身份验证Biometric,增加了人脸认证相关功能。我们今天讨论的只涉及指纹认证,考虑到兼容性问题采用版本提供的。

MASAteam的博客 921

MASA MAUI iOS如何绑定微信

本系列文章面向移动开发小白,从零开始进行平台相关功能开发,演示如何参考平台的官方文档使用MAUI技术来开发相应功能。App开发中难免不了要对接第三方平台,这些平台官网也提供了SDK供开发者使用。对于Android和iOS平台而言,只需要下载官方的SDK,按照官方说明文档进行集成就可以轻松实现了。但是对于MAUI来说,并没有官方的SDK,这个时候就需要我们绑定适用于.NET MAUI 的本机库。

MASAteam的博客 1053

MASA Framework 缓存入门与设计

提供了分布式缓存以及多级缓存的实现

MASAteam的博客 498
上一篇: MAUI+Masa Blazor APP 各大商店新手发布指南(二)小米篇
下一篇: MASA MAUI iOS 文件下载与断点续传
MASA team
MASA team 数闪科技+MASA team 官方账号 数闪科技+MASA team 官方账号
博客等级 码龄5年 122粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值