2016-05-04 35 views
2

私のphonegapアプリケーションで次のプラグインhttps://github.com/phonegap/phonegap-plugin-pushを使用しています。登録イベントのioSバージョンでは何も取得していません。 Androidでは100%動作します。私は何かが欠けているかどうかを確認するために援助を要請するコードは以下の通りです。証明書があり、プッシュサービスが有効になっています。私は配布証明書を作成し、アプリケーションはApple Storeにあります。基本的に私は起動時に自己呼び出し機能を持っており、HTTP経由でサーバーに登録を送信しますが、私たちはioSから何も取得していません。私たちはphonegapbuildを使ってioSのバージョンを構築し、macincloud.comからアップロードしました。私はここにいくつかの記事を読んだが、誰も私の問題を解決しない。PhoneGapプッシュプラグインがioSに登録されていません

<gap:plugin name="phonegap-plugin-push" source="npm" > 
    <param name="SENDER_ID" value="15971xxxxxxx" /> 
</gap:plugin> 

私の環境ここ のWindows 10 コルドバ-v 6.0.0 5.5.0 プッシュプラグイン-v 1.5.3

-vのPhoneGapとは、コード

(function() { 
'use strict'; 
document.addEventListener("deviceready", onDeviceReady, false); 
function onDeviceReady() { 
    var samplePushApp = angular.module('samplePushApp'); 
    samplePushApp.factory('deviceService', deviceService); 

    deviceService.$inject = ['$http', '$q', '$cordovaDevice', 'messagesSqlLiteService']; 

    function deviceService($http, $q, $cordovaDevice, messagesSqlLiteService) { 
      var url = 'http://example.com/api/device/'; 
      console.log("PushNotification Registration"); 
      var push = PushNotification.init({ 
       "android": {"senderID": "15971xxxxxxx"}, 
       "ios": {"alert": "true", "badge": "true", "sound": "true"}, 
       "windows": {} }); 

      push.on('registration', function(data) { 
       console.log(data.registrationId); 
       console.log("data.registrationId"); 
       var model = $cordovaDevice.getModel(); 
       var platform = $cordovaDevice.getPlatform(); 
       var uuID = $cordovaDevice.getUUID(); 
       var version = $cordovaDevice.getVersion(); 
       var data = { "model": model, "platform": platform, "registrationId": data.registrationId, "DeviceId": uuID , "version ": version }; 
       console.log(JSON.stringify(data)); 
       $http.post(
        url, 
        JSON.stringify(data), 
        { 
         headers: { 
          'Content-Type': 'application/json', 
          'Accept': 'application/json' 
         } 
        } 
       ).success(function() { 
        console.log("Device Info submitted"); 
       }).error(function(data, status) { 
        console.error('Device Info error', status, data); 
       }); 
      }); 

      push.on('notification', function(data) { 
       navigator.notification.alert(data.title+" Message: " + data.message, function(){}, "", ""); 
       messagesSqlLiteService.insert(data); 
       location.href = '#messages'; 
      }); 

      push.on('error', function(e) { 
       console.log(e.message); 
      }); 
    } 

    // create an injector 
    var $injector = angular.injector(['samplePushApp']); 
    $injector.invoke(deviceService); 


} 
})(); 
です

解説

アップデートとして。コードに間違いがないことが判明しました。 2つの主な問題がありました。

は、私は最終的に(macincloudから)マックを借りて

phonegap build ios 

で最初の問題をプロジェクトを構築しました:私はビットコードでコンパイルすることができませんでしたプッシュプラグインを意味し、このエラー

Build Error 
=========== 
ld: '/Users/user000516/Downloads/my-app - ioS/platforms/ios/samplePush/Plugins/phonegap-plugin-push/GCM/Libraries/libGGLCloudMessaging.a(GGLContext+CloudMessaging.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

を得ました有効になりました。私はxCodeのビットコードを無効にし、プロジェクトは正常に構築されました。 Phonegap Buildのビルドに失敗した理由がこれであるかどうかはわかりません。

第2の問題:私がXCodeから行ったもう1つのことは、[機能]タブを取得してプッシュ通知機能を有効にすることでした。

これらの変更後、コードは期待通りに機能しました。

・ホープこれは誰か

+0

こんにちは!私は同じ問題を抱えています。私は私のproject.pbxprojファイルでビットコードを無効にしようとしましたが、まだ動作していません。別の解決策がありますか?あらかじめありがとうございます – eliangela

+1

こんにちはeliangelaあなたもphonegapプッシュプラグインを使用しています。あなたはどんなエラーを出していますか? – alphacoder

+0

はい。 Phonegap Push Pluginを使用しています。しかし、私は何のエラーもありません:( 私のiPhoneは登録されておらず、トークンを返さない – eliangela

答えて

0

ないで、私は私の質問を編集したり、RATHER答えとしてソリューションを提供する必要がある場合SUREに役立ちます。

ソルブード

アップデートとして。コードに間違いがないことが判明しました。 2つの主な問題がありました。

私は最終的に(macincloudから)マックを借りて

phonegap build ios 

第1号プロジェクトを構築しました:私はこのエラー

ビルドエラーを得た

ld: '/Users/user000516/Downloads/my-app -   ioS/platforms/ios/samplePush/Plugins/phonegap-plugin-push/GCM/Libraries/libGGLCloudMessaging.a(GGLContext+CloudMessaging.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64 

打ち鳴らす:エラー:リンカーコマンドは終了コード1で失敗しました(呼び出しを見るために-vを使用します)

どのmプッシュプラグインがビットコードを有効にしてコンパイルできなかったことを示します。私はxCodeのビットコードを無効にし、プロジェクトは正常に構築されました。Phonegap Buildのビルドに失敗した理由がこれであるかどうかはわかりません。

第2の問題:私がXCodeから行ったもう1つのことは、[機能]タブを取得してプッシュ通知機能を有効にすることでした。

これらの変更後、コードは期待通りに機能しました。

希望すると助かります

関連する問題