近两年工作重心一直在海外业务,对于海外的 Google 霸权也是深有体会,被虐了一遍又一遍,写代码、实现功能 似乎成了最微不足道的压力,最近打算吧这两年的血泪史整理一下,写几篇扫盲文章,希望能给后来的小可爱们多填几个坑。
为什么要上架?
在国内,Android手机用户非常熟悉并善于通过各种途径获取apk的下载方式,并且乐于主动地寻找下载渠道。有些人甚至拿到新手机后的第一件事就是打开“允许安装未知来源应用”的选项。我们通常安装APP的方式如下:
- 找到官网上的APP下载入口
- 在应用宝、豌豆荚、系统应用商店 等各种分发平台搜索下载
- 各种社交平台分享
这些操作对我们来说已经司空见惯,官网下载甚至成为许多用户的首选。然而,在海外市场上,由于Google这个巨头的垄断地位,情况有所不同。
Google Play Store 是绝大多数用户信任和熟悉的唯一应用分发平台。
Android用户对Google Play Store的依赖和信任程度远超过IOS用户对App Store的依赖和信任。尽管这个理由可能无法说服所有人,但这只是用户主观选择的一部分。除此之外,还有更多阻碍让你不上架就无法生存下去。
如果我的App能够吸引足够的注意,你可能会认为我可以直接推广APK下载链接,而不必担心用户不愿意下载。然而,事实可能并非如此简单。
1、Google Play在海外作为手机的系统级应用,会默认启用Play protect功能。这意味着在Google Play以外下载的apk文件有一定概率被阻止安装,有时会告知用户存在危险,有时则没有任何提示,只显示应用未安装。 2、许多国家的用户并不习惯开启“允许安装未知来源应用”的功能。 3、即使忍受了前面提到的问题,也可能放弃这部分用户。更严重的是,在应用推广方面受到更高层次的打击。市场上最优质的广告方几乎只接受投放Google Play上架的APP链接,如Facebook、Google Ads等。如果你使用自己apk文件下载链接进行投放,则已经失去了大部分优质流量(只能通过短信推送下载短链等方式)。
由于上述种种障碍,将应用程序上架Google Play几乎成为了海外应用的唯一途径。现在我们来探讨一下为什么要进行上架,并且了解如何实施这个过程。
上架要注意的代码问题
重要的是,我能够为您提供所需的重点信息,但仍然建议您阅读一下Google Play开发者政策。请点击此链接:https://play.google.com/about/developer-content-policy/
在APP代码的处理方面,Google Play会对开发者上传的APP进行多次机器审核。即使已经成功上架,也会定期进行复审。一旦发现违反政策规定,轻则下架应用,重则封禁开发者账号。我们通常需要关注的审核内容包括:
1、apk的基本编译配置
- Android Api 版本
Google要求 targetApiVersion 支持到最新的2个版本(目前是要求 targetApi 29 以上) - ABI x64支持
如果用到so库, 必须支持x64,通常abiFilters 'armeabi-v7a', 'arm64-v8a'
即可 - 签名有效期
生成签名的时候需要注意有效期要在25年以上 - App包名唯一
上传到Google Play的APP,packageName必须是没有存在过的
验证包名是否已存在的方法如下: 通过拼接一个Google Play详情页链接,如果能打开,则代表包名已存在。具体链接示例如下: 已存在的包名链接示例:https://play.google.com/store/apps/details?id=com.twitter.android 不存在的包名链接示例:https://play.google.com/store/apps/details?id=com.twitter.android.test.new.pkg
2、恶意代码检测
- 权限 : 需合理使用权限,敏感权限可能导致上架被拒
- 协议通讯安全:API 需使用https,保护用户的数据安全
- 马甲包:同一套代码重复上架,会被视为马甲包被封号(有这种需求需要做深度的代码混淆)
- 内更新:APP不可有内更新、热修复、跳转三方下载链接等任何动态更改源码的行为(脱离Google审核的动态代码都不被接受),更新APP唯一途径是在Google Play 发布新版本
- 使用隐私数据需披露:这个更多是靠人工审核,运气不好被查到会被下架
- 色情、暴力、赌博 这些元素内容就不用多说了,可以看开发者政策
权限使用 特别说明
在权限使用方面,国内开发者通常最不习惯的是Google对隐私权限的极严要求。若权限使用不当,将直接导致应用被拒上架,并有可能被Play Protect拦截甚至线下安装apk。一般来说,权限敏感程度可以分为几个等级:
A级敏感权限,需要提交权限申请表单,才可能被允许上架
通话记录权限组:READ_CALL_LOG、WRITE_CALL_LOG、PROCESS_OUTGOING_CALLS
短信记录权限组:READ_SMS、SEND_SMS、WRITE_SMS、RECEIVE_SMS、RECEIVE_WAP_PUSH、RECEIVE_MMS
~
短信和通话记录是敏感度最高的权限,如果Manifest中有添加这些权限,在Google Play中上传apk时会触发权限使用申请表单,需要提交相关资料,阐述APP需要这些权限的原因,并提供对相关隐私数据使用是否合法的证明(由于不同国家的政策力度不同,权限申请表单的通过率也不同,比如印度、墨西哥 对SMS_LOG 就管理相对放松)
~
~
B级敏感权限,需要为用户提供隐私协议
通讯录权限:READ_CONTACTS、WRITE_CONTACTS
定位权限:ACCESS_FINE_LOCATION、ACCESS_COARSE_LOCATION、ACCESS_BACKGROUND_LOCATION
相机权限:CAMERA
SD卡权限:READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE
设备信息权限:READ_PHONE_STATE
~
如果Manifest 添加有以上权限,则在Google Play上架APP时,需要提供隐私协议url,同时也要在APP中向用户展示,并征得同意,在隐私协议中需详细列出APP使用了哪些权限、收集上传了哪些数据、收集这些数据的目的用途、以及承诺和阐述 如何保证用户的数据安全
如何上架
1、准备Google Play开发者账号
对于不需要大量上架的普通开发者来说,注册账号非常简单。只需使用gmail登录Google Play Console,并准备一张支持美元的卡片(国内有些双币卡可能无法成功支付,但招行和工行一般都可以)。支付25美元即可永久开通开发者账号。 Google Play Console链接:https://play.google.com/console
如果您需要上架多个应用程序,我们建议您考虑购买现成的开发者账号。如果您没有合适的渠道,请随时给我留言。
2、准备上架材料
- APP名字(支持多语言)
- 简短标题(支持多语言)
- 详细描述(支持多语言,如果后期涉及推广,需要加上客服电话、邮箱、和详细地址)
- logo 尺寸512x512
- 主页截图2张以上(也可以用youtube视频)
- 置顶宣传图 尺寸1024x500
- 隐私协议url,用到上述敏感权限的话,需要准备隐私协议
- apk文件 注意上面提到的编译配置
3、发布应用
1) 打开Google Play Console , 创建一个APP
无需多讲,根据 Title 填充文本即可
2) 按指引完成所有资料填写
3) 填写隐私协议url(如果需要)
4) 选择发布国家
5) 创建release版本(Google Play可以先提交测试版本,然后发布到beta,最后到release),像我这样不需要再测试的,这里就直接创建release版本了
6) 选择是否使用Google 二次签名(最终用户下载的APP是Google生成的签名,你的签名只用来更新Google Play版本)
7) 接下来上传apk,填写此版本功能介绍,然后无脑下一步就可以了
发布后,我们将进行大约一周的审核。不同时期的审核时间也会有所不同。例如,在疫情期间,审核可能需要一个月才能完成,而两年前审核较为宽松的时候,则只需10分钟即可上线。
8) 审核结果
成功上线后,Console中的审核状态将会消失,并且Dash board会提供一个链接,用于跳转到APP安装页面。另外,你也可以手动拼接链接:https://play.google.com/store/apps/details?id=包名。
如果上线失败,您可以查看您在注册账号时填写的邮箱地址,以了解被拒绝的详细原因。一般来说,上线失败可以大致分为几种情况:
-
申请被拒绝(Application Rejected)
在邮件中,我们会提供修改建议。通常情况下,这是因为您的资料不完整或隐私协议不适用。您只需进入控制台,修改相应内容,并点击提交即可触发新的审核流程。之后,请耐心等待审核结果的通知。 -
账号暂停使用
在邮件中会详细说明账号被暂停使用的原因,通常是因为应用程序包含违规内容。一旦应用程序的包名被永久禁用,想要重新上架只能更换新的包名,并创建新版本的应用程序进行提交。如果多次遭到账号暂停使用,可能会导致永久封禁。 -
账户被注销 (Account Deactivated)
用户只会收到一封通知邮件,告知账户已被注销,而注销原因则是使用模板回复给出的模糊解释。平台方不会透露具体违规行为的证据,而账户被注销的原因也有多种可能性,例如:
1、该账号因提交多个违规APP而频繁被暂停使用。 2、代码关联问题,即所提交的APP被认定为马甲包,导致您的代码或服务器地址可能多次被使用并封禁,并已经被标记。 3、账号关联问题,您所使用的账号与其他已封禁账号存在关联,归属于同一开发者。这可能是由于支付卡或支付开发者费用时的设备/网络环境以及在注册gmail时所用设备/网络环境等原因产生的。因此,您注册账号被认为目的不纯。 换句话说就是:Google表示:“我知道你是谁!就算你换个马甲我也能识破!如果我再次发现你注册新账号,我还会将其封禁!”
还木有评论哦,快来抢沙发吧~