Swift アプリ間のファイル連携について

メールなどほかアプリから呼び出す時について

f:id:happy_teeth_ago:20180927163924p:plain:w300

定義した拡張子ファイルだけExportメニューに表示される

アプリのinfo タグにて設定

conform toはアップルのドキュメントで確認

developer.apple.com

exportのUTTypeTagSpecification

developer.apple.com

あとはAppDelegate の openURLで受け取る処理を書く。

func application(_ app: UIApplication, open inputURL: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {

アップルのサポートされているドキュメント見つけたので追加しておきますね。

https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app/setting_up_a_document_browser_app

加筆 どのブログ見ても、解決しか書いていなくて、困ることが多々ある。 なぜそうなるのかの理由も書いていきたい。

f:id:happy_teeth_ago:20181009085041p:plain

CFBundleTypeName

CFBundleTypeNameキーは、メールなどの他アプリから開く時、画面上に表示するために使用されます。 InfoPlist.stringsファイルに含めることによってローカライズできます。 CFBundleTypeIconFileは、このタイプのドキュメントを画面上に表示するために使用されるアイコンイメージを含むファイルを識別します。

f:id:happy_teeth_ago:20181009085520p:plain

Editor

アプリケーションは、指定されたタイプの文書を読み取り、提示し、操作し、保存することができます。

Viewer

アプリケーションは、指定された型のドキュメントを読み込んで表示できますが、操作や保存はできません。

None

アプリケーションは、指定されたタイプの文書に対しては操作できません。このロールは、抽象名やアイコンファイルなど、アプリケーションが開くことができないドキュメントタイプに関する情報を宣言するのに便利です。