Проблема с регистрацией типа файла через UTI - PullRequest
2 голосов
/ 28 июля 2010

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

Для этого я добавил экспортированное объявление UTI в свой Info.plist следующим образом:

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeDescription</key>
        <string>MyApp License File</string>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.xml</string>
        </array>
        <key>UTTypeIdentifier</key>
        <string>com.mycompany.myapplicense</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>myapplicense</string>
            </array>
        </dict>
    </dict>
</array>

Однако, когда я дважды щелкаю по файлу с таким расширением,не открываются в MyApp, и MyApp также не отображается в качестве одного из рекомендуемых приложений для открытия файлов этого типа.Кроме того, при просмотре панели «Информация» для файла описание типа файла, как указано выше, не отображается.

Может кто-нибудь увидеть что-то не так с моей декларацией UTI, или я пропустил что-то еще?

Спасибо

Ответы [ 2 ]

3 голосов
/ 28 июля 2010

Вам также нужна декларация CFBundleDocumentTypes.

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFile</key>
        <string>MyAppLicenseIcon</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>NSDocumentClass</key>
        <string>MyAppLicenseHandler</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.mycompany.myapplicense</string>
        </array>
    </dict>
</array>
0 голосов
/ 23 апреля 2012

Чтобы добавить к этому, в моем случае я должен был также убедиться, что я ввел правильный формат UTI как таковой:

        <key>UTTypeConformsTo</key>
    <array>
        <string>public.xml</string>

мой файл является простым .plist, он по-прежнему соответствуетв XML.Вам необходимо убедиться, что вы знаете, какому формату UTI вы соответствуете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...