iOS Uninstall Tracking Setting

📘

앱 삭제 추적은 Airbridge iOS SDK v1.13.0 이후 버전 부터 사용 가능합니다.

설정

프로젝트 설정

App Identifier 에서 Push Notification 켜기

  1. https://developer.apple.com/account/resources 의 Identifiers 로 이동해 주세요.
  2. Uninstall Tracking 하고자하는 앱의 Identifier 를 클릭하여 Push Notifications 를 체크해 주세요.

Key 에서 Push Notification 켜기

  1. https://developer.apple.com/account/resources 의 Keys 로 이동해 주세요.
  2. 사용하는 Key 를 edit 하여 Apple Push Notification service 를 체크해 주세요.

사용하는 Key 가 없는 경우 + 버튼을 눌러 새로 생성하고 p8 을 다운로드 해주세요.

App 정보 등록

App ID Prefix 및 Bundle ID 등록

  1. https://developer.apple.com/account/resources 의 Identifiers 로 이동해 주세요.
  2. Uninstall Tracking 하고자하는 App 의 Identifier 를 클릭해 주세요.
  3. 해당 App 의 App ID Prefix 와 Bundle ID 를 확인할 수 있습니다.

Key 의 p8 업로드

  1. https://developer.apple.com/account/resources 의 Keys 로 이동해 주세요.
  2. 사용하는 Key 를 클릭해 주세요.
  3. 해당 Key 의 Key ID 와 p8 을 확인할 수 있습니다.

p8 은 해당 Key 최초 생성시에만 다운로드 가능합니다.

App 설정

Capabilities 추가

  1. Xcode > Project 파일 > Signing & Capabilities 로 이동해주세요.
  2. + Capability 버튼을 클릭해주세요.
  3. Background ModesPush Notifications 를 추가해주세요.
  4. Background ModesRemote notifications 를 체크해주세요.

Remote Notification 설정

앱이 실행될 때, registerForRemoteNotifications 함수를 호출해 주세요.

func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
{
    ...
    UIApplication.shared.registerForRemoteNotifications()
    ...
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [UIApplication.sharedApplication registerForRemoteNotifications];
  
    return YES;
}

APNS Push Token 전송

APNS Push Token 이 생성되었을 때, 해당 토큰을 registerPushToken 함수를 호출하여 SDK 에 전달해주세요.

func application(_ application: UIApplication,
                 didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
    AirBridge.registerPushToken(deviceToken)
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    [AirBridge registerPushToken:deviceToken];
}

삭제 추적 용 remote notification 무시

삭제 추적 용 remote notification 이 전달되었을 때, 아래 코드와 같이 무시해주세요.

func application(_ application: UIApplication,
                 didReceiveRemoteNotification userInfo: [AnyHashable : Any],
                 fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
{
    if userInfo["airbridge-uninstall-tracking"] as? Int == true {
        return;
    }
  
    ...
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    if ([userInfo[@"airbridge-uninstall-tracking"] boolValue] == YES) {
        return;
    }
  
    ...
}