Expo构建Android AAB上传Play Store遇Manifest权限冲突求助
解决Expo构建AAB上传Play Store时的Manifest权限冲突问题
问题原因
你遇到的冲突是因为Expo依赖的FileSystem和AndroidX Startup库会自动生成基于你的App包名(com.jawsdevelopers.mealpass)的Content Provider Authorities,而这些名称被其他开发者占用了。在Expo中无需手动修改原生Manifest文件,通过配置文件即可解决。
解决方案
方法1:自定义Content Provider Authorities
通过app.json或app.config.js覆盖AndroidManifest的默认配置,自定义冲突的权限名称:
- 编辑你的配置文件,在
android字段下添加manifest配置:
{ "expo": { "android": { "package": "com.jawsdevelopers.mealpass", "manifest": { "application": { "provider": [ { "android:name": "expo.modules.filesystem.FileSystemFileProvider", "android:authorities": "${applicationId}.customfilesystemprovider", "android:exported": false, "android:grantUriPermissions": true, "meta-data": { "android:name": "android.support.FILE_PROVIDER_PATHS", "android:resource": "@xml/expo_file_provider_paths" } }, { "android:name": "androidx.startup.InitializationProvider", "android:authorities": "${applicationId}.customstartupprovider", "android:exported": false, "meta-data": { "android:name": "androidx.startup", "android:value": "androidx.startup" } } ] } } } } }
将customfilesystemprovider和customstartupprovider替换为你的项目专属后缀,确保名称唯一。
- 重新构建AAB文件:
eas build --platform android --profile production
方法2:修改App包名(Package Name)
如果你的包名com.jawsdevelopers.mealpass本身与其他开发者重复,这违反了Play Store的唯一性要求,必须修改:
{ "expo": { "android": { "package": "com.jawsdevelopers.mealpass.youruniquesuffix" } } }
修改后重新构建AAB,自动生成的权限名称会基于新包名,避免冲突。
验证修改效果
构建完成后,可通过bundletool查看AAB中的Manifest,确认权限名称已更新:
bundletool dump manifest --bundle=your-app.aab
搜索android:authorities字段,确认显示的是你自定义的内容。
内容的提问来源于stack exchange,提问作者Timo Coupek
相关产品推荐
相关产品推荐

