Я работаю над приложением iOS (iPhone/iPad), которое выполняет вызов веб-службы, где одним из параметров является файл .pfx.
Я хотел бы, чтобы пользователь мог импортировать свой собственный файл .pfx в приложение, выбрав его вложение в электронном письме (приложение уже делает это для пользовательского типа файла, записи которого не показаны ниже, но очень похожи) .
В файле Info.plist приложения я добавил запись в тег CFBundleDocumentTypes и одну запись в тег UTExportedTypeDeclarations, как показано ниже. В UTExportedTypeDeclarations я использовал идентификатор «com.rsa.pkcs-12», который является одним из UTI для файлов pfx. Я посмотрел и ввел стандартный тип MIME файла pfx (application/x-pkcs12).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
...
<key>CFBundleDocumentTypes</key>
<array>
...
<dict>
<key>CFBundleTypeName</key>
<string>Personal Information Exchange</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>com.rsa.pkcs-12</string>
</array>
</dict>
</array>
...
<key>UTExportedTypeDeclarations</key>
<array>
...
<dict>
<key>UTTypeConformsTo</key>
<array/>
<key>UTTypeDescription</key>
<string>Personal Information Exchange</string>
<key>UTTypeIdentifier</key>
<string>com.rsa.pkcs-12</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>pfx</string>
<key>public.mime-type</key>
<string>application/x-pkcs12</string>
</dict>
</dict>
</array>
</dict>
</plist>
Это не работает. Когда я открываю вложенный файл pfx в Mail, он открывается в настройках (хочет установить файл как профиль). Конечно, тип файла pfx уже существует в iOS, поэтому нет необходимости делать запись в UTExportedTypeDeclarations; однако удаление этой записи ничего не меняет. То же самое происходит, когда я использую пользовательский идентификатор в обеих записях (вместо «com.rsa.pkcs-12»).
Не хотелось бы заставлять пользователя менять расширение файла вложения. Есть ли способ сказать iOS, чтобы спросить пользователя, открывать ли файл с помощью настроек или моего приложения?