iOSアプリケーションの排他的なUTIタイプを作成/エクスポートしようとしています(InstagramがUTI com.instagram.exclusivegramを排他的に処理する方法とよく似ています)。排他的iOS UTI
基本的に、com.photoapp.photoは、写真を撮るために登録された任意のアプリで写真を開くことができるようにするには、アプリが使用できるものにします(Instagramのcom.instagram.photoに似ています)。次に、com.photoapp.exclusiveを私のアプリケーションでのみ開くことができるようにします(com.instagram.exclusivegramに似ています)。
com.photoapp.exclusiveを使用していても、UIDocumentControllerはPhotoAppまたはDropBoxのいずれかで開くように要求します。ここでPhotoAppだけにする必要があります。
私はUTIと私が開封能力をチェックするために使用しているサンプルアプリケーションを登録する私のアプリを持っています。私は例のアプリで使用しているコードは以下の通りです:できるだけ早く、次のようなUTIを指定するよう
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeDescription</key>
<string>Exclusive PhotoApp Photo</string>
<key>UTTypeConformsTo</key>
<array>
<string>com.photoapp.photo</string>
</array>
<key>UTTypeIdentifier</key>
<string>com.photoapp.exclusive</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>pae</string>
</dict>
</dict>
<dict>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>pa</string>
</dict>
<key>UTTypeIdentifier</key>
<string>com.photoapp.photo</string>
<key>UTTypeDescription</key>
<string>PhotoApp Photo</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.png</string>
<string>public.jpeg</string>
</array>
</dict>
</array>
<key>UIFileSharingEnabled</key>
<true/>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>LSItemContentTypes</key>
<array>
<string>com.photoapp.exclusive</string>
<string>com.photoapp.photo</string>
</array>
<key>CFBundleTypeName</key>
<string>Photo</string>
<key>LSHandlerRank</key>
<string>Default</string>
</dict>
</array>
ファイル形式が 'public.png'や' public.jpeg'などに準拠するように指定するとすぐに、これらのUTIファイルを開くことができるように指定したすべてのアプリケーションで開くことができます。 'UTTypeConformsTo'配列を削除すると、問題が解決されます。 – Greg
つまり、 'com.photoapp.exclusive'が' com.photoapp.photo'に準拠していると指定しないでください。 'com.photoapp.photo'のままにしておき、' com.photoapp.exclusive'に準拠しないようにしてください。 – Greg
ありがとう!私はあなたの答えを受け入れることができるようにコメントしたいですか? – joshholat