使用.env变量在react-native应用上设置appcenter

oalqel3c  于 2023-05-18  发布在  React
关注(0)|答案(3)|浏览(141)

我开始在我的裸react-native应用程序中使用MS appcenter,在设置过程中,他们要求我向项目添加两个新文件:
1.对于IOS:AppCenter-Config.plist

<dict>
    <key>AppSecret</key>
    <string><MY_SECRET_KEY></string>
    </dict>

1.对于Android,我需要添加一个JSON文件,其密钥为:

{
    "app_secret": "<MY_SECRET_KEY>"
 }

我已经在我的应用程序中使用了一个包来处理.env文件:https://github.com/luggit/react-native-config
有没有办法使用这个包或其他包,以便从ENV变量中获取appcenter配置文件的APP_SECRET
我只是不想让这些键处于版本控制之下。

ymzxtsji

ymzxtsji1#

Appcenter允许我们使用构建脚本,你可以在这里看到更多细节:https://learn.microsoft.com/en-us/appcenter/build/custom/scripts
我找到的解决方法是使用克隆后脚本。您需要在应用的根文件夹上创建一个bash脚本,该脚本将使用环境变量写入.env文件。
首先,创建一个名为appcenter-post-clone.sh的新文件。
然后,你可以写你的.env文件,像这样:

#!/usr/bin/env bash

echo "Creating .env file"
cat > ./.env <<EOL
API_URL=${API_URL}
API_KEY=${API_KEY}
EOL
jaql4c8m

jaql4c8m2#

发现this-应用程序秘密(名称有点混乱)只用于检查应用程序内的更新-它似乎不能触发释放它。
所以我认为没有必要将秘密移动到.env文件中。

bxjv4tth

bxjv4tth3#

如所述
https://learn.microsoft.com/en-us/appcenter/sdk/getting-started/react-native
删除Appcenter-config.json android和ios和
跟随
iOS:
3.1.1.2 设置AppSecret选项2:在代码中配置
AppDelegate.mm

#import "RNCConfig.h"
#import <AppCenterReactNativeShared/AppCenterReactNativeShared.h>
#import <AppCenter/MSACAppCenter.h>
#import <AppCenterReactNative.h>
#import <AppCenterReactNativeAnalytics.h>
#import <AppCenterReactNativeCrashes.h>

   
NSString *appSecret = [RNCConfig envFor:@"APPCENTER_IOS_KEY"][AppCenterReactNativeShared setStartAutomatically:YES];
[AppCenterReactNativeShared setAppSecret: appSecret];
[AppCenterReactNative register];
[AppCenterReactNativeAnalytics registerWithInitiallyEnabled:true];
[AppCenterReactNativeCrashes registerWithAutomaticProcessing];

安卓系统:
3.1.2.2 设置AppSecret选项2:在代码中配置

@Override
  public void onCreate() {
    AppCenter.start(this, BuildConfig.APPCENTER_ANDROID_KEY, Analytics.class, Crashes.class);
  }

相关问题