You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一设备安装同一React Native(Expo)项目生成的两个APK?

解决方案:为不同构建配置独立应用ID

Android系统通过**应用ID(package name)**识别应用是否为同一程序,只要给两个APK设置不同的应用ID,就能实现同一设备上的同时安装。以下是Expo React Native项目的具体实现步骤:

1. 使用EAS Build配置多环境构建(推荐方式)

Expo的EAS Build支持通过配置文件定义不同构建profile,每个profile可指定独立的Android应用ID:

  • 在项目根目录的eas.json文件中,添加两个不同的构建配置(示例为prod和dev):
{
  "build": {
    "prod": {
      "android": {
        "package": "com.yourcompany.app.prod"
      }
    },
    "dev": {
      "android": {
        "package": "com.yourcompany.app.dev"
      }
    }
  }
}

将com.yourcompany.app.prod和com.yourcompany.app.dev替换为符合Android命名规范的自定义应用ID,确保二者完全不同。

  • 分别构建两个APK:
    • 生产版构建命令:eas build --platform android --profile prod
    • 开发版构建命令:eas build --platform android --profile dev

构建完成后,下载的两个APK将拥有独立的应用ID,可在同一设备上同时安装且互不覆盖。

2. 传统expo build:android临时方案(不推荐,已逐步淘汰)

若仍在使用旧版expo build:android,可通过动态配置切换应用ID:

  • 将项目中的app.json改为app.config.js,添加环境变量判断逻辑:
module.exports = () => {
  const isProd = process.env.BUILD_ENV === 'prod';
  return {
    expo: {
      name: isProd ? 'App Prod' : 'App Dev',
      slug: 'your-app-slug',
      android: {
        package: isProd ? 'com.yourcompany.app.prod' : 'com.yourcompany.app.dev'
      }
    }
  };
};
  • 构建时指定环境变量:
    • 生产版:BUILD_ENV=prod expo build:android
    • 开发版:BUILD_ENV=dev expo build:android

注意事项

  • 应用ID必须遵循反向域名格式(如com.xxx.yyy)。
  • 建议为两个构建设置不同的应用名称(修改配置中的name字段),方便在设备上区分。

内容的提问来源于stack exchange,提问作者Insoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:33:10