したがって、この記事や他の記事で説明されている環境変数の概念に満足しています https://www.freecodecamp.org/news/how-to-gracefully-use-environment-variables-in-a-反応ネイティブアプリ/
すばらしいです。SOMETHING= "something"を保存しているので、env.SOMETHINGなどを使用できます
私が少し迷っている部分は、ライブ変数を保持する場所ですか?
あなたはまだあなたのキーをかなり公開していて、ifステートメントを使って環境に基づいて選択しているように見えるので、私はこのような解決策を実行したくない
たとえば、私たちが持っているExpress Appデプロイメントでは、
let endPointURL = env.endPointURL
そして、その変数のversoinをローカルに保持し、それがAWSに配置されると、説明されているようにAWSサーバーによって上書きされます here
AndroidおよびiOSビルド(それぞれのストアで)またはExpoを介して、そのようなものが存在するのだろうか?
ありがとうございます
より簡単な方法は、関数の代わりにenvオブジェクトをエクスポートすることです:
import Constants from 'expo-constants';
import { Platform } from "react-native";
const localhost =
Platform.OS === "ios" ? "localhost:8080" : "10.0.2.2:8080";
const ENV = {
dev: {
apiUrl: localhost,
amplitudeApiKey: null,
},
staging: {
apiUrl: "[your.staging.api.here]",
amplitudeApiKey: "[Enter your key here]",
// Add other keys you want here
},
prod: {
apiUrl: "[your.production.api.here]",
amplitudeApiKey: "[Enter your key here]",
// Add other keys you want here
}
};
const getEnvVars = (env = Constants.manifest.releaseChannel) => {
if (env === null || env === undefined || env === "" || env.indexOf("dev") !== -1) return ENV.dev;
if (env.indexOf("staging") !== -1) return ENV.staging;
if (env.indexOf("prod") !== -1) return ENV.prod;
}
const selectedENV = getEnvVars();
export default selectedENV;
// Import
import env from '..xxx/utility/env';