我使用Swift Package管理器创建了一个项目。为此,我跑了" swift build --init"然后添加了两个源文件:
main.swift
import Foundation
print("Hello World")
let swifty = NSURLComponents(string: "https://swift.org")!
print("\(swifty.host!)")
let test = [1, 2, 3]
print(test)
if Process.arguments.count != 2 {
print("Usage: hello Name")
} else {
let name = Process.arguments[1]
sayHello(name)
}
和Greeter.swift
func sayHello(name: String) {
print("Hello, \(name)!")
}
所以它非常基础。当我直接使用可执行文件(./.build/debug/LeagueScraper)运行它时,它就像一个魅力。
但是我希望能够直接从Xcode运行它;为此,我编辑方案并将可执行文件设置为我的产品。问题是Xcode将.build存储在Derived Data目录中,然后给出了这个错误:
dyld: Symbol not found: __TMPdSa
Referenced from: /Users/aevitas/Library/Developer/Xcode/DerivedData/LeagueScraper-difkqqricvojhwdawinwisptcanb/Build/Products/Debug/LeagueScraper
Expected in: /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2016-03-16-a.xctoolchain/usr/lib/swift/macosx/libswiftCore.dylib
in /Users/aevitas/Library/Developer/Xcode/DerivedData/LeagueScraper-difkqqricvojhwdawinwisptcanb/Build/Products/Debug/LeagueScraper
(lldb)
可悲的是,我在这里有点像菜鸟,我不知道如何解决这个问题。
我正在使用使用标准安装程序安装的Swift的最新开发快照。
如何告诉Xcode为这个特定项目使用不同的工具链?
非常感谢。
答案 0 :(得分:0)
Xcode用于构建代码的工具链与swift build
所属的swift之间存在不匹配。
此错误已针对下一个快照修复。现在,请确保使用正确的工具链启动Xcode:
xcrun launch-with-toolchain /Library/Developer/Toolchains/swift-latest.xctoolchain