Elevator Pitch
iOSアプリで外部ストレージとデータをやり取りする際、UIDocumentPickerViewControllerを利用するのが一般的です。しかし、独自のUIを構築したり、デバイスの接続を検知して動作をカスタマイズしたい場合、既存のAPIでは十分に対応できないことがあります。 本セッションでは、外部ストレージへの書き込みにAVExternalStorageDeviceDiscoverySession、読み込みにImageCaptureCore.frameworkを使うことで、より柔軟なストレージ対応を実現できることをご紹介します。
Description
iOSアプリでUIDocumentPickerViewControllerを利用する以外に、外部ストレージとやりとりをすることについての情報がほとんど見つかりませんでした。 特にアプリ専用のストレージと連携したい場合には、通常ExternalAccessory.frameworkを利用することが検討に上がりますが、こちらはMFiの登録が必要となり複雑になってしまいます。 また、USB-C対応の端末ではMFiが必要無い場合があり、まさしく今回のユースケースでは不要でした。
なんとか情報を得られないかと、Apple Developerのフォーラムにも投稿してみましたが、USBDriverKitを利用する方法が紹介され、それ以上の情報は得られませんでした。 https://forums.developer.apple.com/forums/thread/758598
しかし、とある機会にAppleの方にも協力してもらいながらImageCaptureCore.frameworkを見つけることができ、使い方を調べることで求めていた機能を作ることができました。