这是一个简单的快速脚本:
#!/usr/bin/env xcrun swift
import Foundation
let task = NSTask()
task.launchPath = "/bin/echo"
task.arguments = ["farg1", "arg2"]
let pipe = NSPipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output: String = NSString(data: data, encoding: NSUTF8StringEncoding)
print(output)
我将此脚本添加为 iOS 项目中的构建阶段(在“编译源代码阶段”之前),但 XCode 无法构建项目并出现错误“未定义 NSTask()...”
当我在 OSX 项目中添加相同的脚本时,XCode 构建项目没有任何错误。
问题是为什么 XCode 在 iOS 框架内寻找 NSTask(不存在的地方)而不是作为平台脚本运行 swift 脚本(如 bash)?
只是补充一下: swift 脚本不包含在与其他文件一起编译的项目中。它只是添加到其他源文件(即 Objective-C 文件)的构建阶段(甚至在编译之前)来运行它。
当脚本包含不属于 iOS 框架的类时,有什么想法如何从 iOS XCode 项目运行自定义 swift 脚本吗?
为 iOS 构建时,xcrun 的隐式 SDK 是 iOS SDK,因此您可以使用命令行参数将其更改为 Mac OS X SDK。将脚本中的第一行更改为:
#!/usr/bin/env xcrun --sdk macosx swift
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)