Импорт файла pfx в приложение iOS

Я работаю над приложением 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, чтобы спросить пользователя, открывать ли файл с помощью настроек или моего приложения?


person bgh    schedule 28.04.2012    source источник


Ответы (2)


Похоже, это невозможно для специального файла, такого как .pfx .

Я изменил свое приложение, чтобы оно принимало файлы со специальным расширением. Приложение инструктирует пользователя изменить расширение файла .pfx на специальное расширение, прежде чем отправить его себе по электронной почте для импорта в приложение.

person bgh    schedule 09.05.2012
comment
Похоже, теперь это возможно, Cisco AnyConnect и Junos pulse уже делают то же самое. - person iSpark; 15.02.2019

Вы можете использовать Share Extension без переименования расширения файла.

person iSpark    schedule 17.02.2019