הטמעה ל-iOS

הדוגמאות הבאות יעזרו לכם להטמיע את מזהה המכונה בלקוח iOS. שימו לב שבדוגמאות האלה נעשה שימוש בהיקף GCM, שבו משתמשים כדי לנהל אסימונים של לקוח iOS ב-Firebase Cloud Messaging.

הגדרת יחסי התלות ב-CocoaPods

ב-Instance ID נעשה שימוש ב-CocoaPods כדי להתקין ולנהל קשרי תלות. פותחים חלון טרמינל ומנווטים למיקום של פרויקט Xcode של האפליקציה. אם עדיין לא יצרתם Podfile לאפליקציה, עליכם ליצור אותו עכשיו:

pod init

פותחים את קובץ ה-Podfile שנוצר לאפליקציה ומוסיפים את הקוד הבא:

pod 'FirebaseInstanceId'

שמירת הקובץ והפעלה:

pod install

הפעולה הזו יוצרת קובץ .xcworkspace בשביל האפליקציה. יש להשתמש בקובץ הזה בשביל כל פיתוח באפליקציה בעתיד.

יצירת טוקן

כדי ליצור אסימונים, צריך מזהה פרויקט שנוצר על ידי Google Developers Console.

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) {
                      // ...
}];

ניהול אסימונים ומזהי מכונות

מזהה המכונה מאפשר למחוק ולרענן אסימונים.

מחיקת אסימונים ומזהי מכונות

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];

אפשר גם למחוק את מזהה המכונה עצמו. במקרה כזה, בפעם הבאה שתפעילו את getInstance() תקבלו מזהה מכונה חדש:

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

אסימוני רענון

שירות מזהה המכונה עשוי ליצור או ליצור מחדש אסימונים. במקרה כזה, תישלח התראה. כדי להאזין להתראה הזו, צריך להוסיף משתמש למעקב אחרי התראות בשם kFIRInstanceIDTokenRefreshNotification.

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

צריך ליצור את הצופה הזה לפני יצירת האסימון, למשל לפני שמפעילים את [FIRApp configure]. אפשר לאחזר את האסימון האחרון באמצעות קריאה ל-[[FIRInstanceID instanceID] token].

לתשומת ליבכם: כדי לעקוב אחרי יצירת האסימונים ל-Cloud Messaging, יש נציג ספציפי שזמין.