React Native SDK 문제 해결
중요
Visual Studio App Center는 2025년 3월 31일에 사용 중지될 예정입니다. Visual Studio App Center가 완전히 사용 중지될 때까지 계속 사용할 수 있지만 마이그레이션을 고려할 수 있는 몇 가지 권장 대안이 있습니다.
'React/RCTDefines.h' 파일을 찾을 수 없습니다.
이 오류는 RN 핵심 라이브러리가 올바르게 참조되지 않을 때 나타나며, 이는 다양한 종류의 통합 또는 연결 문제로 인해 발생할 수 있습니다. 종속성이 프로젝트에서 정적으로 연결되는 것이 아니라 podfile의 상대 경로를 사용하여 연결된 경우에 종종 발생합니다.
연결 스크립트는 Pod를 연결하는 표준 방법만 지원하므로 문제를 resolve 수 있습니다.
의 종속성을
Podfile
상대 연결 경로로 바꿉니다.이전:
pod 'AppCenter/Analytics', '~> 1.14.0' pod 'AppCenter/Crashes', '~> 1.14.0' pod 'AppCenterReactNativeShared', '~> 1.13.0'
이후:
pod 'appcenter', path: '../node_modules/appcenter/ios' pod 'appcenter-analytics', path: '../node_modules/appcenter-analytics/ios' pod 'appcenter-crashes', path: '../node_modules/appcenter-crashes/ios'
폴더에서
iOS
를 실행pod install
합니다.AppDelegate.m 내에서 가져오기를 바꿉니다.
이전:
#import <AppCenterReactNative/AppCenterReactNative.h> #import <AppCenterReactNativeAnalytics/AppCenterReactNativeAnalytics.h> #import <AppCenterReactNativeCrashes/AppCenterReactNativeCrashes.h>
이후:
#import "AppCenterReactNative.h" #import "AppCenterReactNativeAnalytics.h" #import "AppCenterReactNativeCrashes.h"
프로젝트에서 AppCenter 종속성을 제거합니다(종속성 종속성 > 제거를 마우스 오른쪽 단추로 클릭).
- YOUR_APP> -라이브러리를 선택하고< 다음 파일을 제거합니다.>
AppCenterReactNative.xcodeproj
AppCenterReactNativeAnalytics.xcodeproj
AppCenterReactNativeCrashes.xcodeproj
- 프로젝트 설정을 열고 연결된 프레임워크 및 라이브러리 섹션의 일반 탭에서 이전 단계에서 제거된 대상 라이브러리를 참조하는 새 항목을 제거합니다.
libAppCenterReactNative.a
libAppCenterReactNativeAnalytics.a
libAppCenterReactNativeCrashes.a
- 헤더 검색 경로를 수정하여 AppCenter React Native 플러그 인 프로젝트에서 헤더를 제거합니다. 프로젝트 설정을 열고 헤더 검색 경로 섹션의 빌드 설정 탭에서 헤더 파일에 대한 다음 위치를 제거합니다.
$(SRCROOT)/../node_modules/appcenter/ios/AppCenterReactNative
$(SRCROOT)/../node_modules/appcenter-analytics/ios/AppCenterReactNativeAnalytics
$(SRCROOT)/../node_modules/appcenter-crashes/ios/AppCenterReactNativeCrashes
- YOUR_APP> -라이브러리를 선택하고< 다음 파일을 제거합니다.>
React Native 링크 명령을 인식할 수 없음
컴퓨터에 를 설치한 경우 yarn
는 react-native init {myapp}
대신 를 사용하여 yarn
npm
앱을 초기화하고 종속성을 설치합니다. 를 실행할 react-native link
때 다음 오류 메시지가 표시되면 설치 중에 및 가 혼합되도록 npm
yarn
대신 App npm install {package}
yarn add {package}
Center 종속성이 설치될 가능성이 있습니다.
Command `link` unrecognized. Make sure that you have run `npm install` and that you are inside a react-native project.
이 경우 를 실행하고 npm install
다시 시도합니다 react-native link
.
'AppCenterCrashes/MSACErrorReport.h' 파일을 찾을 수 없음과 같은 빌드 오류
React-Native 0.60 이상
Apple SDK의 호환성이 손상되는 변경으로 인해 주요 패키지 버전 간의 충돌이 발생할 수 있습니다.
모든
appcenter
패키지가 동일한 주 버전을 사용하는지 확인합니다.npm install
또는 를 사용하여 업데이트합니다yarn
(필요한 경우).프로젝트의 ios 폴더로 이동하여 Podfile.lock 및 Pods 폴더를 제거합니다 .
ios 폴더에서 를 실행
pod install --repo-update
합니다.Podfile.lock에 동일한 주 버전의 종속성이 포함되어
appcenter
있는지 확인합니다.
React Native 0.60보다 낮음
한 가지 가능한 원인은 CocoaPods를 설치하지 않고 실행할 react-native link
때입니다.
원인을 확인하려면 를 실행하고 react-native link
로그에서 다음 줄에 대해 검사.
Could not configure AppCenter for iOS. Error Reason - spawn pod ENOENT
이 줄은 로그의 다음 섹션에 있습니다.
Added code to initialize iOS AppCenter SDK in ios/TestApp/AppDelegate.m
Installing Cocoapods dependencies...
Could not configure AppCenter for iOS. Error Reason - spawn pod ENOENT
rnpm-install info Platform 'ios' module appcenter-analytics is already linked
rnpm-install info Platform 'android' module appcenter-analytics is already linked
이 오류가 표시되면 시스템의 PATH 환경 변수에서 CocoaPods의 명령을 사용할 수 있는지 확인 pod
합니다.
CocoaPods 설치를 수정한 후 ios 폴더에서 를 실행 pod install
하여 프로젝트를 수정합니다.
CocoaPods가 반응 네이티브 링크 중에 AppCenterReactNativeShared에 대한 사양을 찾을 수 없음
중에 react-native link
다음 CocoaPods 오류 메시지가 표시되면 CocoaPods 사양 리포지토리의 로컬 클론(~/.cocoapods/repos
컴퓨터에서)이 최신이 아닐 수 있습니다.
Analyzing dependencies [!] Unable to find a specification for AppCenterReactNativeShared (~> {version})
를 실행 pod repo update
하여 사양 리포지토리를 업데이트하고 다시 시도합니다 react-native link
. CocoaPods 명령에 대한 자세한 내용은 CocoaPods 명령줄 참조를 참조하세요.
App Center SDK를 사용하여 앱을 React Native 0.59에서 0.60으로 업그레이드하는 방법
React Native 버전 0.60.0으로 업그레이드하려면 다음 명령을 사용합니다.
react-native upgrade 0.60.0
참고
업그레이드하는 동안 이 오류가 Command failed: git status -s fatal: not a git repository (or any of the parent directories): .git
발생하면 다음 단계를 수행합니다.
git init
git add .
git commit -m "Upgrade react-native"
업그레이드를 완료한 후 디렉터리를 제거할 .git
수 있습니다.
iOS React Native 업데이트
Podfile을 열고 다음 줄에서 App Center 종속성을 바꿉 있습니다.
use_native_modules!
다음 명령 실행:
pod repo update
React Native SDK를 최신 버전으로 업데이트하는 방법
이미 SDK를 애플리케이션에 통합하고 최신 버전의 SDK로 업그레이드하려는 경우 다음 단계에 따라 업그레이드합니다.
npm uninstall --save appcenter appcenter-analytics appcenter-crashes
이전 App Center 패키지를 제거합니다.npm install --save-exact appcenter appcenter-analytics appcenter-crashes
최신 App Center 패키지를 설치합니다.pod repo update
CocoaPods 사양 리포지토리가 최신 상태인지 확인합니다.react-native link
.
팁
중에 react-native link
다음 CocoaPods 오류 메시지와 유사한 오류 메시지가 표시되면 ios 폴더에서 자동 생성된 Podfile.lock을 삭제하고 다시 실행 react-native link
합니다.
[!] Unable to satisfy the following requirements: - `AppCenter/Core (= 1.0.0)` required by `Podfile.lock` - `AppCenter/Core (= 1.0.0)` required by `AppCenter/Crashes (1.0.0)` - `AppCenter/Core (= 1.0.0)` required by `AppCenter/Analytics (1.0.0)` - `AppCenter/Core (= 1.0.1)` required by `AppCenterReactNativeShared (1.0.1)`
jCenter에서 Maven Central로 마이그레이션
jCenter 지원이 종료되어 모든 어셈블리가 Maven Central 리포지토리로 이동되었습니다.
App Center를 사용하려면 아래와 같이 Gradle 파일의 리포지토리에 를 추가 mavenCentral()
해야 합니다.
repositories {
google()
mavenCentral()
}
App Center 비밀 값 보호
는 app_secret
앱의 식별자이며 트래픽이 적용되는 앱을 알아야 하며 기존 데이터를 검색하거나 편집하는 데 사용할 수 없습니다. app_secret
노출되는 경우 가장 큰 위험은 잘못된 데이터를 앱에 보내는 것이지만 데이터 보안에는 영향을 주지 않습니다.
중요한 데이터를 검색하려면 클라이언트 쪽에서 생성되는 앱/사용자 토큰을 제공해야 합니다. 클라이언트 쪽의 데이터를 완전히 안전하게 만들 수 있는 방법은 없습니다.
환경 변수를 사용하여 앱 비밀을 코드에 삽입하여 앱의 보안을 향상시킬 수 있습니다. 이렇게 하면 코드에 비밀이 표시되지 않습니다.