如何为Expo managed安卓应用添加BILLING权限以实现IAP功能?
Expo SDK 42 Managed工作流Android BILLING权限配置生效方案
- 修正app.json权限配置层级
SDK 42版本不识别expo根节点下的permissions配置,必须将Android权限嵌套在android配置块内,正确格式如下:{ "expo": { "android": { "permissions": ["com.android.vending.BILLING"] } } } - 清除构建缓存后重新打包
直接复用旧缓存构建会跳过manifest生成步骤,权限不会更新。使用传统expo build执行命令:expo build:android -c
使用EAS构建执行命令:eas build --platform android --clear-cache - 验证构建产物权限
打包完成后可通过aapt工具检查权限是否写入成功,执行命令:aapt dump badging <你的安装包路径> | grep "com.android.vending.BILLING"
有对应输出即为配置生效。 - 配置自定义插件强制注入权限
如上述步骤仍无效,可通过配置插件直接修改AndroidManifest.xml。- 项目根目录新建
withBillingPermission.js文件,代码如下:
const { withAndroidManifest } = require('@expo/config-plugins'); module.exports = (config) => { return withAndroidManifest(config, (cfg) => { cfg.modResults.manifest['uses-permission'] = cfg.modResults.manifest['uses-permission'] || []; cfg.modResults.manifest['uses-permission'].push({ $: { 'android:name': 'com.android.vending.BILLING' } }); return cfg; }); };- 在app.json的plugins数组中引入该插件:
重新清除缓存构建即可。{ "expo": { "plugins": ["./withBillingPermission.js"] } } - 项目根目录新建
内容的提问来源于stack exchange,提问作者OmerLevi
相关产品推荐
相关产品推荐

