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

使用app.config.js运行Expo推送命令遇Manifest未初始化错误的解决方法

解决Expo推送Android密钥上传时的Manifest未初始化错误(app.config.js场景)

问题描述

开发聊天应用时用Expo配置推送通知,执行命令 expo push:android:upload --api-key <你的Firebase令牌> 后,收到错误提示 Manifest (app.json) not initialized,确认是使用动态配置文件app.config.js而非静态app.json导致的问题。

解决方案

  • 升级Expo CLI到最新版
    旧版CLI对动态配置的支持存在缺陷,先升级到稳定版:
npm install -g expo-cli
# 或使用yarn
yarn global add expo-cli
  • 执行命令时指定配置文件路径
    给上传命令加上--config参数,明确指向动态配置文件:
expo push:android:upload --api-key <你的Firebase令牌> --config app.config.js
  • 验证配置文件有效性
    确认app.config.js的导出结构正确,你的配置已包含expo.android.package和googleServicesFile(这两项是Android推送功能必需的)。另外可临时在配置文件中添加console.log(process.env),运行expo config命令验证环境变量是否正确加载,避免因变量缺失导致配置不完整。

  • 临时生成静态app.json(备选方案)
    如果上述方法无效,先生成静态的app.json:

expo export:manifest -p android

生成后再执行上传命令,完成操作后删除该静态app.json即可,避免和动态配置文件冲突。

附用户提供的app.config.js代码

import "dotenv/config";

export default {
  expo: {
    name: "XXX",
    slug: "XXX",
    version: "1.0.0",
    scheme: "com.XXXXXXXXX.XXXX",
    orientation: "portrait",
    icon: "./assets/icon.png",
    userInterfaceStyle: "light",
    splash: {
      image: "./assets/splash.png",
      resizeMode: "contain",
      backgroundColor: "#ffffff",
    },
    updates: {
      fallbackToCacheTimeout: 0,
    },
    assetBundlePatterns: ["**/*"],
    ios: {
      supportsTablet: true,
    },
    android: {
      package: "com.XXXXXXXXX.XXXX",
      googleServicesFile: "./google-services.json",
      adaptiveIcon: {
        foregroundImage: "./assets/adaptive-icon.png",
        backgroundColor: "#FFFFFF",
      },
    },
    web: {
      favicon: "./assets/favicon.png",
    },
    extra: {
      apiKey: process.env.API_KEY,
      authDomain: process.env.AUTH_DOMAIN,
      projectId: process.env.PROJECT_ID,
      storageBucket: process.env.STORAGE_BUCKET,
      messagingSenderId: process.env.MESSAGING_SENDER_ID,
      appId: process.env.APP_ID,
      measurementId: process.env.MEASUREMENT_ID,
      oneSignalAppId: process.env.ONESIGNAL_APP_ID,
    },
    plugins: [
      [
        "expo-image-picker",
        {
          photosPermission:
            "The app accesses your photos to let you share them with your friends.",
        },
      ],
    ],
  },
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:46:43