尝试在Xcode 6.4中定义GPX文档类型

fli*_*668 0 xcode gpx ios

我正在尝试定义GPX文档类型,以便可以从其他应用程序打开gpx文件类型。在此主题下,我一直关注Apple的技术问答

我还尝试过发现直接编辑plist文件的解决方案。他们都没有工作。当我尝试打开gpx文件时,在“打开方式”菜单中仍然看不到我的应用程序。我很确定我在这里错过了一些东西。我只是不知道那是什么。请帮忙。

    <key>UTImportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.xml</string>
        </array>
        <key>UTTypeDescription</key>
        <string>GPS Exchange Format (GPX)</string>
        <key>UTTypeIdentifier</key>
        <string>com.topografix.gpx</string>
        <key>UTTypeReferenceURL</key>
        <string>http://www.topografix.com/GPX/1/1</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>gpx</string>
            </array>
            <key>public.mime-type</key>
            <string>application/gpx+xml</string>
        </dict>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

rmp*_*rmp 5

确保您在plist中定义了GPX的UTI,因为它没有被定义为默认iOS UTI的一部分。您可以通过将GPX UTI添加到目标中来实现。

  1. 选择您的项目文件
  2. 选择你的目标
  3. 选择“信息”
  4. 展开“导入UTI
  5. 点击+图标
  6. 添加GPX UTI信息

您还可以根据需要直接编辑plist。

它应该是这样的: 在此处输入图片说明

在plist中,它将如下所示:

<key>UTImportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeIdentifier</key>
            <string>com.topografix.gpx</string>
            <key>UTTypeReferenceURL</key>
            <string>http://www.topografix.com/GPX/1/1</string>
            <key>UTTypeDescription</key>
            <string>GPS Exchange Format (GPX)</string>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.xml</string>
            </array>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.filename-extension</key>
                <array>
                    <string>gpx</string>
                </array>
                <key>public.mime-type</key>
                <string>application/gpx+xml</string>
            </dict>
        </dict>   
    </array>
Run Code Online (Sandbox Code Playgroud)

这个博客上的好信息也...

更新

我假设您已经在plist中定义了文档类型。它应与此匹配:

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeIconFiles</key>
            <array/>
            <key>CFBundleTypeName</key>
            <string>GPS Exchange Format (GPX)</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Owner</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.topografix.gpx</string>
            </array>
        </dict>
    </array>
Run Code Online (Sandbox Code Playgroud)