2016-04-11 19 views
5

iOS 9.3のリリース後にCloudKit CKSubscriptionプッシュ通知を受け取っていないiOS 9.0のiPod Touchがあります。CloudKit iOS 9.0 didReceiveRemoteNotificationが呼び出されなかったのは、iOS 9.3がリリースされた後です。

iOS 9.3のiPadは、アプリの同じビルドを使用して通知を受信して​​います。

ここで何が起こっているのか分かりますか?特定のCloudKitのバージョンで、古いバージョンの通知をプッシュしなくなりましたか?

私のiPod Touchでアプリを削除して再インストールすると、プッシュ通知を許可するには「許可」をタップしますが、CloudKitダッシュボードでレコードを変更した場合、iPadのみがプッシュ通知を受け取り、didReceiveRemoteNotificationは私のiPod Touchでさえ呼ばれました。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

     // Register for push notifications 
     let notificationSettings = UIUserNotificationSettings(forTypes: UIUserNotificationType.Alert, categories: nil) 
     application.registerUserNotificationSettings(notificationSettings) 
     application.registerForRemoteNotifications() 

     return true 
} 

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { 
} 
+0

あなたの問題は変わったようですが、 'notificationInfo.soundName =" "'を設定しようとしても害はありません。これは、サブスクリプションを作成するときの 'CKNotificationInfo'オブジェクトです。古いサブスクリプションを削除して新しいサブスクリプションを作成する必要があります。 – user1046037

+0

こんにちは、ご協力いただきありがとうございます。それは非常に奇妙ですが、私は新しいバージョンのiOSでこの問題にぶつかる危険はないので、その底に到達したいと思います。古いサブシステムを削除するのではなく、プライベート・データベースに「TestType」レコード・タイプの新しいサブタイプを作成しました。その後、ダッシュボードに新しいTestTypeレコードを作成し、iPadでは通知が受信されますが、iPod touchでは受信されません。もう一度、問題は依然として続きます。私もあなたが言ったようにsoundName = ""を試みました。 – powertoold

+0

あなたのiPod touchであなたのアプリの設定>通知>をチェックすることはできますか?私はそれがオフになっている通知の設定になる可能性があると感じる – user1046037

答えて

0

解決策はかなりトリッキーでした。私のXcodeプロジェクトには、アプリケーションアイコン(デバイスに表示されている)の名前を持つ* .entitlementsファイルがありました。

マイファイル:: ABC.entitlements(私のアプリはデバイス上でABCとして表示されます)

私のプロジェクトの名前: XYZ

しかし、私のプロジェクトの名前は、この* .entitlementsファイルとは異なります

エンタイトルメントファイルの名前をXYZ.entitlementsに変更しようとしましたが、Xcodeは既にXYZ.entitlementsという名前のファイルがあるという警告を表示しました。私のSupporting Filesフォルダに* .entitlementsファイルがもう1つありました。このエンタイトルメントファイルにはiCloud設定がありませんでした。

私のビルド設定では、エンタイトルメントファイルのパスがABC.entitlementに設定されていますが、何らかの理由で自分のiPod TouchのiOS 9.0.1でXYZを使用しているようです.entitlementsファイル(私の前提)。

私のプロジェクトからXYZ.entitlementsファイルを削除し、ターゲットメンバーシップにABC.entitlementsファイルも含めました。その後、私のiPod Touchはもう一度CloudKitの通知を受け取ることができました。

ありがとうございました!

関連する問題