iOS Uygulaması

Aşağıdaki örnekler, Instance-ID'yi bir iOS istemcisinde uygulamanıza yardımcı olacaktır. Bu örneklerde, Firebase Cloud Messaging için iOS istemcisinin jetonlarını yönetmek üzere kullanacağınız GCM kapsamının kullanıldığını unutmayın.

CocoaPods bağımlılarınızı ayarlama

Örnek kimliği, bağımlılıkları yüklemek ve yönetmek için CocoaPods'u kullanır. Bir terminal penceresi açın ve uygulamanıza ait Xcode projesinin konumuna gidin. Uygulamanız için henüz bir Podfile oluşturmadıysanız hemen bir tane oluşturun:

pod init

Uygulamanız için oluşturulan Podfile dosyasını açın ve aşağıdakileri ekleyin:

pod 'FirebaseInstanceId'

Dosyayı kaydedin ve şunu çalıştırın:

pod install

Bu işlem, uygulamanız için bir .xcworkspace dosyası oluşturur. Bu dosyayı uygulamanızda ileride yapılacak tüm geliştirmeler için kullanın.

Jeton oluşturma

Jeton oluşturmak için Google Developers Console tarafından oluşturulmuş bir proje kimliği gerekir.

NSString *authorizedEntity = PROJECT_ID;
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
NSDictionary *options = @{
  @"apns_token" : <APNS Token data>,
  // 1 if APNS sandbox token else 0
  @"apns_sandbox" : @(1),
};
[[FIRInstanceID instanceID] tokenWithAuthorizedEntity:authorizedEntity
                                                scope:scope
                                              options:options
                                              handler:
                  ^(NSString * _Nullable token, NSError * _Nullable error) {
                      // ...
}];

Jetonları ve örnek kimliklerini yönetme

Örnek kimliği, jetonları silmenize ve yenilemenize olanak tanır.

Jetonları ve örnek kimliklerini silme

NSString *authorizedEntity = PROJECT_ID; // Project ID
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
FIRInstanceIDDeleteTokenHandler handler = ^void(NSError *error) {
  if (error) {
    // Failed to delete the token. Check error and do an exponential
    // backoff to retry again.
  } else {
    // Successfully deleted the token.
  }
};
[[FIRInstanceID instanceID]
    deleteTokenWithAuthorizedEntity:authorizedEntity
                              scope:scope
                            handler:handler];

Örnek kimliğini de silebilirsiniz. Bu durumda, getInstance() çağrısını bir sonraki sefer yaptığınızda yeni bir örnek kimliği alırsınız:

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
      if error != nil {
        NSLog(@"Error deleting instance ID: %@", error);
      }
    }];

Yenileme jetonları

Instance ID hizmeti, jeton oluşturabilir veya yeniden oluşturabilir. Bu durumda bir bildirim gönderilir. kFIRInstanceIDTokenRefreshNotification adlı bildirimler için bir gözlemci ekleyerek bu bildirimi dinleyebilirsiniz.

[[NSNotificationCenter defaultCenter] addObserver:self
         selector:@selector(tokenRefreshNotification:) 
         name:kFIRInstanceIDTokenRefreshNotification object:nil];

Bu gözlemci, jeton oluşturulmadan önce oluşturulmalıdır (ör. [FIRApp configure] çağrılmadan önce). [[FIRInstanceID instanceID] token] çağrısı yapılarak en son jeton alınabilir.

Cloud Messaging için jeton oluşturma işlemini gözlemlemek üzere belirli bir temsilci kullanabileceğinizi unutmayın.