【问题标题】:Xcode greys out gpx files in fileboxXcode 将文件框中的 gpx 文件变灰
【发布时间】:2013-05-22 17:37:54
【问题描述】:

我希望我没有忽略任何内容,但我无法将 gpx 文件加载到 Xcode 中,因为它们在文件框中显示为灰色(见图)。这在两个位置菜单中,

  1. 在调试器/位置菜单中(参见下图“将 GPX 文件添加到项目”和

  2. scema 位置菜单。但是,预设(伦敦等)确实有效。

选择“将 GPX 文件添加到项目”会显示灰色的 gpx 文件:

这里所有其他文件都显示为灰色很好,但 gpx 文件不应该显示为灰色。 顺便说一句:将文件拖到项目中无济于事,因为它不会显示在模拟位置菜单中。

我需要什么魔法才能让它们工作?我正在使用 Xcode 4.6.2

我使用的格式是这样的:

<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode"> 
<wpt lat="49.479606" lon="8.470395">
     <name>MannheimHbf</name>
</wpt>
</gpx>

提前致谢。

编辑:同时我已经

  • 在我的 Mac 上创建了一个应该具有“干净”用户路径的新用户

  • 在删除我可以在用户和全局域上找到的任何设置和首选项后重新安装 Xcode(虽然可能遗漏了一些)。

  • 在没有内核扩展的情况下启动 Mac

还有其他解决问题的方法吗?

【问题讨论】:

  • 刚刚尝试在虚拟机中运行 Xcode 4.6.1,并且可以正常工作。如果它对运行 Xcode 4.6.2 的任何人都可以正常工作,听到会很有趣
  • 我使用的是 4.6.2,没问题。我看到您的其他文件也显示为灰色,例如APSql.h 和 .m.
  • @verbumdei 感谢您确认它适用于 4.6.2。请问你在哪个国家 - 过去欧洲人使用点作为小数分隔符有一个错误。顺便说一句:APSql.m 显示为灰色很好,因为它不是 gpx 文件;-)
  • 缺少的结束标签 是否会导致此问题?
  • 我在看到您的编辑后删除了我的答案。我已经使用 emacs 将示例文本剪切并粘贴到 Bern5.gpx 中,然后按照您在 Xcode 版本 4.6.2 (4H1003) 中的步骤操作,但没有遇到无法添加文件的问题。我尝试(a)删除文件末尾的换行符; (b) 将行尾更改为几种类型(DOS、Mac、普通 unix); (c) 在已经添加文件之后添加文件。 Xcode 显示在所有情况下都可以正常添加文件。我对文件执行了“获取信息”,它说它是一个 GPX 文件,默认由 Xcode 打开,带有适当的预览图标。

标签: iphone ios xcode core-location gpx


【解决方案1】:

我们将问题归结为文件的 ContentType-Declaration 有缺陷。 在 Mac OS X 中引入的 Snow Leopard 文件将不再被它的扩展名识别(正如我们从旧的 unix 时代所知道的那样) - 相反,每个文件都有一些包含内容类型的元信息。

您可以在名为 mdls 的终端实用程序的帮助下查看每个文件的元数据。 所以在这个例子中,我们通过触摸创建了一个空的 *.gpx 文件并显示它的元数据:

% touch bla.gpx                                              <Tuesday 09:11:23>
saschaheld@Saschas-MacBook-Pro:~
% mdls bla.gpx                                               <Tuesday 09:11:25>
kMDItemContentCreationDate     = 2013-06-04 07:11:25 +0000
kMDItemContentModificationDate = 2013-06-04 07:11:25 +0000
kMDItemContentType             = "com.apple.dt.document.gpx"
kMDItemContentTypeTree         = (
    "com.apple.dt.document.gpx",
    "public.xml",
    "public.text",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded               = 2013-06-04 07:11:25 +0000
kMDItemDisplayName             = "bla.gpx"
kMDItemFSContentChangeDate     = 2013-06-04 07:11:25 +0000
kMDItemFSCreationDate          = 2013-06-04 07:11:25 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "bla.gpx"
kMDItemFSNodeCount             = 0
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 501
kMDItemFSSize                  = 0
kMDItemFSTypeCode              = ""
kMDItemKind                    = "GPX File"
kMDItemLogicalSize             = 0
kMDItemPhysicalSize            = 0

因此,您可以看到默认情况下分配给内容类型“com.apple.dt.document.gpx”的文件扩展名 *.gpx。 在这个特定问题中,默认扩展名 - contenttype-mapping 被第三方应用程序(称为 Adze (http://kobotsw.com))修改,导致 Xcode 无法正确识别文件。

解决此问题的最简单方法是通过系统偏好设置重置您的聚光灯索引。打开 Spotlight-Prefpane,切换到 Privacy-Tab 并将您的 Macintosh-Volume (/) 拖到 TableView - 保存此设置后,您可以从 TableView 中删除 Macintosh-Volume,这将导致完整的聚光灯重新索引。

请记住,重建索引可能需要一些时间,具体取决于您的文件数量、读取速度和卷大小。

【讨论】:

  • Adze 的人刚刚给我发了一封邮件,他们修复了 1.3.6 版的问题。谢谢!
  • 作为临时解决方法,由于 Adze 1.3.6 尚不可用,只需将其卸载然后重新创建 gpx 文件即可解决问题。
【解决方案2】:

我通过删除 Xcode 的 beta 版本解决了这个问题,由于某种原因,非 beta Xcode 的文件“正在使用”。步骤:

  • 退出运行(非测试版)Xcode
  • 删除 Xcode 测试版
  • 重启 Xcode

GPX 文件不再灰显。

【讨论】:

    【解决方案3】:

    您确定它们是 GPX 文件,而不是带有隐藏扩展名的 .gpx.txt 文件吗?

    【讨论】:

    • 是的,相同的 gpx 文件可以在其他开发者的 mac 上正常加载。我已经尝试了很多..文件很好
    猜你喜欢
    • 1970-01-01
    • 2017-09-11
    • 2012-09-21
    • 2015-06-15
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 2021-02-16
    相关资源
    最近更新 更多