我正在尝试在另一个编辑器(即 Vim)中模拟 Xcode 的 ⌘-R 击键;我以为我可以使用一些 shell 脚本和 applescript 来做到这一点,但它似乎无法正常工作:
open -a Xcode "MyProj.xcodeproj"
osascript -e 'tell app "Xcode"' -e 'build' -e 'launch' -e 'end tell'
这样做的问题是,无论 Xcode 是否报告错误,它都会启动应用程序。有没有什么办法解决这一问题?
我正在尝试在另一个编辑器(即 Vim)中模拟 Xcode 的 ⌘-R 击键;我以为我可以使用一些 shell 脚本和 applescript 来做到这一点,但它似乎无法正常工作:
open -a Xcode "MyProj.xcodeproj"
osascript -e 'tell app "Xcode"' -e 'build' -e 'launch' -e 'end tell'
这样做的问题是,无论 Xcode 是否报告错误,它都会启动应用程序。有没有什么办法解决这一问题?
我用:
osascript -e 'tell application "Xcode"
activate
set targetProject to active workspace document
if (build targetProject) is equal to "Build succeeded" then
launch targetProject
end if
end tell'
当然,该项目必须已经在 Xcode 中打开才能正常工作。(我宁愿不将当前项目硬编码到我的脚本中)
除非你真的想要 Xcode GUI,否则你可以只使用 xcodebuild 而不是启动和编写 Xcode 脚本。
对于那里的其他 TextMate 用户,通过将其与现有的“在 Xcode 中打开项目 ..”命令混合在一起,拼凑而成.. 改进的版本:
PROJECT=$(ruby -- "${TM_BUNDLE_SUPPORT}/bin/find_xcode_project.rb")
if [[ -f "${PROJECT}/project.pbxproj" ]]; then
open -a Xcode "${PROJECT}"
else
echo "Didn't find an Xcode project file."
echo "You may want to set TM_XCODE_PROJECT."
fi
osascript -e 'tell application "Xcode"
activate
set targetProject to project of active project document
if (build targetProject) is equal to "Build succeeded" then
launch targetProject
end if
end tell'