我有一个用Swift编码的macOS应用程序,它运行一个用于构建项目的基本脚本(.command
)文件。
Swift应用程序使用以下方法将参数传递给脚本:
let path = Bundle.main.path(forResource: "script", ofType:"command")
var arguments: [String] = []
arguments.append("~/Projects/ios/ProjectFolderName/")
arguments.append("Project-Name")
self.process = Process()
self.process.launchPath = path
self.process.arguments = arguments
脚本:
xcodebuild clean -workspace "${1}${2}.xcworkspace" -scheme "${3}" -configuration Release
使用应用程序运行我的脚本,它会抛出以下错误(因为路径存在):
xcodebuild: error: '~/Projects/ios/ProjectFolderName/Project-Name.xcworkspace' does not exist.
备注:文件和路径存在。使用终端命令正在成功运行
如果删除参数并对.command
文件中的路径进行硬编码,它会使用相同的应用程序成功运行:
xcodebuild clean -workspace ~/Projects/ios/ProjectFolderName/Project-Name.xcworkspace -scheme "${3}" -configuration Release
我认为转换参数可能存在问题。我做了一些echo
测试来打印参数的路径,一切看起来都很不错。