Android - CloudPush不支持生产

时间:2017-08-26 13:49:26

标签: android push appcelerator

我有这个问题,我使用CloudPush模块在我的应用程序中检索令牌,并且在所有测试工作中都可以,但是当我将应用程序上传到商店并且人们下载它时,应用程序只是没有检索令牌,我每次创建一个cloudPush实例时都会注意到这个错误。

[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

我的代码是:

    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");
             }
         });

我不知道我做错了什么...在测试所有工作正常,但游戏商店中的应用程序不起作用,令牌永远不会被检索。

Titanium Appcelerator Studio版本:4.9.1.201707200100
SDK :6.1.2GA
CloudPush :4.0.3

2 个答案:

答案 0 :(得分:1)

为了让你的推动工作你需要注意一些事情,让我们一步一步地看到它们:

  

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>

我希望您在正确的插槽中添加了正确的密钥。您还需要在 tiapp.xml

中添加推送服务api URL
<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>
  

用于tiapp.xml中的通知/ Badegs

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

同样在multiLang的i18n文件夹中为其设置键值

根据您提供的代码,所有内容似乎都没有问题,因此根据我的猜测,代码没有任何问题。

  

证书和配置文件(仅限iOS)

您需要为生产/开发创建适当的配置文件和证书,您还需要创建.PEM文件,以帮助您发送/接收特定设备和应用程序的推送通知,这是设备注册的位置作品。因此,您需要确保已正确创建证书。您可以从以下链接查看创建证书和配置文件的过程: https://www.raywenderlich.com/156966/push-notifications-tutorial-getting-started

我希望这可以帮助您解决问题。如果您在此之后还有其他问题,请告诉我。

祝你好运和干杯

Ashish Sebastian

答案 1 :(得分:0)

我用模块解决了问题: PushClient

如果有人遇到同样的问题,我会把它留在这里。