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

时间:2015-07-01 14:11:28

标签: ios xcode gpx

我正在尝试定义GPX文档类型,以便我可以从其他应用程序打开gpx文件类型。我在这个主题上关注了Apple的Technical Q&A

我也尝试过我发现直接编辑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>

2 个答案:

答案 0 :(得分:4)

确保在plist中为GPX定义UTI,因为它未定义为默认iOS UTI的一部分。您可以通过将GPX UTI添加到目标来完成此操作。

  1. 选择您的项目文件
  2. 选择目标
  3. 选择&#34;信息&#34;
  4. 展开&#34;导入UTI
  5. 点击+图标
  6. 添加GPX UTI信息
  7. 如果需要,您也可以直接编辑plist。

    以下是它应该是什么样子: enter image description here

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

    关于this blog的好消息......

    <强>更新

    我假设你已经在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>
    

答案 1 :(得分:0)

还实现CFBundleDocumentTypes进行plist操作,使空投内容符合您的UTI时可以打开您的应用。

     <key>CFBundleDocumentTypes</key>
     <array>
        <dict>
           <key>CFBundleTypeIconFiles</key>
           <array/>
           <key>CFBundleTypeName</key>
           <string>GPX File</string>
           <key>LSHandlerRank</key>
           <string>Default</string>
           <key>LSItemContentTypes</key>
           <array>
               <string>com.your-Bundle-Idenitifer.gpx</string>
           </array>
         </dict>
     </array>