Android出海攻略(一):Google Play 上架扫盲_海外安卓版本上架-程序员宅基地

技术标签: android  Android出海攻略  Android  

由于某些 不(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: “小样,我知道是你,你以为换个马甲我就不认识你了? 再被我发现你注册新号,我还封你!”

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Mr_Sk/article/details/114697793

智能推荐

java/php/node.js/python球鞋交易平台【2024年毕设】-程序员宅基地

文章浏览阅读26次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。

U4_3 语法分析-自底向上分析-LR0/LR1/SLR分析-程序员宅基地

文章浏览阅读1.9k次,点赞67次,收藏20次。U4_3 语法分析-自底向上分析-LR0/LR1/SLR分析

夜游苏州古城-程序员宅基地

文章浏览阅读1.5k次。  马上就要参加巅峰战将营,整理了一下,自己还真没有几套运动的衣服。只好临时抱佛脚了,跟丫头去逛街买装备。  一整天下来,李宁、安踏逛遍,搞定3身运动装,收工!  晚上便跟丫头来到石路万人码头乘坐游船赏月。  游船从石路南浩街万人码头出发,沿途经过了24做桥:阊门吊桥、惠济桥、平门桥、齐门桥、糖坊湾桥、娄们桥、相门桥、葑门桥、竹辉桥、古觅渡桥、南园桥、人民桥、蟠龙桥、吴门桥、盘门、新市

Python(35):Python3 通过https上传文件和下载文件_python3 文件上传下载-程序员宅基地

文章浏览阅读1.3k次,点赞29次,收藏8次。Python(35):Python3 通过https上传文件和下载文件_python3 文件上传下载

手机远程唤醒 android,手机微信实现网络唤醒电脑(WOL),远程开机,WakeOnLan – 全栈笔记...-程序员宅基地

文章浏览阅读5.1k次。一、需求分析我的电脑一般都是24小时候开机的,方便远程操作。但是这样,一是比较浪费电,二是对电脑硬件也或多或少有些影响。所以就需要远程开机。目前远程开机有很多种方式:1、智能插线板,可以远程控制插板的通电和断电,并在BIOS中设置来电开机,实现远程开机2、通过一些硬件,插到机箱电源跳线上来实现3、利用大部分电脑都支持的WakeOnLan技术来实现开机,只是配置过程有不少坑,相对比较麻烦。如果利用W..._wol安卓远程唤醒软件

VUE基础知识学习,零基础安装node和淘宝镜像 operation not permitted, mkdir ‘D:\nodejs\node_global‘解决方法_operation not permitted, mkdir 'd:\nodejs\node_glo-程序员宅基地

文章浏览阅读1.6k次,点赞5次,收藏2次。@VUE基础知识学习,基础安装node和淘宝镜像 operation not permitted, mkdir 'D:\nodejs\node_global’解决方法在官网上搜索node.js安装下载成功之后在本地进行安装,记得一定要去搜一下安装教程,因为有些步骤需要修改正常安装之后没有什么问题。检验npm版本(operation not permitted, mkdir 'D:\nodejs\node_global’解决方法)在这里我遇到了一个问题:发现报错,之后我就去百度上搜索了一下这个问_operation not permitted, mkdir 'd:\nodejs\node_global

随便推点

用gambit学博弈论--完全信息动态博弈(一)_gambit博弈论软件教程-程序员宅基地

文章浏览阅读1.3k次。  通常用博弈的战略式表述去描述和分析静态博弈,而对动态博弈的描述和分析就借助博弈的扩展式表述。回顾第2章给出的战略式表述,其中心内容包含三个要素:(1)参与者_gambit博弈论软件教程

AI伦理:科技发展中的人性之声-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏3次。然而,随着AI技术的快速发展,我们也面临着一系列伦理问题,这些问题涉及到我们的隐私、公平性、自主性和责任等方面。通过建立法律框架、改进训练数据和算法、提高模型的可解释性以及提供伦理培训,我们可以更好地应对AI伦理挑战,为科技发展中的人性之声提供指导。:为了解决数据收集和滥用问题,需要制定严格的数据隐私法规,确保个人数据的收集和使用受到适当的监管。:为了解决自主性问题,需要建立法律框架,明确自主AI系统的责任和法律责任。为了应对伦理挑战,开发人员和数据科学家需要受到伦理教育,以提高他们的伦理意识和决策能力。

shell之三剑客awk(基础用法)-程序员宅基地

文章浏览阅读3.6w次,点赞89次,收藏623次。AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它是专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描,过滤,统计汇总等工作,数据可以来自标准输入也可以是管道或文件。当读到第一行时,匹配条件,然后执行指定动作,在接着读取第二行数据处理,不会默认输出。如果没有定义匹配条件,则是默认匹配所有数据行,awk隐含循环,条件匹配多少次,动作就会执行多少次。逐行读取文本,默认以空格或tab键为分割符进行分割,将分割所得的各个字段,保存到内建变量中,并按模式或或条件执行编辑命令。与sed工作原理相比:s_awk

Android自定义 edittext,Android 自定义ClearEditTextView-程序员宅基地

文章浏览阅读161次。ClearEditTextView通过扩展EditText,添加了右边清除按钮、输入数据不合法时可左右抖动的功能。效果如下:模拟登录整体的实现代码如下:public class ClearEditTextView extends EditText implements View.OnFocusChangeListener, TextWatcher {//右边的删除按钮private Drawabl..._android edittext clear

小程序与H5如何互相跳转_uni小程序跳转到h5链接方法-程序员宅基地

文章浏览阅读1.1k次。由于小程序官方没有提供外部H5网页直接跳转到小程序的api,所以目前只支持小程序内嵌H5,并且只有内嵌的H5才能跳回小程序小程序跳转H5需要用到小程序的web-view,官方文档链接web-view是承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用。写法如下:<view class="page-body"> <web-vi..._uni小程序跳转到h5链接方法

程序员的职业成长之路?从初级到高级的技能提升之路-程序员宅基地

文章浏览阅读153次。程序员的职业成长之路?从初级到高级的技能提升之路

推荐文章

热门文章

相关标签