Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I register a custom filetype in iOS

I am currently creating a app in which i want to let the user backup their files (plist + m4a). I zip the files and change the extension to a custom one (specifically for my app, say "*.MyBackup"). The user can then either export via email or with iTunes file sharing.

I have already read about CFBundleDocumentTypes but didn't really get what I had to do with them.

The part where i am currently stuck at is how to associate my extension with my app. If the user sends himself an email with the "custom"-zip file he's supposed to be able to open it with my app.

How do I do this and what are "UTExportedTypeDeclarations"?

like image 584
JNK Avatar asked Nov 15 '10 16:11

JNK


People also ask

What file type does iOS use?

ipa file extension is used for Apple iOS application file and . ipsw file extension is used for iPhone, iPad or iPod Touch iOS software firmware update file.

How do you show file extensions on iPhone?

You control that in Finder > Preferences > Advanced, with the “Show all filename extensions” checkbox. Individual files can override the setting, so if an extension isn't doing what you want, select the file, choose File > Get Info, and check or uncheck the Hide Extension checkbox in the Info window.


2 Answers

I hope it's okay if I dump in that part of my projects info.plist without much further explanation. I think it's pretty much self-explanatory.

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array>
            <string>Icon-iPad-doc320.png</string>
            <string>Icon-iPad-doc.png</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>MyAppName File</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <!-- my app supports files with my custom extension (see UTExportedTypeDeclarations) -->
            <string>com.myurl.myapp.myextension</string>
            <!-- and csv files. -->
            <string>public.comma-separated-values-text</string>
        </array>
    </dict>
</array>



<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
        </array>
        <key>UTTypeDescription</key>
        <string>MyAppName File</string>
        <key>UTTypeIdentifier</key>
        <string>com.myurl.myapp.myextension</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>myextension</string>
            <key>public.mime-type</key>
            <string>application/octet-stream</string>
        </dict>
    </dict>
</array>
like image 186
Matthias Bauch Avatar answered Sep 30 '22 13:09

Matthias Bauch


Check out /var/mobile/Library/Preferences/com.apple.LaunchServices.plist.

like image 33
Chuen Avatar answered Sep 30 '22 12:09

Chuen