【问题标题】:Importing pfx file into iOS application将 pfx 文件导入 iOS 应用程序
【发布时间】:2012-05-09 00:26:45
【问题描述】:

我正在开发一个执行 Web 服务调用的 iOS (iPhone/iPad) 应用程序,其中一个参数是 .pfx 文件。

我希望用户能够通过选择电子邮件中的附件将自己的 .pfx 文件导入应用程序(应用程序已经为自定义文件类型执行此操作,其条目未在下面显示,但非常相似)。

在应用程序的 Info.plist 文件中,我在 CFBundleDocumentTypes 标记中添加了一个条目,在 UTExportedTypeDeclarations 标记中添加了一个条目,如下所示。在 UTExportedTypeDeclarations 中,我使用了标识符“com.rsa.pkcs-12”,这是用于 pfx 文件的 UTI 之一。我查找并输入了 pfx 文件的标准 MIME 类型 (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>

这不起作用。当我在 Mail 中打开 pfx 文件附件时,它会在“设置”中打开(它希望将文件安装为配置文件)。当然,pfx 文件类型在 iOS 中已经存在,因此实际上不需要在 UTExportedTypeDeclarations 中进行条目;但是,删除此条目没有任何区别。当我在两个条目中使用自定义标识符(而不是“com.rsa.pkcs-12”)时,会发生相同的行为。

我不想强迫用户更改附件文件的扩展名。有没有办法让 iOS 询问用户是用设置打开文件还是用我的应用打开文件?

【问题讨论】:

    标签: iphone ios ipad pfx uti


    【解决方案1】:

    您可以在不重命名文件扩展名的情况下使用共享扩展名

    【讨论】:

      【解决方案2】:

      对于 .pfx 等特殊文件,这似乎是不可能的。

      我已更改我的应用程序,使其接受具有特殊扩展名的文件。该应用程序指示用户将 .pfx 文件的扩展名更改为特殊扩展名,然后通过电子邮件将其导入到应用程序中。

      【讨论】:

      • 现在看来有可能,Cisco AnyConnect 和 Junos pulse 已经在做同样的事情
      猜你喜欢
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 2012-02-25
      • 1970-01-01
      • 2015-01-04
      • 2014-07-12
      • 2013-04-22
      相关资源
      最近更新 更多