Вот простой быстрый script:
#!/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)
Я добавил эту script как фазу сборки (до "фазы источников компиляции" ) в проекте iOS, но XCode не смог построить проект с ошибкой "undefined NSTask()..." Когда я добавил такой же script в проект OSX, проект сборки XCode без каких-либо ошибок.
Вопрос в том, почему XCode ищет NSTask внутри рамки iOS (где не существует) вместо этого запускает swift script в качестве платформы script (например, bash)?
Просто добавьте: swift script не входит в проект с другими файлами для компиляции. Он просто добавлен в фазу сборки, даже до компиляции, других исходных файлов (которые являются objective-c файлами) для ее запуска.
Любые идеи о том, как запустить пользовательский swift script из проекта iOS XCode, когда script содержит классы, которые не входят в структуру iOS?