만족
[React Native] IOS 앱 추적 요청 메시지 띄우기 본문
[React Native] IOS 앱 추적 요청 메시지 띄우기
FrontEnd/React Native Satisfaction 2021. 7. 16. 17:12IOS에서는 사용자 추적(오류 로그, 활동 내용 등) 시 사용자에게 반드시 동의를 받아야만 한다.
만약 그렇지 않을 경우 다음 내용과 함께 심사가 거부된다.
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requests the user’s consent to access the AppTrackingTransparency, but doesn’t sufficiently explain the use of the AppTrackingTransparency in the purpose string.
The purpose string on the App Tracking Transparency permission request should explain to users why you are
tracking them across apps and websites owned by other companies
and include a specific example of how you will use the data you collect for tracking purposes.
Next Steps
Please revise the purpose string in your app’s Info.plist file for the AppTrackingTransparency to explain why your app needs access.
You can modify your app's Info.plist file using the property list editor in Xcode.
아래의 모듈을 이용할 것이다.
https://github.com/mrousavy/react-native-tracking-transparency
설치
yarn add react-native-tracking-transparency
또는
npm install react-native-tracking-transparency
모듈을 설치한다.
react-native link
cd ios
pod install
설치한 모듈을 각 플랫폼에 링크하고, ios폴더로 이동해 pod install로 ios에서 필요한 의존성을 설치한다.
사용
import { requestTrackingPermission } from 'react-native-tracking-transparency';
const trackingStatus = await requestTrackingPermission();
if (trackingStatus === 'authorized' || trackingStatus === 'unavailable') {
// enable tracking features
}
authorized는 추적에 동의함,
unavailable은 ios플랫폼이 아니거나 ios버전이 낮아 추적 동의 창을 띄울 수 없는 경우이다.
따라서 //enable tracking features에서 추적을 활성화한다.
requestTrackingPermission()에서 실제로 다이얼로그를 띄워 요청하는 것은 "사용자가 동의/거부"응답을 하지 않았을 때이다.
따라서 한 번 사용자가 의사를 표시하면, 사용자의 응답 결과만을 리턴한다.
추적 데이터 상세설명
위 코드만으로는 다이얼로그가 표시되지 않거나, 앱스토어 심사 시 거절될 수 있다.
따라서 /ios/info.plist에 다음을 추가한다.
...
<key>NSUserTrackingUsageDescription</key>
<string>추적 데이터 내용</string>
...
'FrontEnd > React Native' 카테고리의 다른 글
[React Native] WebView만 있는 하이브리드 앱 만들기 (20) | 2021.07.14 |
---|---|
[React Native] 토이 프로젝트 제작 후 RN에 대해 느낀 점 (0) | 2020.08.23 |
[React Native] IOS/Android 앱 아이콘 리소스 한번에 제작 (0) | 2020.08.22 |
[React Native] TouchableOpacity onPress is not working (0) | 2020.08.18 |
[React Native] 프로젝트 생성 및 샘플 실행 (0) | 2020.08.17 |
Comments