【问题标题】:Expo: Can't change Android Standalone App Icon and NameExpo:无法更改 Android 独立应用程序图标和名称
【发布时间】:2021-09-22 10:27:50
【问题描述】:

我正在尝试更改我的 expo 托管应用程序的图标和名称。我更改了资产中的文件以包含我的图像。它们位于资产/图像。文件的名称是正确的,如果我 Ctrl+单击它们,我会得到正确的文件。我还将“名称”更改为新名称。我的 app.json 看起来像这样:

{
  "expo": {
    "userInterfaceStyle": "automatic",
    "name": "GroupStatus",
    "slug": "GroupStatus",
    "version": "2.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/my-icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": ["**/*"],
    "ios": {
      "supportsTablet": true,
      "usesAppleSignIn": true,
      "requireFullScreen": true,
      "userInterfaceStyle": "light",
      "buildNumber": "2.0.0"
    },
    "android": {
      "package": "com.myName.groupstatus",
      "googleServicesFile": "./google-services.json",
      "versionCode": 3,
      "adaptiveIcon": {
        "foregroundImage": "./assets/images/my-adaptive-icon.png",
        "backgroundColor": "#FFFFFF"
      },
      "icon": "./assets/images/my-icon.png",
      "userInterfaceStyle": "dark"
    },
    "web": {
      "favicon": "./assets/images/favicon.png"
    },
    "scheme": "groupstatus"
  }
}

我还有一个 app.config.ts 文件:

import "dotenv/config";

export default {
  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.MEASURING_ID,
    databaseUrl: process.env.DATABASE_URL,
  },
  facebookScheme: "12345",
  slug: "GroupStatus",
  title: "GroupStatus",
  android: {
    package: "com.myName.groupstatus",
    versionCode: 3,
  },
};

当我将应用程序构建为 apk/aab 时,我会得到旧名称和默认图标。

我正在使用 Expo SDK 42.0.0

【问题讨论】:

    标签: android react-native expo


    【解决方案1】:

    我找到了解决方案。如果你在 app.json 旁边使用 app.config.js,你必须告诉你的 app.config.js 文件包含 app.json 中的值。

    export default ({ config }: ConfigConte) => {
      const apiKey = process.env.API_KEY!;
      const authDomain = process.env.AUTH_DOMAIN!;
      const projectId = process.env.PROJECT_ID!;
      const storageBucket = process.env.STORAGE_BUCKET!;
      const messagingSenderId = process.env.MESSAGING_SENDER_ID!;
      const appId = process.env.APP_ID!;
      const measurementId = process.env.MEASURING_ID!;
      const databaseUrl = process.env.DATABASE_URL!;
    
      return {
        ...config,    // <= this includes all the values from app.json
        extra: {
          apiKey,
          authDomain,
          projectId,
          storageBucket,
          messagingSenderId,
          appId,
          measurementId,
          databaseUrl,
        },
      };
    };
    

    如果不包括配置,app.json 中设置的所有值都不会被应用。 有关更多信息,请阅读docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-12
      • 2021-12-29
      • 2019-05-10
      • 2018-04-23
      • 2017-12-09
      • 2015-07-21
      • 1970-01-01
      相关资源
      最近更新 更多