iPhone で React Native アプリケーションを実行していて、特定の構成プロファイルがインストールされているときに (別の環境を対象として) アプリの構成を変更したいと考えています。
React Native アプリケーションから iOS 構成プロファイルを読み取る/アクセスするにはどうすればよいですか?
iPhone で React Native アプリケーションを実行していて、特定の構成プロファイルがインストールされているときに (別の環境を対象として) アプリの構成を変更したいと考えています。
React Native アプリケーションから iOS 構成プロファイルを読み取る/アクセスするにはどうすればよいですか?
シンプルなカスタム モジュールを作成して、iOS ネイティブ側からその値を取得できます。RNConfigという名前のカスタム モジュールは次のとおりです。
RNConfig.h
#import <Foundation/Foundation.h>
#import "React/RCTBridgeModule.h"
@interface RNConfig : NSObject<RCTBridgeModule>
@end
RNConfig.m
#import "RNConfig.h"
@implementation RNConfig
RCT_EXPORT_MODULE();
- (NSDictionary *)constantsToExport
{
NSString* platform_name = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"PlatformName"];
return @{ @"PlatformName": platform_name };
}
@end
React Nativeでは、次のコード スニペットでそのモジュールを使用できます。
const { RNConfig } = require('NativeModules');
let platformName = RNConfig.PlatformName;
このモジュールは、iOS 側に複数のターゲットがある場合に使用できます。したがって、React Native 側では、すべてのターゲットに応じて多くの構成値があります。
config/index.js
import { targetA } from './targetA';
import { targetB } from './targetB';
const variables = {
targetA,
targetB
};
const { RNConfig } = require('NativeModules');
export default variables[RNConfig.PlatformName];
iOS ターゲット名がtargetAまたはtargetBの場合、上記のように iOS プラットフォーム名を取得することで、React Native 側で特定の構成設定を使用できます。
とにかく、 RNConfig.mファイルを変更することで、iOS 側で任意のタイプの構成値を取得できます。