我正在尝试部署应用程序,但我发现使用
eas secret vars
部署应用程序很困难。
我已成功将变量存储在eas Secret中,但我不知道如何在
eas.json
中使用它们,我看到了一些答案,您应该创建一个app.config.js,但我不想混淆局部变量来自eas的秘密。
This is the .env file:
EXPO_PUBLIC_API_URL=localhost...
EXPO_PUBLIC_VEHICLE_IMAGE_URL=localhost
在
eas.json
我想更新这个:
"production": {
"channel": "production",
"env": {
"EXPO_PUBLIC_API_URL": "www.production.com", // I want the secret variable
"EXPO_PUBLIC_VEHICLE_IMAGE_URL": "www.production2.com" // I want the secret variable
}
}
我写了一份非常详细的指南。仔细阅读以更好地了解 Expo 和 EAS 中的环境变量如何工作。你可以在这里找到它:
简而言之,这是您对 eas Secrets 特定问题的回答:
如果您想在 EAS 构建期间使用本地环境变量:
在您的 Expo 项目的 Secret 中创建相同的变量。您可以在这里找到它们:
https://expo.dev/accounts/<username>/settings/secrets
更新您的
eas.json
以告诉 EAS 哪些机密用于特定分支(例如,development
、production
):
"development": {
"autoIncrement": true,
"developmentClient": true,
"distribution": "internal",
"env": {
"EXPO_PUBLIC_MAPBOX_ACCESS_TOKEN": "EXPO_PUBLIC_MAPBOX_ACCESS_TOKEN",
"EXPO_PUBLIC_SUPABASE_URL": "EXPO_PUBLIC_SUPABASE_URL",
"EXPO_PUBLIC_SUPABASE_ANON_KEY": "EXPO_PUBLIC_SUPABASE_ANON_KEY"
},
"channel": "development"
}
这告诉 EAS 在秘密中查找
EXPO_PUBLIC_MAPBOX_ACCESS_TOKEN
并在构建期间检索其值。