1

J'ai utilisé la notification Apple Push dans mes applications et cela fonctionne très bien dans Adhoc Distribution. J'ai envoyé mes applications sur l'AppStore, mais la notification push ne fonctionne pas pour mes applications et a reçu un message comme "Apple a rejeté les jetons de votre appareil". J'ai utilisé des fichiers .p12 séparés pour les builds de développement et de production et téléchargés dans le Urban Airship.Apple Push Notification Service ne fonctionne pas dans Production Build en utilisant Urban Airship dans l'iPhone?

Note:

Mais je l'ai utilisé la même clé maître clé de l'application et de l'application pour le développement et la production. Alors que cela n'a pas fonctionné pour la notification push. Si je crée des clés séparées pour la distribution et que je dois utiliser ces clés pour mes builds de distribution. Alors que ça va résoudre le problème. Quand une création d'une clé d'application dans un dirigeable urbain, alors je reçois les trois clés comme la clé d'application, le secret d'application et le secret principal d'application. J'ai utilisé la clé d'application et la clé principale dans mes applications. Est-ce correct? Alors, s'il vous plaît, guidez moi.

Merci

Cordialement,
Pugal

+0

Avez-vous utilisé le profil d'approvisionnement mis à jour pour la distribution? i.e après avoir activé la notification push? – Shreesh

+0

@Shreesh, Oui, je l'ai déjà fait. – Pugal

Répondre

3

Vous devez avoir:

  1. Portal Provisioning iOS d'Apple
    • App d'ID
      • Générer un Push développement de certificat SSL
      • Générer une production Poussez un certificat SSL
  2. Dans Urban Airship éditeur application
    • Créer une application pour le développement
      • Utilisez le Apps développement Poussez le certificat SSL dans l'entrée de certificat push d'Apple
      • Copier la clé d'application (développement)
      • Copier l'application Secret (développement)
    • Créer une application pour la production
      • Utilisez le Apps production Poussez certificat SSL dans l'entrée de certificat push d'Apple
      • Copie de la clé d'application (production)
      • Copie de l'application secret (production)
  3. Définir le code de Xcode signature à utiliser les certificats
  4. J'utilise le code suivant pour définir les clés Airship urbain au moment de la compilation en fonction des macros:

    - (void)urbanAirshipTakeoffWithLaunchOptions:(NSDictionary *)launchOptions { 
    
    // Init Airship launch options 
    NSMutableDictionary *takeOffOptions = [[NSMutableDictionary alloc] init]; 
    [takeOffOptions setValue:launchOptions forKey:UAirshipTakeOffOptionsLaunchOptionsKey]; 
    
    // Build the Urban Airship TakeOffOptions 
    // Create Airship singleton that's used to talk to Urban Airship servers. 
    NSMutableDictionary *airshipConfigOptions = [[NSMutableDictionary alloc] init]; 
    
    //Set up the Push keys 
    NSLog(@"Appdelegate_Pad:didFinishLaunchingWithOptions - TARGET_1"); 
    [airshipConfigOptions setValue:@"xxx" forKey:@"DEVELOPMENT_APP_KEY"]; 
    [airshipConfigOptions setValue:@"xxx" forKey:@"DEVELOPMENT_APP_SECRET"]; 
    [airshipConfigOptions setValue:@"xxx" forKey:@"PRODUCTION_APP_KEY"]; 
    [airshipConfigOptions setValue:@"xxx" forKey:@"PRODUCTION_APP_SECRET"]; 
    
    // If CONFIGURATION_Debug is defined, then use the development servers, else use the production servers 
    #ifdef CONFIGURATION_Debug 
    [airshipConfigOptions setValue:@"NO" forKey:@"APP_STORE_OR_AD_HOC_BUILD"]; 
    NSLog(@"Using Development Servers at Urban Airship"); 
    #else 
    [airshipConfigOptions setValue:@"YES" forKey:@"APP_STORE_OR_AD_HOC_BUILD"]; 
    NSLog(@"Using Production Servers at Urban Airship"); 
    #endif 
    
    // Set and start Urban Airship 
    [takeOffOptions setValue:airshipConfigOptions forKey:UAirshipTakeOffOptionsAirshipConfigKey]; 
    [UAirship takeOff:takeOffOptions]; 
    
    // Register for push notifications 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | 
                         UIRemoteNotificationTypeSound | 
                         UIRemoteNotificationTypeAlert)]; 
    

    }

Une des meilleures choses à propos de cette mise en place est que je peux envoyer mes bêta-testeurs pousser des messages que mes utilisateurs de production ne peuvent pas voir (par exemple: Nouvelle version bêta sur TestFlight!).

Questions connexes