2017-07-30 8 views
0

少なくとも、メタデータの観点から見ると、自分のアプリはiCloudで正常に動作します。これらのドキュメントを開いて保存し、iOS 10.xと11の両方で(ファイルアプリを通じて)iCloudドライブで見ることができます。iCloudドライブ内のドキュメントから起動しないアプリケーション

しかし、それらをiCloudドライブで表示すると、アプリを起動するのではなく、ドキュメントを(正確に)MyAppドキュメントとして識別するビューが表示されます。しかし、私がPages文書をタップすると、Pagesが起動し、文書が開かれます。

私には何が欠けていますか?私は環境設定を正しく設定していませんか?

さらに、「共有」 - >「人を追加」を選択すると、ドキュメントが他のiOS 11デバイスに正しく送信され、送信されたメッセージに自分のアイコンが使用され、MyAppドキュメントとして識別されます。しかし、(メッセージの)共有メッセージは、MyAppではなくFilesでドキュメントを開くように要求し、ファイルをMyAppコンテナに配置するのではなく、metadataQueryが見つけられないレベルの1つ上に配置します。 Pagesドキュメントと同じシーケンスでPagesを開き、ドキュメントをPagesコンテナに配置します。この場合も、Filesはドキュメントのアイコンを正確に表示し、それをMyAppドキュメントとして識別しますが、それは私のアプリケーションに接続していないようです。

説明は意味がありますか?私が正しくやっていないことや、理解していないことは何ですか?どんな洞察にも感謝します!

答えて

1

秘密を見つけました。 plistには、文書を開く要求を受け取ることができるプロパティが必要です。そのプロパティはLSSupportsOpeningDocumentsInPlaceであり、デフォルトでNOに設定されているブール値ですが、適切なAppDelegate関数を呼び出すにはYESに設定する必要があります。それを追加したとき(サンプルアプリケーションのShapeEditで見つけた)、iCloud Driveで自分のアプリのドキュメントをタップするとアプリが起動し、自分のコードでその関数を呼び出してドキュメントを開きました。