Tech iOS

iOS13で申請するために押さえておきたいポイント

投稿日:2019年12月5日 更新日:

はじめに

こんにちは、nukkyです。
来年の4月からiOS13での申請が必須になるため、今Xcode10で申請している方もXcode11以上での申請が必要ということで、iOS13で申請するために押さえておいたほうが良さそうなポイントを紹介したいと思います。

presentViewController

presentViewControllerのデフォルトの表示が変更されています。
例えばXcode10で以下のようにModalでViewControllerを表示する場合デフォルトでは全画面表示になっています。

しかし、このままXcode11でプロジェクトを開くと以下のように全画面ではなく少し下がったような表示になります。

この状態が意図してない、全画面表示が必須であるならばデフォルトからFull Screenに変えましょう。そうすればXcode11でも全画面でModalが表示できます。

これはストーリーボードだと目に見えてわかりますがModalの先のViewControllerをxibで用意してコードで遷移している場合、実際にその画面を描画するまで変更に気づかないので注意が必要です。アプリをインストールした時の初回起動で1回だけ出すとか、開発者は普段触らないヘルプなどで使用してたりすることもあると思うので気をつけましょう。

コードで変更する場合は遷移先ViewControllerに以下のスタイルを設定してください。

DeviceToken

APNs(Apple Push Notification Service)を送信する際に必要なDeviceTokenの形式が変更されました。
DeviceTokenはregisterForRemoteNotifications()の実行によって、application(_:didRegisterForRemoteNotificationsWithDeviceToken:)メソッドを通して通知されます。通知されるDeviceTokenはData型であるため、Serverに送信するためには多くの場合、ここからString型に変換する必要があります。
iOS13以前では(deviceToken as NSData).descriptionにて<1xxxxxx5 55xxxxca xxxxx572 00c3xxxx xxxxxxx5 92xxxx90 xxxxxxx7d bxxxxxxa>という文字列が取得できていました。サービスによってはここからで<>と半角スペースを取り除いて送ったり、そのままServerに送信していたりしていたかと思います。
しかし、iOS13以降でNSDataのdescriptionメソッドの返却値が下記のように変更になり{length=32,bytes=0x3dd8xxxxxxxx0be290cxxxxxxxxxx2e0…7xxxxxxxxxxxx0a}形式が大きく変わってしまいiOS13以前で行ってきたDeviceTokenの取得方法では対応できなくなってしまいました。

純粋に文字列部分のみ取得したい場合は、以下の取得方法で「12xxxx6a5xxxxxxxcad80xxxxxxxxxx3b93exxxxxx9xxxxxxx32xxxxxxb83967be」のような文字列が取得できます。

Launch Storyboard

Launch Imagesが廃止され、Launch Storyboardに移行しなくてはなりません。
各端末サイズごとに画像を用意していた方は少し移行が面倒かもしれませんが、基本はLaunch Imagesに使用していた画像を、Launch Storyboard表示するようにViewを作成するだけなので問題ないかと思います。

Dark Mode

これについては、Info.plistでUIUserInterfaceStyleキーにlightを指定することで、アプリ内では常にライトモード扱いとなり回避可能なようですが、あくまで一時しのぎで将来的には対応は必須かと思われます。
この辺りは以前にiOS13ダークモード対応という記事を書いているので参考にしていただければと。

Sign In with Apple

News and Updates より意訳

すでに発行済の Apple ID を使って、ユーザがアプリやウェブサイトに簡単にサインインできるようになります。Sign in with Apple はプライバシーやセキュリティに関する機能が備わっており、アカウントを作成したりサインインしたりするにも、アプリを素早く簡単に操作してもらうにも、優れた方法だと言えます。すべてのアカウントは優れたセキュリティにより2段階認証で保護されており、Apple と言えどもアプリやウェブサイト上でのユーザの行動を追跡することはありません。

Sign in with Apple を使う必要がある場合の基準を App Store Review Guidelines で公開しています。今日から App Store に新規アプリを提出する場合はこのガイドラインに従う必要があります。既存アプリは2020年4月までに従う必要があります。また、ウェブサイトや他のプラットフォームで Sign in with Apple を使う場合のガイドラインも公開しています。

この実装についてもSign in with Appleの実装という記事を書いているので対応が必要そうな方は詳細はそちらで。

さいごに

他にも変更点はあるとは思いますが、やはりメインはDark ModeとSign in with Appleだと思います。

おすすめ書籍

[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus 詳解 Swift 第4版 [改訂新版]Swiftポケットリファレンス (POCKET REFERENCE)

blog-page_footer_336




blog-page_footer_336




-Tech, iOS
-, ,

執筆者:

         

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

iOSでFABを表現する「material-components」「Floaty」

1 はじめに2 Floating Action Button(FAB)とは3 Material Components3.1 導入方法3.2 FABの配置3.3 FABをタップした時の処理4 Float ...

swift

SwiftでPDFを表示する(iOS11以前対応版)

1 はじめに1.1 前提条件2 実装3 さいごに はじめに こんにちは、nukkyです。 SwiftでPDFを表示したい場合iOS11以降ならPDFKitがありますが、自分の様にまだ11以前のOSにも ...

Swift5.5での非同期処理async/awaitの追加

1 はじめに2 async/await2.1 実装2.2 シーケンス実行2.3 パラレル実行2.4 メインスレッド問題3 さいごに4 おすすめ書籍 はじめに Xcode13がリリースされ、Swift5 ...

【Swift】whose view is not in the window hierarchyで画面遷移に失敗する

1 はじめに2 エラーの概要3 今回出会った事象4 行った対応5 さいごに6 おすすめ書籍 はじめに こんにちはsuzukiです。今回は備忘としてwhose view is not in the wi ...

CollectionViewの並び替えを実装する

1 はじめに2 実装方法3 手順4 ロングタップの実装5 並び替えを可とする6 並び替え時のデータ処理7 次回表示時8 他に9 さいごに10 おすすめ書籍 はじめに こんにちは。Yossyです。 前回 ...

フォロー

follow us in feedly

blog-page_side_responsive

2019年12月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。