Почему я не могу зарегистрировать приложение iOS для обработки типа файла изображения?

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

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeName</key>
            <string>Scary Bug Document</string>
            <key>LSHandlerRank</key>
            <string>Alternate</string>
            <key>CFBundleTypeRole</key>
            <string>None</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.image</string>
            </array>
        </dict>
    </array>

Я заметил, что я могу зарегистрироваться для других типов файлов, таких как текст (изменение public.image to public.text), но он просто не будет работать с изображениями ("Open In .."меню не показывает мое приложение).

что может быть причиной этого, и как я могу это исправить?

7 ответов


теперь можно открывать изображения из почтового приложения в iOS 7, это просто несколько запутанно:

нажмите и удерживайте изображение. Нажмите на быстрый взгляд, чтобы изображение стало полноэкранным. Коснитесь изображения, чтобы отобразить верхнюю панель инструментов. Нажмите кнопку Открыть в правом верхнем углу. Прокрутите список и найдите свое приложение.

Не забудьте настроить типы документов пакета для типов изображений, которые вас интересуют.


Dimitri Bouniol ответ, что он работает в iOS 7 через быстрый взгляд, является правильным. Следующие дополнения к my in info.plist ниже, как я получил его, чтобы работать для моего приложения. До сих пор не выяснили, как получить долю в фотографиях или рулон камеры для работы.

  <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>myapp image</string>
            </array>
            <key>CFBundleTypeName</key>
            <string>public.png</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Alternate</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.png</string>
                <string>public.jpeg</string>
            </array>
        </dict>
    </array>
    <key>UTImportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.image</string>
            </array>
            <key>UTTypeIdentifier</key>
            <string>public.png</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>com.apple.ostype</key>
                <string>PNG</string>
                <key>public.filename-extension</key>
                <array>
                    <string>png</string>
                </array>
                <key>public.mime-type</key>
                <string>image/png</string>
            </dict>
        </dict>
        <dict>
            <key>UTTypeIdentifier</key>
            <string>public.jpeg</string>
            <key>UTTypeReferenceURL</key>
            <string>http://www.w3.org/Graphics/JPEG/</string>
            <key>UTTypeDescription</key>
            <string>JPEG image</string>
            <key>UTTypeIconFile</key>
            <string>public.jpeg.icns</string>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.image</string>
                <string>public.data</string>
            </array>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>com.apple.ostype</key>
                <string>JPEG</string>
                <key>public.filename-extension</key>
                <array>
                    <string>jpeg</string>
                    <string>jpg</string>
                </array>
                <key>public.mime-type</key>
                <string>image/jpeg</string>
            </dict>
        </dict>
    </array>

попробуй:

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeName</key>
            <string>Scary Bug Document</string>
            <key>LSHandlerRank</key>
            <string>Alternate</string>
            <key>CFBundleTypeRole</key>
            <string>None</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.png</string>
                <string>public.jpg</string>
            </array>
        </dict>
    </array>

а также в другого ответа на StackOverflow


после проведения небольшого исследования кажется, что невозможно зарегистрировать приложение для изображений. Спасибо за ответы.


общественности.изображение является абстрактным типом, попробуйте зарегистрироваться для общественности.png или общественности.форматы JPEG и т. д.


OS не позволит вам открывать изображения в вашем приложении. Я также попробовал много перестановок и комбинаций и подтвердил еще несколько сообщений в поддержке Apple.


в документации Apple", чтобы добавить тип документа, сделайте следующее:

  • нажмите на кнопку раскрытия для типов документов, чтобы открыть типы документов.
  • В разделе" типы " заполните UTI для нового типа.
  • для типа ключевого значения: CFBundleTypeRole.
  • для типа значения: редактор.
  • для типа ключевого значения: LSHandlerRank.
  • для типа значения: владелец."

Это работает для меня использование public.изображение как UTI.