2012-04-28 7 views
5

Ich arbeite an einer iOS (iPhone/iPad) -App, die einen Web-Service-Aufruf ausführt, bei dem einer der Parameter eine PFX-Datei ist.Importieren von PFX-Datei in iOS-Anwendung

Ich möchte für den Benutzer in der Lage sein, seine eigene .pfx-Datei in die App zu importieren, indem er seinen Anhang in einer E-Mail auswählt (die App tut dies bereits für einen benutzerdefinierten Dateityp, dessen Einträge unten nicht angezeigt werden sind sehr ähnlich).

In der Datei Info.plist der Anwendung habe ich einen Eintrag im Tag CFBundleDocumentTypes und einen im Tag UTExportedTypeDeclarations hinzugefügt, wie unten gezeigt. In den UTExportedTypeDeclarations habe ich für den Bezeichner 'com.rsa.pkcs-12' verwendet, welches eines der UTIs für pfx-Dateien ist. Ich habe nachgeschlagen und den Standard-MIME-Typ einer PFX-Datei (application/x-pkcs12) eingegeben.

<?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> 

Dies funktioniert nicht. Wenn ich einen pfx-Dateianhang in Mail öffne, öffnet er sich in Einstellungen (er möchte die Datei als Profil installieren). Natürlich existiert der pfx-Dateityp bereits in iOS, daher sollte es eigentlich nicht notwendig sein, einen Eintrag in UTExportedTypeDeclarations zu machen; Das Entfernen dieses Eintrags macht jedoch keinen Unterschied. Das gleiche Verhalten tritt auf, wenn ich eine benutzerdefinierte Kennung in beiden Einträgen (anstelle von "com.rsa.pkcs-12") verwende.

Ich möchte nicht den Benutzer zwingen, die Erweiterung der Datei des Anhangs zu ändern. Gibt es eine Möglichkeit, wie ich iOS anweisen kann, den Nutzer zu fragen, ob er die Datei mit Einstellungen oder meiner App öffnen soll?

Antwort

3

Es sieht so aus, als ob dies für eine spezielle Datei wie eine .pfx nicht möglich ist.

Ich habe meine App so geändert, dass sie Dateien mit einer speziellen Erweiterung akzeptiert. Die App weist den Benutzer an, die Erweiterung der .pfx-Datei in die spezielle Erweiterung zu ändern, bevor er sie per E-Mail an ihn sendet, um sie in die App zu importieren.