@@ -49,6 +49,7 @@ @interface AIActivityHandler()
4949@property (nonatomic , assign ) BOOL internalEnabled;
5050@property (nonatomic , assign ) BOOL isIad;
5151@property (nonatomic , copy ) NSString *vendorId;
52+ @property (nonatomic , copy ) NSString *pushToken;
5253
5354@end
5455
@@ -153,6 +154,12 @@ - (void)readOpenUrl:(NSURL*)url {
153154 });
154155}
155156
157+ - (void )savePushToken : (NSData *)pushToken {
158+ dispatch_async (self.internalQueue , ^{
159+ [self savePushTokenInternal: pushToken];
160+ });
161+ }
162+
156163#pragma mark - internal
157164- (void )initInternal : (NSString *)yourAppToken {
158165 if (![self checkAppTokenNotNil: yourAppToken]) return ;
@@ -364,6 +371,17 @@ - (void) readOpenUrlInternal:(NSURL *)url {
364371 [self .logger debug: @" Reattribution %@ " , adjustDeepLinks];
365372}
366373
374+ - (void ) savePushTokenInternal : (NSData *)pushToken {
375+ if (pushToken == nil ) {
376+ return ;
377+ }
378+
379+ NSString *token = [pushToken.description stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString: @" <>" ]];
380+ token = [token stringByReplacingOccurrencesOfString: @" " withString: @" " ];
381+
382+ self.pushToken = token;
383+ }
384+
367385#pragma mark - private
368386
369387// returns whether or not the activity state should be written
@@ -446,6 +464,7 @@ - (void)injectGeneralAttributes:(AIPackageBuilder *)builder {
446464 builder.environment = self.environment ;
447465 builder.isIad = self.isIad ;
448466 builder.vendorId = self.vendorId ;
467+ builder.pushToken = self.pushToken ;
449468
450469 if (self.trackMacMd5 ) {
451470 builder.macShortMd5 = self.macShortMd5 ;
0 commit comments