시작하기
React Native 프로젝트에 react-native-nitro-device-info를 설치하고 설정합니다.
사전 요구 사항
설치 전에 프로젝트가 다음 조건을 충족하는지 확인하세요.
- React Native: 설치한 Nitro 런타임이 지원하는 버전을 사용하세요. 레포지터리 예제는 React Native 0.85.3을 사용하며, 이 값이 최소 지원 버전을 뜻하지는 않습니다.
- iOS: 배포 대상 15.1 이상
- Android: minSdkVersion 24 이상(Android 7.0 Nougat)
- Node.js: React Native toolchain 요구 사항을 따르세요. 레포지터리 개발에는 Node.js 22를 사용합니다.
위 iOS와 Android 최소 버전은 이 라이브러리의 네이티브 빌드에 설정한 값입니다. React Native나 Nitro는 더 높은 최소 버전을 요구할 수 있습니다.
설치
원하는 패키지 관리자로 라이브러리와 peer dependencies를 설치하세요.
필수: JSI 바인딩에 필요한 peer dependencies는
react-native-nitro-modules>=0.35.0 <1.0.0입니다.
플랫폼 설정
iOS 설정
패키지를 설치한 뒤 CocoaPods 의존성을 설치하세요.
Pod 설치 후 iOS 앱을 다시 빌드하세요. Metro만 재시작하면 네이티브 코드가 설치되지 않습니다.
iOS privacy info manifest
v1.9.0: privacy info manifest 자동 포함은 v1.9.0부터 지원합니다.
1.8.3에는 포함되지 않습니다. PR #144를 참고하세요.
Pod는 ios/PrivacyInfo.xcprivacy를 NitroDeviceInfo_privacy.bundle에 포함합니다. CocoaPods는 이 리소스 번들을 앱에 복사합니다. Expo prebuild나 EAS Build에서 Pod를 설치할 때도 같습니다. 개인정보 보호 전용 config plugin 옵션을 켜거나 앱 타깃에 직접 복사할 필요는 없습니다.
privacy info manifest는 Expo Device와 같은 리소스 번들 방식으로 포함하며 이 라이브러리가 사용하는 API에 맞춰 approved reason(Apple이 허용한 API 사용 목적)을 선언했습니다.
각 approved reason에는 Apple이 정한 사용 제한이 적용됩니다. 디스크 공간 데이터는 사용자에게 저장 공간을 보여 주거나 저장 공간에 따라 앱을 동작시키는 데 사용하며, 기기 밖으로 전송하는 데 제한이 있습니다.
iOS에서 getUptime()과 startupTime은 표에 적힌 앱 이벤트 시간 측정 목적으로만 사용해야 합니다. 원시 기기 가동 시간과 부팅 타임스탬프를 일반 기기 정보로 표시·수집하거나 기기 밖으로 전송하거나 핑거프린팅에 사용하면 안 됩니다. 35F9.1에서는 앱 내 이벤트 사이의 경과 시간만 기기 밖으로 전송할 수 있습니다. 8FFB.1에서는 앱 내 이벤트를 변환한 절대 타임스탬프만 기기 밖으로 전송할 수 있습니다. 시간 측정 API 예제를 참고하세요. Expo Device도 35F9.1을 선언하지만, 이 선언이 더 넓은 용도를 허용하지는 않습니다.
라이브러리 자체는 데이터 수집이나 추적을 선언하지 않습니다. 앱의 데이터 수집·추적과 다른 SDK에 필요한 선언은 앱에서 관리해야 합니다. 이 API를 기기 핑거프린팅에 사용하지 마세요.
iOS 앱을 빌드하거나 아카이브한 뒤 NitroDeviceInfo_privacy.bundle/PrivacyInfo.xcprivacy가 앱에 포함됐는지 확인하세요. 기존 앱 수준의 privacy info manifest는 그대로 둘 수 있습니다.
Android 설정
Android 앱을 다시 빌드하면 Gradle의 autolinking으로 라이브러리를 등록합니다. 권한이 필요한 API에는 추가 설정이 필요할 수 있습니다. Expo 설정을 참고하세요.
Expo 앱
개발 빌드 또는 EAS Build를 사용하세요. Expo Go에는 이 네이티브 모듈이 없습니다. 설치, 네이티브 설정, 재빌드 절차는 Expo 설정을 따르세요.
설치 확인
앱에 다음 코드를 추가하세요.
콘솔에 기기 정보가 출력되면 설치가 완료된 것입니다.
다음 단계
앱에서 API를 사용하는 방법은 빠른 시작에서 확인하세요.
- API 레퍼런스: 사용 가능한 전체 API
- 예제: 자주 쓰는 활용 방법
- 마이그레이션 가이드:
react-native-device-info에서 전환하는 방법
