Xcode: 无法解析 .. 的调试映射是一个目录

Xcode: Cannot parse the debug map for .. is a directory

我正在尝试 link 我的 iPhone 模拟器项目,我在 link 时遇到以下错误:

(null): error: cannot parse the debug map for "/Users/admin/Library/Developer/Xcode/DerivedData/TrainTracks-agvvryrtufplkxecblncwedcelck/Build/Products/Debug-iphonesimulator/TrainTracks.app/TrainTracks": Is a directory

这是 linker 的输出:

GenerateDSYMFile /Users/admin/Library/Developer/Xcode/DerivedData/TrainTracks-agvvryrtufplkxecblncwedcelck/Build/Products/Debug-iphonesimulator/TrainTracks.app.dSYM /Users/admin/Library/Developer/Xcode/DerivedData/TrainTracks-agvvryrtufplkxecblncwedcelck/Build/Products/Debug-iphonesimulator/TrainTracks.app/TrainTracks
    cd /Work/TrainTracks/TrainTracks
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /Users/admin/Library/Developer/Xcode/DerivedData/TrainTracks-agvvryrtufplkxecblncwedcelck/Build/Products/Debug-iphonesimulator/TrainTracks.app/TrainTracks -o /Users/admin/Library/Developer/Xcode/DerivedData/TrainTracks-agvvryrtufplkxecblncwedcelck/Build/Products/Debug-iphonesimulator/TrainTracks.app.dSYM

error: cannot parse the debug map for "/Users/admin/Library/Developer/Xcode/DerivedData/TrainTracks-agvvryrtufplkxecblncwedcelck/Build/Products/Debug-iphonesimulator/TrainTracks.app/TrainTracks": Is a directory

什么会导致这个问题?

我从一个游戏模板 (Xcode 7.2.1) 开始,删除了主要故事板和 AppDelegate.* 文件,因为这是一个 SDL 跨平台项目。

这个问题是由我的项目中第二次包含 TrainTracks 文件夹引起的。我已经有一个包含所有源代码的黄色 TrainTracks 组,但出于某种原因 Xcode 也显示了一个蓝色的 TrackTracks 文件夹。这有一个重复的 info.plist 和其他文件。我删除了蓝色文件夹引用,现在项目构建成功。

对我来说,这个错误是在项目中两次包含相同的 .m 文件。移动一些文件时发生。 Quit Xcode, clean,它告诉我链接器错误中的文件。

我 运行 试图 运行 我的测试,这是因为我的测试目标需要使用我的 Podfile 中的 pods 之一。为了修复它,我只是将我的测试目标添加到 Podfile 并包含相关的 pods,按照以下模式:

workspace 'myproject.xcworkspace'
platform :ios, '8.0'

use_frameworks!

def shared_pods
    pod 'RealmSwift', '~> 2.8'
end

project 'myproject.xcodeproj'

target :MyProject do
    project 'myproject.xcodeproj'
    shared_pods
end

target :MyProjectTests do
    project 'myproject.xcodeproj'
    shared_pods
end

就我而言,我在查找器中复制了一个 .m 文件作为参考,并且以某种方式(很可能是我的错误)将其添加到项目资源管理器中。真正的错误是重复定义,因为 class 出现了两次。删除 "ClassNameHere_copy.m" 解决了问题。

对我来说,这是因为我更改了我的目标名称,它创建了一个新的 cocoa pods .a 库,但没有从链接中删除另一个。

在我的例子中,出现了同样的错误,因为应用程序中使用的框架之一是在没有 Bitcode 的情况下编译的,所以我不得不为整个项目关闭 Bitcode。

如果您使用的是 CocoaPods,并且在更改目标名称后出现此错误,请单击您的目标,转到“常规”选项卡,向下滚动到 "Linked Frameworks and Libraries",然后删除以下库:

libPods-YourOldTargetName.a

在我的例子中,我不得不删除我的整个存储库并再次克隆,没有任何其他工作,在新克隆之后,我 运行 安装了一个 pod 并且它工作了。