2017-08-26 5 views
0

J'ai ce problème, j'utilise le module CloudPush pour récupérer le jeton dans mon application, et dans tous les travaux de test ok, mais quand je télécharge l'application sur le magasin et le téléchargement des personnes En l'occurrence, l'application ne récupère pas le jeton, je remarque cette erreur chaque fois que je crée une instance de cloudPush.Android - CloudPush ne fonctionne pas sur la production

[INFO] : *** Vamos a validar 
[INFO] : *** CREATE INSTANCE OF CLOUDHPUSH!!!!!!!!! 
[ERROR] : TiHTTPClient: (TiHttpClient-10) [30,1458] HTTP Error  (java.io.IOException): 404 : Not Found 
[ERROR] : TiHTTPClient: java.io.IOException: 404 : Not Found 
[ERROR] : TiHTTPClient: at ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1283) 
[ERROR] : TiHTTPClient: at java.lang.Thread.run(Thread.java:818) 
[INFO] : *** BEFORE SINGLE CALL BACK 
[INFO] : *** BEFORE retrieveDeviceToken 
[INFO] : Choreographer: Skipped 46 frames! The application may be doing too much work on its main thread. 
[INFO] : art: Background partial concurrent mark sweep GC freed 3578(221KB) AllocSpace objects, 0(0B) LOS objects, 24%% free, 15MB/20MB, paused 5.096ms total 51.635ms 
[ERROR] : GooglePlayServicesUtil: The Google Play services resources were not found. Check your project configuration to ensure that the resources are included. 
[WARN] : W/InstanceID/Rpc: Found 10076 
[INFO] : Device Token: APA91bHU56CLjjEcMyroqoWH3VJFCSqBIKT2A7Amctdjiuw1Rk5a8upzfJJotfIUTh6619Wx-g7OG2rTMuceHm4r8ASz41K_bEYG1vh2q3_mwTM0ERbij4asAB4IPKIUkEZQCW9HcAFL 

Mon code est:

var self = Ti.UI.createWindow({ 
    orientationModes: [ Titanium.UI.PORTRAIT, Titanium.UI.UPSIDE_PORTRAIT], 
    backgroundColor: params.color6, 
    backgroundImage: "/images/fondo.jpg", 
     navBarHidden:true, 
     exitOnClose:true, 
     fullscreen:true 
    }); 
    self.addEventListener("open", function(){ 

    Ti.API.info("*** Vamos a validar"); 
    if(Ti.Platform.osname=='android'){ 

      Ti.API.info("*** CREATE INSTANCE OF CLOUDHPUSH!!!!!!!!!"); 
     var CloudPush = require('ti.cloudpush'); 
     Ti.API.info("*** BEFORE SINGLE CALL BACK"); 
     CloudPush.setSingleCallback(true); 
     Ti.API.info("*** BEFORE retrieveDeviceToken"); 
     CloudPush.retrieveDeviceToken({ 
      success: function deviceTokenSuccess(e) { 
       var token = e.deviceToken; 
       Ti.API.info('Device Token: ' + e.deviceToken); 
       Utiles.RegistrarEnServidor(token); 
      }, 
      error: function deviceTokenError(e) { 
       Ti.API.info("*** Failed to register for push"); 
      } 
     }); 

Je ne sais pas ce que je fais mal ... à tester tout fonctionne très bien, mais l'application dans le magasin de jeu ne fonctionne pas, le jeton ne obtient récupéré.

Appcelerator Titanium Studio de construire: 4.9.1.201707200100
SDK: 6.1.2GA
CloudPush: 4.0.3

+0

Rien ne semble être faux dans votre code, mais pouvez-vous essayer en supprimant cette ligne ** CloudPush.setSingleCallback (true); **? –

+0

C'est le seul changement que je n'ai jamais utilisé en utilisant Cloudpush. –

+0

Merci @PrashantSaini mais le problème persiste ... –

Répondre

1

Afin de rendre votre travail push vous devez prendre note de quelques-uns les choses, laissez voir étape par étape:

tiapp.xml

<!-- Property keys for Arrow Push (required) --> 
<property name="acs-api-key-development" type="string">YOUR DEVELOPMENT API KEY HERE</property> 
<property name="acs-api-key-production" type="string">YOUR PRODUCTION API KEY HERE</property> 
<property name="acs-api-key" type="string">YOUR API KEY HERE</property> 

J'espère que vous avez ajouté les bonnes clés dans les emplacements appropriés. Vous devez également vous ajouter service Push URL api dans tiapp.xml

<ti:app> 
    <property name="acs-push-api-url-production">https://api-prod.fooinc.com</property> 
    <property name="acs-push-api-url-development">https://api-dev.fooinc.com</property> 
</ti:app> 

Pour la notification/Badegs dans tiapp.xml

<property name="acs-grouped-notification-message-development" type="string">You have $number$ unread messages.</property> 
<property name="acs-grouped-notification-message-production" type="string">You have $number$ unread messages.</property> 
-or- 
<property name="acs-grouped-notification-message" type="string">You have $number$ unread messages.</property> 

Assurez-vous également la valeur clé pour la même chose dans votre i18n dossier pour multiLang

Selon le code que vous avez fourni tout semble bien, donc rien s faux avec le code selon mon estimation est.

Certificats et profil d'approvisionnement (iOS uniquement)

Vous devez créer une bonne approvisionnement Profil et certificat pour la production/développement, vous avez également besoin de créer le fichier .PEM qui vous aidera à envoyer/recevoir la poussée notification pour un appareil spécifique et App, c'est là que l'enregistrement de l'appareil fonctionne. Vous devez donc être sûr que vous avez créé les certificats correctement. Vous pouvez jeter un oeil à la procédure de création du certificat et Provisioning profil de lien ci-dessous: https://www.raywenderlich.com/156966/push-notifications-tutorial-getting-started

J'espère que cela vous aide à résoudre le problème. Faites-moi savoir si vous avez d'autres problèmes après cela.

Bonne chance et Vive

Ashish Sebastian

+0

J'ai fait tout ce qui sans résultat .. –

+0

@JuanCarlosSalinasOjeda: Eh bien c'est bizarre, si ce n'est pas obligatoire pour vous d'utiliser le module 'cloudPush', Vous pouvez certainement aller pour le ** GCM ** ** iamYellow **. C'est assez bon et je l'ai utilisé plusieurs fois et est assez similaire à ce que vous avez déjà fait. Jetez un coup d'œil et laissez-moi savoir si cela fonctionne. [https://github.com/iamyellow/gcm.js] –

+0

Merci Sebastian .. ce module fonctionne-t-il encore avec SDK 6.1.2? –

0

Je résoudre le problème avec le module: PushClient

je laisse ici si quelqu'un a le même problème.