Expo:无法更改 Android 独立应用程序图标和名称
Expo: Can't change Android Standalone App Icon and Name
我正在尝试更改我的 expo 托管应用程序的图标和名称。我更改了资产中的文件以包含我的图像。它们位于 assets/images。文件的名称是正确的,如果我按住 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
我找到了解决办法。如果在 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:
我正在尝试更改我的 expo 托管应用程序的图标和名称。我更改了资产中的文件以包含我的图像。它们位于 assets/images。文件的名称是正确的,如果我按住 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
我找到了解决办法。如果在 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: