使用Xcode执行Swift Package Manager创建的项目

时间:2016-03-20 19:47:05

标签: xcode swift2 toolchain

我使用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为这个特定项目使用不同的工具链?

非常感谢。

1 个答案:

答案 0 :(得分:0)

Xcode用于构建代码的工具链与swift build所属的swift之间存在不匹配。

此错误已针对下一个快照修复。现在,请确保使用正确的工具链启动Xcode:

xcrun launch-with-toolchain /Library/Developer/Toolchains/swift-latest.xctoolchain