APNsの設定ーXcode絡みと”デバイストークン”取得確認
MBPのmacOS「Mojave」から「Catalina」にアップグレードし、”タイムマシンにお願い♪”で無事復元でけて、😌とした川上でした。
復元で、「Mojave」でいろんな登録や垢絡みも繋がれてつんなり使えた、ラッキー!。
 「Catalina」で、各アプリの動作確認でxcode11も通過でけました。
で、Myアプリ”NonClock”のxcodeでのAPNs絡み設定。
 xcode10とxcode11のメニュで若干の差異がありました。
ついでに、”NonClock”アプリのSwiftLanguageやTargetの確認。
 ![]()
 ![]()
ちなみに、手持ちのテスト実機のiOS Verは、
 ・iPhone6+と6 : 12.4.2
 ・iPhoneXR : 13.1.2
 でした。
続いて、(やっと。。)APNsにリクエストして”デバイストークン”を取得するヤツです。
 【概要】
 📱”NonClock”  ーーー プッシュ通知許可リクエスト ーー>☁️APNs
 ↓
 📱”NonClock” <ーーー ”デバイストークン”受信 ーー ☁️APNs
まず、APNsにリクエスト文です。 まだ、 debug用なので、ホネ筋だけなのですよ・・・ね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35  |    // MARK: - ---- APNs 1 ---     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool     {         print(debug:"--- didFinishLaunchingWithOptions --- ")         // デバイストークンの要求         if #available(iOS 10.0, *){             print(debug:"--- didFinishLaunchingWithOptions >= 10.0  --- ")             /** iOS10以上 **/             let center = UNUserNotificationCenter.current()             center.requestAuthorization(options: [.alert, .badge, .sound]) {granted, error in                 if error != nil {                     // エラー時の処理                     print(debug:"--- デバイストークンの要求  Error !!--- ")                     return                 }                 if granted {                     print(debug:"--- デバイストークンの要求  --- ")                     // デバイストークンの要求                     UIApplication.shared.registerForRemoteNotifications()                 }             }         } else {             /** iOS8以上iOS10未満 **/             //通知のタイプを設定したsettingを用意             let setting = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)             //通知のタイプを設定             application.registerUserNotificationSettings(setting)             //DevoceTokenを要求             UIApplication.shared.registerForRemoteNotifications()         }         // MARK: アプリが起動されるときに実行される処理を追記する場所         return true     }  | 
次は、受信分とLogの確認ですwね・・
ではでは。



