Android出海攻略(一):Google Play 上架扫盲

由于某些 不(xin)可(zhi)描(du)述(ming) 的原因,缺少“武林盟主”的国内Android市场一直比较混乱,应用分发、应用质量管控、权限管控、隐私管控 等各方面都不被重视,也就导致流氓APP横行,虽说苦了用户,但对开发者来说,倒是一路绿灯,所以在国内做Android开发,重心都放在代码上,对于应用上架、运营、推广,投入精力甚少,甚至可以说后两者已经和开发人员彻底脱钩,某一天突然接触海外业务时,被突如其来的各方约束搞的一脸懵逼,每天满脑子都是一个问题 —— “这TM你也要管?”

近两年工作重心一直在海外业务,对于海外的 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文件,有一定的概率会被Google Play阻止安装,有时是告知用户危险,有时甚至什么提示都没有,只有一句 “应用未安装”
.
2、很多国家的用户,并不习惯打开 “允许安装未知来源应用” 这个功能
.
3、即使前面这些都忍了,大不了放弃这部分用户。那还有更高维度的打击,就是应用推广,市场上最优质的广告方,几乎都只接受投放Google Play 上架的APP链接,如Facebook、Google Ads 等,你拿着自己的apk下载链接去投放,就已经放弃了大部分的优质流量 (就只能用短信推推下载短链这样子…)

因为以上这层层阻碍,上架Google Play 几乎是出海APP的唯一出路,知道了为什么要上架,在说说怎么上架


上架要注意的代码问题

重点我会写出来,但还是有必要读一下 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=包名
已存在的包名链接示例: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对的隐私权限要求极为严格,权限使用不当会直接导致被拒绝上架,甚至线下安装apk都可能被Play Protect拦截,权限敏感程度一般分为几个等级:

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

如果需要上架多个APP,可以考虑购买现成的开发者账号,没渠道的话可以给我留言

2、准备上架材料

  1. APP名字(支持多语言)
  2. 简短标题(支持多语言)
  3. 详细描述(支持多语言,如果后期涉及推广,需要加上客服电话、邮箱、和详细地址)
  4. logo 尺寸512x512
  5. 主页截图2张以上(也可以用youtube视频)
  6. 置顶宣传图 尺寸1024x500
  7. 隐私协议url,用到上述敏感权限的话,需要准备隐私协议
  8. 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=包名

如果上线失败,可以查看注册账号时填的邮箱地址,会有被拒绝的详细原因,上线失败大概分几种:

  • 被拒绝(Rejected)
    邮件中会给出修改建议,通常是资料不完整或隐私协议不适用,进入Console 修改相应内容后,点击提交即可触发新的审核,然后再等审核结果

  • 被停用 (Suspend)
    邮件中会说明被停用的原因,通常是APP包含违规内容,APP的包名会被永久禁用,想再上架只能换个包名,创建新的APP提交版本,如果多次被Suspend,可能导致封号

  • 被封号 (Terminated)
    邮件只通知封号,封号理由都是模糊的模板回复,不会告诉你他们抓到的真正把柄,封号原因有很多种,如:

1、账号提交了多个违规APP,频繁被Suspend
2、代码关联,即提交的APP被判定为马甲包,你的 代码/服务器地址可能多次使用、多次被封号,已经被标记
3、账号关联,你使用的账号,涉嫌和其他已经被封的账号,归属于同一开发者,可能是由于支付卡、支付开发者费用时的设备/网络环境、gmail注册时的设备/网络环境 等产生关联,被认为你注册账号就是目的不纯
~
换个说法就是 — Google: “小样,我知道是你,你以为换个马甲我就不认识你了? 再被我发现你注册新号,我还封你!”

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值