React Native 프로젝트에 SDK 파일 적용
Xcode 프로젝트 열기
Section titled “Xcode 프로젝트 열기”React Native 프로젝트의 iOS 폴더에서 .xcworkspace
파일을 열어 Xcode 프로젝트를 시작합니다.
cd iosopen YourProject.xcworkspace
SDK 파일 구조
Section titled “SDK 파일 구조”다운로드한 DoveRunner Mobile App Security SDK에는 다음 파일들이 포함되어 있습니다:
libhermes.a
- DoveRunner Mobile App Security가 통합된 Hermes 라이브러리AppsealingiOS.h
- 헤더 파일AppsealingiOS.mm
- 구현 파일- React Native 브리지 파일들
프로젝트에 SDK 파일 추가
Section titled “프로젝트에 SDK 파일 추가”1. AppSealing 폴더 생성
Section titled “1. AppSealing 폴더 생성”Xcode 프로젝트에서 AppSealing 폴더를 생성하고 SDK 파일들을 추가합니다:
- 프로젝트 네비게이터에서 프로젝트를 우클릭
- “New Group”을 선택하여 “AppSealing” 그룹 생성
- SDK 파일들을 이 그룹에 드래그 앤 드롭
2. 기존 Hermes 라이브러리 교체
Section titled “2. 기존 Hermes 라이브러리 교체”React Native가 사용하는 기존 Hermes 라이브러리를 DoveRunner Mobile App Security 버전으로 교체해야 합니다:
node_modules/hermes-engine/destroot/Library/Frameworks/hermes.framework
을 백업- SDK의
libhermes.a
를 사용하여 교체 - Podfile에서 Hermes 설정 확인
빌드 설정 구성
Section titled “빌드 설정 구성”Other Linker Flags 설정
Section titled “Other Linker Flags 설정”- 프로젝트 설정 > Build Settings로 이동
- “Other Linker Flags”를 검색
- 다음 플래그 추가:
-lAppSealing-force_load $(PROJECT_DIR)/AppSealing/libhermes.a
Header Search Paths
Section titled “Header Search Paths”SDK 헤더를 찾을 수 있도록 경로를 추가합니다:
$(PROJECT_DIR)/AppSealing
Framework Search Paths
Section titled “Framework Search Paths”필요한 프레임워크 경로를 추가합니다:
$(PROJECT_DIR)/AppSealing
React Native 브리지 구성
Section titled “React Native 브리지 구성”JavaScript에서 네이티브 모듈 접근
Section titled “JavaScript에서 네이티브 모듈 접근”React Native에서 DoveRunner Mobile App Security 기능에 접근하려면 브리지 모듈을 구성해야 합니다:
import {NativeModules} from 'react-native';const {AppSealingModule} = NativeModules;
// 기기 ID 획득const deviceId = await AppSealingModule.getDeviceId();
// 보안 상태 확인const securityStatus = await AppSealingModule.checkSecurity();
네이티브 모듈 구현
Section titled “네이티브 모듈 구현”네이티브 쪽에서는 다음과 같이 브리지를 구현합니다:
#import "AppSealingModule.h"#import "AppsealingiOS.h"
@implementation AppSealingModule
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(getDeviceId:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject){ char deviceId[64]; if (ObjC_GetAppSealingDeviceID(deviceId) == 0) { NSString *deviceIdString = [NSString stringWithUTF8String:deviceId]; resolve(deviceIdString); } else { reject(@"error", @"Failed to get device ID", nil); }}
@end
Metro 번들러 구성
Section titled “Metro 번들러 구성”metro.config.js
에서 Hermes 설정을 확인합니다:
module.exports = { transformer: { getTransformOptions: async () => ({ transform: { experimentalImportSupport: false, inlineRequires: true, }, }), hermesParser: true, },};
테스트 및 검증
Section titled “테스트 및 검증”- 클린 빌드 수행:
cd iosrm -rf build/xcodebuild clean
- React Native 앱 빌드:
npx react-native run-ios
- 로그에서 DoveRunner Mobile App Security 초기화 메시지 확인
- 릴리스 모드에서만 작동: DoveRunner Mobile App Security는 릴리스 빌드에서만 완전히 작동합니다
- 번들 ID 확인: 등록한 번들 ID와 프로젝트의 번들 ID가 일치하는지 확인하세요
- 테스트 환경: TestFlight나 App Store를 통해서만 완전한 테스트가 가능합니다
다음 단계는 보안 GUI 추가입니다.