2015-04-28 33 views
1

我正在使用PushSharp在我的應用程序中發送推送通知。它爲Android工作正常。失敗:PushSharp.Apple.ApplePushService - >拋出類型'PushSharp.Apple.NotificationFailureException'的異常

對於蘋果iOS - 它不起作用,我們正在使用帶密碼的開發證書文件。 最初我們使用了錯誤的密碼,然後我們發現問題並修復。

它越來越波紋管的錯誤消息

Channel Created for: PushSharp.Apple.ApplePushService Failure: PushSharp.Apple.ApplePushService -> Exception of type 'PushSharp.Apple. 
NotificationFailureException' was thrown. -> {"aps":{"alert":"Hello World!","badge":7,"sound":"default"}} 

錯誤狀態碼:8

錯誤說明:無效的令牌

軟件,即可通過我們的供應商之一開發和推送通知我們從我們這邊做。 供應商使用一些正在工作的PHP代碼發送推送通知。 要推動他們使用PHP服務器Laravel框架和庫通知:https://github.com/davibennun/laravel-push-notification

我已經安裝了該應用程序我的iPhone設備上,他們發送測試推送通知它的正常工作。

但我試圖發送使用Pushsharp框架它不工作。

他們說開發證書文件是正確的,它工作正常。

我已經嘗試了所有可能的選項從我的最後,但我沒有得到任何線索爲什麼它的行爲奇怪與開發證書.p12。請幫我解決這個問題。我們用於發展

代碼:

var push = new PushBroker(); 
    var appleCert = File.ReadAllBytes(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "xxxxPass.p12")); 
    push.RegisterAppleService(new ApplePushChannelSettings(appleCert, "xxxx12345")); //Extension method 
    push.QueueNotification(new AppleNotification() 
           .ForDeviceToken("a51b4e80d12df0946d10413991ce1f7ab57c05bab8a292fc703ded34ce77b91f") 
           .WithAlert("Hello World!") 
           .WithSound("default") 
           .WithBadge(7)); 

回答

1

這個問題一直因爲無效的證書文件。

以下步驟在我的iOS應用程序中完成。

  1. 創建一個新的Xcode項目Single View Application with Object-c Class。
  2. Drog和Droped WebView控件並映射到視圖控制器。
  3. 在「ViewController.h」文件中我添加了下面的代碼。 @property(nonatomic,strong)IBOutlet UIView * site;

  4. 在下面的代碼中添加了「AppDelegate.h」文件。

  • (無效)viewDidLoad中{[超級viewDidLoad中];

NSURL * URL = [NSURL URLWithString:@」 https://www.xxxxx.com「]; NSURLRequest * requestURL = [NSURLRequest requestWithURL:url];

[_site loadRequest:requestURL]; }

  1. 在「AppDelegate.m」文件中我添加了下面的代碼。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Register for Remote Notifications 
    if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) 
    { 
     // iOS 8 Notifications 
     [application registerUserNotificationSettings:[UIUserNotificationSettings 

settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) 類別:無]];

 [application registerForRemoteNotifications]; 
    } 
    else 
    { 
     // iOS < 8 Notifications 
     [application registerForRemoteNotificationTypes: 
     (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)]; 
    } 

    return YES; 
} 
  • 在XXXX開發蘋果帳戶 - 創建了一個新的應用程序ID 名稱:XXX 包ID:啓用發展com.xxxxdubai.xxxx 推送通知。 使用以下步驟創建新的開發SSL證書。 使用CRS文件創建證書鑰匙串訪問 - >證書助理 - >從證書頒發機構請求證書...生成CertificateSigningReq ...請求文件。 在iOS Cerfiicate文件下載上載的CRS文件並生成。 com.xxxxdubai.xxxx 類型:
  • 它下證書開發部分 名稱自動創建的APN發展的iOS

  • 然後創建臨時配置文件發展 名稱: XXXX發展 類型:iOS開發 應用程序ID:選擇XXXX應用程序ID 證書:選擇XXXX iOS開發 設備:選擇我velus-iPhone設備
  • 已成功生成供應配置文件。

    1. 然後我確實已將Provisioning配置文件添加到Keychain訪問登錄並導出帶有密碼的apns.dev.cert.p12文件。
    2. 在Xcode APP項目構建設置被更改爲所選擇的供應配置文件(一個我沒有出口和註冊)
    3. 選擇模擬器作爲我your's-iPhone設備並運行它的成功安裝項目,並共進午餐的應用我移動。
    4. 自動從應用程序中顯示的第一次警報消息,用於向APNS服務器註冊推送通知,並接收並記錄新的設備令牌以顯示在調試區域中。
    5. 使用新證書apns.dev.cert.p12與PushShap框架進行測試,新設備ID推送通知成功工作。
    相關問題