2015-10-14 5 views
5

iOSアプリケーション用のiCloudドライブエクスポート機能を開発しました。 Mac OS X 10.11のiCloud DriveフォルダのパブリックAppContainerFolderで、エクスポートされたドキュメントを見ることができます。MacOSではiCloudドライブAppFolderは表示されますが、iOSではiCloudドライブアプリケーションでは無効になっているのはなぜですか?

iOSでは、iCloudドライブアプリでAppContainerFolderしか見ることができません。それは無効になっており、そのフォルダを開くことができない、またはその中の文書を見ることができません。 iCloudのドライブ設定から

Image of the disable folder in the iOS iCloud Drive App

、私は、エクスポートしたファイルをiCloud上のドライブにそのAppContainerFolderであることがわかります。

Image of the AppContainerFolder inside the iCloud settings

誰でもiCloudのドライブで、このような問題がありましたか?

私はアプリ内で2つのアプリケーションコンテナを使用しています.1つはエクスポートのための "iCloud.com ..."識別子を持ち、もう1つはEnsembles-CoreData同期のための "TeamIdentifier.com ..."識別子です。 私は明示的にメソッドを使用してコンテナのURLを使用します。

[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:@"iCloud.com..."] 

私はすでにだけTeamIdentifier-コンテナを使用しようとしましたが、AppContainerFolderの視認性に変化はなかったです。

私はBundleVersionをバンプしようとしましたが、私はInfo.plist NSUbiquitousContainers設定で遊んでいました。また、TestFlightを通じて外部テスタにBuildsを提供し、開発デバイスと何か関係があるかどうかを確認しました。

新しいBundleVersionを使ってAppStoreに新しいバージョンをリリースするという唯一のことは、まだ開発していないアプリとは何かがあるかどうかを確認することです。

ヒントとヒントを歓迎します。

+0

を使用すると、アプリのInfo.plistに公開へのアクセス権を設定することがありますか? (NSUbiquitousContainerIsDocumentScopePublic = YES) –

+0

NSUbiquitousContainers \t \t \t iCloud.au.com.ossh。AppNameは \t \t \t \t \t NSUbiquitousContainerIsDocumentScopePublic \t \t \t \t \t \t NSUbiquitousContainerSupportedFolderLevels \t \t \t なし \t \t \t

+1

こんにちはダンカンは、あなたのヒントをありがとうございました、しかし、はい、私はそれやった: iCloud.com ... \t \t \t \t \t NSUbiquitousContainerIsDocumentScopePublic \t \t \t \t \t \t NSUbiquitousContainerName \t \t \t TaptileApps \t \t \t NSUbiquitousContainerSupportedFolderLevelsので \t \t \t 一つ \t \t Bernd

答えて

6

アップルデベロッパーテクニカルサポートで明確になったので、私は今問題を解決することができました。

私のアプリでは、エクスポートされた2つのUTI(独自のバックアップファイル)が宣言されているため、これらのUTI以外のファイルがそのフォルダに保存されると、iCloudコンテナはデフォルトでNOTが有効(灰色)になります。 私たちのアプリはPDFとCSVを作成することができますが、これらのファイルタイプはinfo.plistで「ドキュメントタイプ」として宣言されていません。

PDFとCSVのドキュメントタイプをinfo.plistに追加すると、iCloudコンテナがiCloudドライブアプリにすぐに表示されます。あなたの参考のために

、ここでのInfo.plistの抽出物である:

... 
<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeIconFiles</key> 
     <array/> 
     <key>CFBundleTypeName</key> 
     <string>Adobe PDF</string> 
     <key>CFBundleTypeRole</key> 
     <string>Viewer</string> 
     <key>LSHandlerRank</key> 
     <string>Alternative</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.adobe.pdf</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeIconFiles</key> 
     <array/> 
     <key>CFBundleTypeName</key> 
     <string>CSV</string> 
     <key>CFBundleTypeRole</key> 
     <string>Viewer</string> 
     <key>LSHandlerRank</key> 
     <string>Alternative</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.comma-separated-values-text</string> 
     </array> 
    </dict> 
</array> 
... 
+0

それは迷惑なようです。私のアプリは、いくつかの.txtファイルをクラウドコンテナに配置します。これらは、デバイス間で共有したい設定ファイルです。私のアプリが一般的に.txtファイルを開くことができるとは言いません。私は可能な解決策は、これらの私の独自の拡張機能を発明し、私の輸出されたUTIにそれを追加することです。とにかく、情報をありがとう。 – btschumy

+0

@btschumy私のエクスポートファイルには独自の拡張子があり、エクスポートされたUTIにこれらを追加しましたが(私もそこにエラーがありましたが)、わかったように私のアプリができない場合でもdocumentTypesを追加する必要がありますエクスポートされたPDFを開きます。そして、はい、それは迷惑なことです...より良い間違って、今私たちのアプリは、PDFを開くことができるアプリケーションのリストに表示されます。私はアップルバグを更新する必要がありますが、私はあまりにも忙しいです。おそらく、Appleはその実装を変更します。とにかく、まずDocumentTypesを使わずに試してみましょう。 – Bernd

+0

ここのヒントをありがとう。私はあなたがしたことに従ったが、わずかに異なる解決策を見つけた。私は私のユビキタス・コンテナの中に1つのドキュメント・タイプ、つまり私自身のドキュメント・タイプしか持っていません。だから私はCSVやPDFを追加していない - 私のアプリはそれらと何もしないので。 CFBundleDocumentTypes配列(ドキュメントタイプ用に1つのエントリ)、NSUbiquitousContainers dict、UTExportedTypeDeclarations配列を持つ必要があることがわかりました。 iPadでアプリを実行した後、自分のフォルダがiCloudドライブアプリ内でまだ無効になっていることに気付きました。 iCloudドライブアプリを再起動して、フォルダが有効になりました。 –

0

ポストWhy my app is not shown in iCloud Drive Folderは、公開されているiCloudフォルダが完全に動作する前に、あなたのアプリを承認して公開する必要があると思われます。

+0

そうですね、私はベータテストのアプリを持っていて、そのコンテナは見えます。 –

+0

@DuncanGroenewaldありがとうございます - あなたは大丈夫です。私はちょうどこれを試みた。既存の古いスタイルのコンテナID - NSUbiquitousContainerIsDocumentScopePublicをfalseからtrueに変更し、コンテナがiCloudドライブアプリに表示され、ファイルにアクセスできます。 iOSとOS Xの間のNSUbiquitousContainerNameとNSUbiquitousContainerIsDocumentScopePublicの同期はかなり速いようです。毎回CFBundleVersionをバンプします。 –

+0

@Michaelあなたのヒントをありがとう、私はこの質問を既に見ていて、iCloudドライブエクスポート機能を備えた最初のバージョンをリリースしました。しかし、これは何もしていないと思われます。アップルのサーバー上でiCloudを「魔法」にしているのであれば、Appleに技術的な要請をしなければならないようだ。 – Bernd

関連する問題