Google海外App的制作与发布(3)
应用MVP开发完成后,我们就会进入到测试工作阶段,过程中还需要补全相关上线资料。
1.内部测试账号准备
实际测试订阅过程中,大陆的Google账号受限太多,比如:
- 我实际只能测试Google登录,这个不受限
- 但你的App是无法发布到大陆的Google Play Store,所以应用商店你看不到
- 同理,你的订阅商品也看不到,导致你无法拉取到那些你设置好的年度或者月度付费产品方案
- 此外,因为没有海外/香港的Google支付账户,你无法测试付款购买这个动作
其中第3个问题坑了我很久,实际过程中发现不是代码问题,而是因为订阅产品不支持中国大陆,所以登录google play商店的账号如果是“中国”的,则无法获取订阅产品,在“订阅商品”的上架地区中补充“香港”。
1.1 单纯Google香港账号行么?
一开始我计划配置一个香港的Google账号,但由于手机号、支付信息等的缺失,经常所属地区IP漂移等问题,所以单纯的创建账号仍是无法解决上面提到的2、3、4几种情况。
然后我查询了很多网上的资料,好像需要这么干:
- 补全这个Google账号的支付资料,固定其所属地区,比如就固定在香港,那么是可以解决
2、3这两个问题的 - 绑定香港的银行卡,确保可以支付。这样可以解决
4这个问题。
你有没有觉得“支付资料”和“银行卡”绑定这两不是一个事么? 理论上是,其实有点区别,别着急我一步步细说我的踩坑和解决过程。
1.2 海外手机号+银行卡的尝试
为了搞定属地和支付,我想自己搞一张“海外手机号”+一个“海外的银行卡”,结果失败了~
- 海外手机号只能开esim用,国内手机不支持,所以要搞esim写实体卡。这个在网上可以买到,但是最终钱白花了,因为esim拿不到;
- esim参考了一些网上资料,找的giffgaff,买的最便宜的那档套餐,地址填的英国的一个随便的地址,以为电子sim卡么,应该不需要邮寄,但实际错了,他需要一个激活码,而那个激活码在实体卡背面,那个卡让我寄到了大英博物馆…
- 海外银行卡也尝试了几家都没开成,主要还是限制在了香港地址、电话、身份之类的上面;
1.3 咸鱼和Google Play礼品卡
最后,我是通过咸鱼解决了2、3两个问题,但第4个问题不行:
- 咸鱼上搜“港区礼品卡”,然后和卖家聊说想解决港区属地问题,一般20元,他会让你绑定一张香港信用卡,然后再解绑,之后你的港区Google账号就会固定属地为香港;这样的话
2、3两个问题就解决了,之后你在自己的App里就可以看到订阅产品; - 但你只是能看到,当你想测试购买的时候,因为你已经解绑了信用卡,所以你的余额是不够的,你还是买不了,我继续尝试了再买一张“港区礼品卡”,但无法充值(大概最低面额50元,这个钱又白花了),Google的监测手段会要你提供更多证明你香港身份的信息,所以问题
4的解决还是需要你有一张香港本地银行卡。
1.4 你还需要一部国际版手机
最终安装APK依赖Google环境和Google Play商店, 国内的手机基本都锁了这个,所以还是去咸鱼买一部国际版的手机,一般500以内就可以搞定。最好买全新未开封的(上过当)。
2.内部测试
前面的测试准备完了后,内部测试其实比较简单。内部测试可以理解为就是开发团队自测或者找一两个好友帮忙测试。
- 在Google Play Console中创建内部测试轨道(Internal Testing Track)
- 上传App Bundle(.aab)或APK到内部测试轨道。
- 填写版本说明(Release Notes),描述本次测试的重点改动
- 把参与测试的人员加到人员列表里
- 发布后,测试者会收到邮件通知,可通过链接下载安装
- 这个阶段尽量把所有问题都解决掉,再进入后面的封闭测试。
3.许可测试和支付卡
这个工作其实就是为了测试购买时不实际扣款,我是在封闭测试时需要,所以提前配置下
- 许可测试(License Testing),不在「Testing(测试)」菜单里,而是在 ** 账号全局设置(Account details)** 里,和内部 / 封闭 / 开放测试完全是两个入口
- 专门用来 免费测谷歌内购 / 订阅,不扣钱
- Play Console 左侧 → 设置 Settings-》>账户详情 Account details->下滑找到:许可测试 License testing->输入你的 Gmail 邮箱 → 保存 (✅ 加完这个白名单✅ 等 15~30 分钟谷歌同步)
- 如果之前内部测试把人加到过邮件列表,那这里默认已经有了。许可响应选
RESPOND_NORMALLY(正常响应),这意味着 Google Play 会像对待普通用户一样处理请求
- 之后再点订阅:
- 直接弹出两张官方测试卡
- 选「永远通过」
- 0 元、不扣钱、无限次测试订阅
4.应用信息补全
这个也是封闭测试前要完成的,内容很多。位置在Google Play>监控和改进>政策和计划>应用内容。

4.1 隐私政策
Google Play>监控和改进>政策和计划>应用内容
关于隐私政策我们可以用google site page来帮我们。
如果你想页面漂亮点,有些模板可以参考:https://www.privacypolicies.com/templates/android-app-privacy-policy/
创建:
- 访问: 登录 sites.google.com。
- 创建: 点击右下角的 “+”(空白页面)。
- 标题: 页面标题写
[你的应用名] Privacy Policy。 - 正文: 添加一个“文本框”,把你隐私政策文字全部粘贴进去。
- 发布: * 点击右上角的 “发布 (Publish)”。
- 站点地址: 输入一个简单的名字(如
myapp-privacy-policy)。
- 站点地址: 输入一个简单的名字(如
- 谁可以查看: 务必确保设置为 “公开 (Public)”。
- 获取链接: 点击发布成功后的“复制已发布网站链接”,这就是你要填入 Google Play Console 的那个链接。
必需内容
- 数据收集说明
- 数据使用说明
- 数据存储说明
- 用户权利说明
- 联系方式
4.2 广告
选项:包含广告 / 不包含广告 ( 哪怕只放了测试广告,也要选 “是,我的应用包含广告”。) 若选「包含」:
- 勾选广告类型(AdMob、第三方 SDK、自家广告)
- 确认符合儿童广告政策(如果面向 13 岁以下)
- 保存
4.3 应用访问权限(审核用)
1.基本填写
- 用途:给 Google 审核人员提供测试账号 / 密码 / 访问码,确保能完整测试所有功能(含付费 / 会员 / 后台)
- 操作:应用内容 → 应用访问权限 → 填写:账号、密码、说明(如 “测试账号,全功能可用”)→ 保存
- 如果你的应用有登录功能(包括 Google 登录),你必须给 Google 审核员提供一个测试账号和密码。
- 如果全功能开放,选“所有功能均可在无需特定访问权限的情况下使用”;如果有登录墙,选“我的应用中的全部或部分功能有使用限制”(只要有登录就选这个), 然后会让填写最多五条说明。
目前我的app:登录界面提供了两种方式,一种是输入手机号(但没有短信验证,直接可以进入),另一种是google登录。进去后所有功能都是开放的,广告也可见,只有购买remove ads的订阅后才会去除广告,所以是这种情况
这种情况对审核来说反而非常有优势!因为提供了一个**“低门槛入口”**(手机号直接登录),这大大降低了审核员因为 Google 登录失败而拒审的概率。
2.五条说明
我这里只写了1条
操作名称: Test Account & Subscription Info
用户名: 13800000000
密码: `No password required
说明内容: 这里其实就是说明下要点,帮助Google审核员快速进到你的系统。
4.4 内容分级
第一部分:基本信息
- 电子邮件地址: 填写你的联系邮箱。
- 类别: 选择 “实用工具、效率、通信或其他” (Utility, Productivity, Communication, or Other)。
第二部分:分级问卷(核心选项)
- 已下载应用 (Downloaded App)
- 问题: 应用是否包含作为应用包一部分下载的任何与分级相关的内容(例如:性、暴力、语言)?
- 选择:否
- 理由: 你的代码和图片资源中没有色情、血腥或脏话。
- 用户内容共享 (User Content Sharing)
- 问题: 该应用是否以本机方式允许用户通过语音通信、文字或分享图片或音频与其他用户交互或交换内容?
- 选择:否
- 理由: 你没有社交功能,用户之间不能互相发消息。
- 联机内容 (Online Content)
- 问题: 应用是否显示或推荐不由应用包本身提供的内容(如网页、动态内容)?
- 选择:否
- 理由: 虽然你有广告和 Google 登录,但这些属于“第三方插件”,不属于应用主动向用户分发“非受控网络内容”。
- 推广或销售有年龄限制的产品或活动
- 问题: 应用是否推广或销售酒精、烟草、枪支或博彩?
- 选择:否
- 其他 (Miscellaneous)
- 应用是否允许用户购买数字商品?
- 选择:是(因为你有“Remove Ads”订阅)。
- 应用是否包含搜索引擎或浏览器?
- 选择:否。
第三部分:关于“健康/饮食”的敏感点(重要)
如果问卷中出现类似“是否包含针对饮食失调或过度节食的建议”:
- 务必选“否”。 你的应用只是卡路里计算工具,不提供任何极端的医疗或减肥建议。
💡 关键提醒:为什么选了“是(购买功能)”后,分级不会太高?
- 内购: 勾选“购买数字商品”不会让你的分级变高,只会让商店显示“包含应用内购买”标签。
- 广告: 只要你的广告设置(AdMob)限制了不展示成人/敏感内容,你的分级通常会落在 3+ 或 12+。
⚠️ 与你之前设置的“18+”冲突吗?不冲突。
- 内容分级(IARC): 是根据应用内容(暴力、色情等)来定的,通常工具类会得到最低分级(3+)。
- 目标受众(Target Audience): 是你主动选择的营销范围(18+)。
最终效果: 你的 App 在商店里会显示“分级 3+”,但 Google 会根据你的受众设置,只把 App 展示给 18 岁以上的用户。这对于避开未成年人合规审查是最完美的组合。
操作: 填完问卷后,点击 “保存” -> “计算分级” -> “应用分级”。搞定!
4.5 目标受众群体和内容
这一部分是 Google Play 政策最严苛的地方(涉及 COPPA 和 GDPR 法律)。由于你之前已经决定避开青少年合规的麻烦,请务必按照以下“成人向自保策略”填写:
- 目标年龄段 (Target Age Group)
- 勾选: 18 岁以上。(同时勾选”如果用户被 Google 判定为未成年人,则限制其使用我的应用(可选)“)
- 注意: 不要勾选任何 18 岁以下的选项(如 13-15 或 16-17)。
- 理由: 只要涉及未成年人,你就必须证明你的广告、隐私政策、甚至 UI 设计完全符合儿童保护法。只选 18+ 可以大幅简化审核。
- 应用详情 (App Details)
- 问题: 您的应用是否可能吸引儿童? (Could your store listing unintentionally appeal to children?)
- 选择: 否 (No)。
- 填写技巧: 虽然你的 UI 可能比较简洁或有可爱的图标,但在 Google 的逻辑里,选“否”意味着你承认这个 App 的功能(计算卡路里、管理饮食)是为成年人设计的。
- 如果你选“是”,Google 会强制在你的商店页面加上一个“Not designed for children”的丑标签,甚至可能要求你重新提交所有素材。
- 风险提示: 如果你的 App 名字叫“小猪卡路里”或者全是卡通动物,Google 可能会驳回你的“否”选项。只要APP看起来是一个正常的健康工具,选“否”就没问题。
3. 广告 (Ads)
问题: 您的应用是否包含广告?
- 选择: 是 (Yes)。
- 子问题: 广告是否符合 Google 的家庭政策?
- 回答逻辑: 因为你已经选了受众是 18+,你只需要确保你的 AdMob 广告设置中没有极其违规的内容。
💡 为什么这么选最安全?
如果你选了 18 岁以下,你需要面对:
- 中性年龄校验壁垒: 你得在 App 启动时加一个“生年月日”转盘,且不能默认年龄。
- SDK 限制: 你必须证明你用的所有 SDK(包括广告和统计)都是“儿童安全版本”。
- 数据收集: 收集 Email 必须经过家长同意。
通过只选 18+,你直接“跳级”通过了这些复杂的考核。
⚠️ 最后的“连贯性”检查:
- 隐私政策: 确认里面写了 “Intended for use by individuals aged 18 and older”。
- 内容分级: 虽然内容分级可能是 3+,但这代表内容“健康”,不代表受众必须是“儿童”。
4.6 数据安全
第一阶段:数据收集与共享 (Data Collection & Sharing)
在开始问卷时,请按以下逻辑勾选:
您的应用是否会收集或分享任何受支持的用户数据类型?
- 选择:是 (Yes)
您的应用收集的所有用户数据在传输过程中是否都会经过加密?
- 选择:是 (Yes)(即使是本地应用,调用 Google SDK 或登录时也是加密传输的)。
您的应用支持以下哪些账号创建方法?请选择所有适用选项
- 选择:用户名和其他身份验证方法 (Username and other authentication methods)、OAuth
- 点击oauth 后,出现:添加一个链接,让用户可通过该链接要求删除账号和相关数据:网址填什么?(低成本方案)
- 在你的隐私政策网页中添加一个锚点(推荐)。 如果你已经有了一个隐私政策网页(Privacy Policy),在里面加一段关于“Account Deletion”的说明,然后把链接填进去。例如:
https://yourwebsite.com/privacy#deletion
- 在你的隐私政策网页中添加一个锚点(推荐)。 如果你已经有了一个隐私政策网页(Privacy Policy),在里面加一段关于“Account Deletion”的说明,然后把链接填进去。例如:
您是否为用户提供了一种请求删除其数据的方法?
- 选择:是 (Yes)(建议在个人中心加一个“注销账号”或“删除本地数据”的按钮,这是目前的硬性合规要求)。
第二阶段:选择数据类型 (Data Types)
你需要勾选以下几项(千万不要多选):
个人信息 (Personal Info):
- 勾选 “用户 ID (User IDs)”(因为你有手机号登录/Google 登录,这属于用户标识符)。
健康与健身 (Health and Fitness):
- 勾选:是(因为你让用户填了身高、体重、卡路里数据)。
应用活动 (App Activity):
- 勾选 “应用内互动 (In-app interactions)”(如果你用了 Firebase 等统计工具)。
应用信息和性能 (App Info and Performance):
- 勾选 “崩溃日志 (Crash logs)”(基本每个 App 都会收集这个)。
设备或其他标识符 (Device or Other IDs):
- 勾选 “设备或其他标识符”(用于广告推荐和订阅校验)。
第三阶段:具体数据用途声明 (Data Usage - 核心细节)
对于你勾选的每一项,Google 会问你:是“收集”还是“共享”?
- 用户 ID (User ID)
收集与分享设置
- 收集 (Collected): 勾选 是。
- 分享 (Shared): 勾选 否(因为你的用户账号信息是自己管理或通过 Google 校验的,不会卖给或分享给第三方)。
处理方式设置
收集的此类数据会受到临时处理 (Ephemeral Processing) 吗?
- 选择:否
- 理由: “临时处理”是指数据仅在内存中存在几秒钟,处理完就丢弃。因为你的用户登录后,ID 需要持久保存以维持登录状态和订阅关联,所以不能选“是”。
是否必须收集这些数据?
- 选择:是(用户无法关闭这项数据收集操作)
- 理由: 只要用户选择“登录”,为了识别身份和校验订阅,系统就必须记录这个 ID。用户如果不希望被收集,唯一的选择是不登录。
数据用途 (Purposes)
- 在用途列表中,请勾选以下两项:
- 应用功能 (App Functionality): 必须勾选。这是应用运行、展示个人数据所必需的。
- 账号管理 (Account Management): 必须勾选。这是用于用户登录、注销和身份校验的核心用途。
- 在用途列表中,请勾选以下两项:
- 健康与健身信息 (Health/Fitness)
- 收集:是
- 共享:否
- 处理方式: 数据是否在本地处理?勾选“是” (Processed Locally)。
注意: 这一点极其重要!因为你之前强调是本地存储,勾选此项可以告诉 Google 数据不会上传到你的服务器。
- 用途: 勾选 “应用功能 (App Functionality)”。
- 设备或其他标识符 (Device ID)
- 收集:是
- 共享:是(因为 AdMob 广告会用到这个 ID)。
- 用途: 勾选 “广告或营销 (Advertising or Marketing)” 和 “欺诈预防、安全与合规”。
💡 避坑指南:
- 不要勾选“位置信息”: 除非你真的调用了 GPS 权限。计算卡路里不需要位置,误勾选会导致极其严格的隐私审查。
- 本地存储的文字表述: 如果有说明框,统一口径:“All health-related data (height, weight) is processed and stored locally on the user’s device. No health data is uploaded to external servers.”
- 关于删除: 如果你的 App 还没有“注销”功能,一定要在隐私政策里写明:用户可以发送邮件到你的邮箱申请删除数据。
完成这些后,点击 “提交”。这部分内容会直接显示在 Google Play 详情页的“数据安全”版块,让用户知道你是一个尊重隐私的开发者。
4.7 广告ID
在 Google Play Console 的“数据安全”问卷中,广告 ID (Advertising ID) 的填法与你是否处于“封闭测试”阶段无关,而与你的代码中是否集成了广告 SDK(如 AdMob)有关。
- 核心确认:是否使用了广告 ID?
在数据安全页面的“设备或其他标识符”部分,系统会问你:“您的应用是否使用了广告 ID?”
- 选择:是 (Yes)
- 理由: 只要你集成了 AdMob,应用就会调用 Google Play 服务的权限来获取
AAID(Android Advertising ID)。
- 详细配置(最关键的一步)
点击进入“设备或其他 ID”的详细说明页,按以下内容填写:
| 项目 | 选择 | 备注 |
|---|---|---|
| 收集 (Collected) | 是 (Yes) | 只要 SDK 读取了 ID,就属于收集。 |
| 共享 (Shared) | 是 (Yes) | 必须选是。AdMob 会将此 ID 发送给广告联盟。 |
| 临时处理 | 否 (No) | 广告系统通常会记录此 ID 用于频率控制。 |
| 是否必须收集 | 是 | 选“用户无法关闭”。(虽然用户在手机设置里可以重置 ID,但在应用层面这是自动收集的)。 |
- 选择用途 (Purposes)
请务必勾选以下两项:
- 广告或营销 (Advertising or Marketing): 声明该 ID 用于展示广告和衡量效果。
- 欺诈防范、安全和法规遵从: 声明该 ID 用于检测无效点击和维护账号安全。
- 封闭测试阶段的特别说明
很多开发者在测试阶段会犹豫,担心还没开始放广告。请记住:
- 代码即事实: 审核机器人扫描的是你的 AAB 包。如果包里有 AdMob 的类,你却填了“否”,会被判定为声明不实。
- 一劳永逸: 现在填好了,等以后你从“封闭测试”转为“正式发布”时,就不需要重新修改这部分繁琐的问卷了。
4.8 政府应用、金融产品和服务
核心选择:选“否 (No)”
4.9 健康类应用(本产品相关)
第一步:声明身份
系统会问你该应用属于哪种健康应用:
- 选择: 如果你只是提供卡路里计算和饮食建议,选择 “健身和营养 (Fitness and Nutrition)” 或类似选项。
- 注意: 绝对不要选择“医疗设备”或“疾病诊断”,除非你拿到了医疗器械认证。
第二步:隐私披露
在这一部分,Google 会要求你确认:
- 隐私政策: 确保你的隐私政策中包含了对身高、体重、饮食数据处理的描述。
- 数据用途: 确认这些数据仅用于提供计算功能(即你之前在“数据安全”里填写的逻辑)。
第三步:健康声明 (Health Declaration)
你可能需要勾选一个确认框,声明你的应用:
- 不是医疗建议: 你必须确认你的应用仅供参考,不用于诊断或治疗疾病。
- 建议做法: 在 App 的“关于”页面或注册流程中加一句:“本应用提供的建议不作为医疗诊断依据,请在做出重大饮食调整前咨询医生。”
5.封闭测试人员准备
Google有一个新的政策,如果你的开发者账号是 2023 年 11 月 13 日之后注册的,封闭测试是 强制要求。部分早期老账号可以申请豁免,但会逐步过渡。
所谓封闭测试就是APP在正式发布前,必须先完成至少 14 天的封闭测试,且需要 至少 12 名测试者 提交反馈。
这种可以去一些微信群、咸鱼上找找,我当时是用的Fiverr找的海外测试,大概港币150左右。
5.1 Fiverr购买服务
- Fiverr上就搜“12 Tester”就可以找到,可以找一些成交多的,然后和他聊就行。
- 购买服务后他可能会给你个测试人员的csv,你导入到你的测试人员中即可。
- 过程中有什么问题都可以问卖家
- 但我过程中发现Google Play Console中一直显示只有一个人下载,过了48小时也是这样,与他沟通说是Google自己的问题,好在最终也确实不影响测试结果
- 如果提前接入Firebase realtime analysis可能就能看到实时测试数据了,但我没接入
- 好像每天至少有 2-3 名 测试人员保持活跃就可以
5.2 测试人员加入流程
在 Google Play Console 创建封闭测试群组:
- 左侧菜单 → 测试(Testing) → 封闭测试(Closed Testing) → 创建新的测试群组。
- 填写测试群组名称(例如 “Beta Test - Round 1”)。
- 选择需要测试的轨道版本(必须已上传 AAB 并发布)。
添加测试人员:
- 点击 添加测试人员。
- 选择 通过 Google Group 管理(推荐)或 手动输入邮箱。
- 如果使用 Google Group:创建一个 Google Group(如
[email protected]),将测试者邮箱添加为群组成员,然后在 Play Console 中绑定该 Group。
获取测试链接:
- 创建完成后,Play Console 会生成一个 测试加入链接(例如
https://play.google.com/apps/testing/com.example.app)。 - 将此链接分享给测试人员,他们点击后使用自己的 Google 账号加入测试,然后可下载测试版应用。
- 创建完成后,Play Console 会生成一个 测试加入链接(例如
测试人员需完成的操作:
- 点击链接 → 同意测试协议 → 成为测试者。
- 在 Google Play 商店中搜索应用(或通过链接直接跳转)→ 下载测试版。
- 正常使用应用 → 截图或在应用中提交反馈(如果有反馈渠道)。
6.封闭测试
测试的过程就不说了,基本上跟着节奏走就可以。测试结束后,如果你是购买的测试服务,他们会发给你一个详细的测试报告文件,上面包括了问题、测试用例、以及提交正式申请时的问题和答案。
- 测试满 14 天后,在 Play Console 中检查 测试是否满足要求:
- 测试人员数量 ≥ 20
- 测试持续天数 ≥ 14
- 有合理的反馈记录
- 点击 申请发布(Promote to production) 或直接创建正式发布版本。
- 按照测试团队提供的测试报告文件回复即可。
- 如果 Google 要求提供测试证明,可以收集:
- 测试人员列表(邮箱)
- 测试天数截图
- 反馈截图或汇总
- 如果申请发布被拒绝
- 常见原因:
- 测试期间没有足够的活跃行为。
- 测试人员中有内部开发团队成员(违反规则)。
- 应用存在严重 Bug 未修复。
- 解决办法:延长测试期至 21-30 天,确保每天有活跃反馈,修复所有已报告的 Bug。
- 常见原因: