gpt4 book ai didi

ios - 从 Xcode iOS 项目运行 swift 脚本作为构建阶段

转载 作者:IT王子 更新时间:2023-10-29 05:21:01 30 4
gpt4 key购买 nike

这是一个简单的 swift 脚本:

#!/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 无法构建项目,错误为“undefined 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

关于ios - 从 Xcode iOS 项目运行 swift 脚本作为构建阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30981724/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com