iosアプリプッシュ通知されるデバイスとされないデバイス


現在開発中のアプリでプッシュ通知、通知センターにて通知されるデバイスとされないデバイスがあります。  
以下がテストした条件ですが、考えられる原因を教えて頂けると助かります。  
断定できなくとも可能性として考えられる原因でめ結構です。

通知の仕組み  
①ユーザーが時間を設定  
②サイレントプッシュを通知  
③アプリ側からサーバーにアクセスして更新情報を取得  
④更新情報をプッシュ通知、通知センターへ表示

通知について

アプリ起動時（フォアグランド）  
iphone 6 ◯  
iphone 6- 2 ◯  
iphone 6-3 ◯  
iphone6s ◯  
iphone7 ×  
iphone7 ×

アプリ終了（バックグランド）  
iphone 6 ◯  
iphone 6- 2 ×  
iphone 6-3 ×  
iphone6s ◯  
iphone7 ×  
iphone7 ×

iphoneスリープ（バックグランド）  
iphone 6 ◯  
iphone 6- 2 ×  
iphone 6-3 ×  
iphone6s ◯  
iphone7 ×  
iphone7 ×

バージョン  
iphone 6 10.3.1  
iphone 6- 2 10.3.1  
iphone 6-3 10.2.1  
iphone6s 10.3.1  
iphone7 10.3.1  
iphone7 10.3.1

その他の条件  
全て通知設定はオンになっています  
testflightよりインストール  
合計6台にインストール  
iphone6は3台  
4G回線、wifi環境ともに結果は同じ




1点指摘するとすれば、 `registerForRemoteNotifications`の実行位置でしょうか。

[code]

    if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max) {
        // iOS9以下
        UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
        [[UIApplication sharedApplication] registerForRemoteNotifications];
    } else {
        // iOS10以上
        UNAuthorizationOptions options = UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionSound;
        [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:options completionHandler:^(BOOL granted, NSError * _Nullable error) {
            if (granted) {
                // 通知が許可された or されている場合
                [[UIApplication sharedApplication] registerForRemoteNotifications];
            }
        }];
        [[UNUserNotificationCenter currentNotificationCenter] setDelegate:self];
    }
    
[/code]

iOS10以降は`requestAuthoricationWithOptions`を実行して、ユーザに通知許可アラートを表示するようになっています。  
この結果が`granted`に入ってくるので、ユーザが明示的に通知許可した場合のみ`registerForRemoteNotifications`を実行しましょう。

