如何从终端运行Xcode?

70

我的问题非常简单:假设有一个名为 a.xcodeproj 的 xcode 项目,我能否使用以下命令打开它:xcode a.xcodeproj

如果我尝试这样做,会收到以下错误信息:

-bash: xcode: command not found

Xcode不是一个CLI应用程序... xcodebuild是,但不确定这是否是您想要实现的内容,因为您没有指定具体要实现什么。 - Brad Allred
@Brad Allred 对不起问题表述不清。我只是想打开.xodeproj项目,以便可以编译代码。 - feelfree
我最近发布了一个我写的自定义脚本,用于从命令行打开Xcode,我把它命名为oxc。未来的读者可能会发现它很有用。 - Jason McCreary
Nik,谢谢。你帮我省了三个小时的搜索时间。 - Yanis Balaev
8个回答

144

Xcode应该是.xcodeproj文件的默认应用程序,因此应该可以这样操作:

$ open a.xcodeproj

如果打开的是其他应用程序,你可以强制其使用Xcode:

$ open -a Xcode a.xcodeproj
如果你想让命令xcode正常工作,你可以给它创建一个别名:
$ alias xcode="open -a Xcode"

那么你只需要执行 xcode a.xcodeproj (并将其添加到 ~/.bash_profile)即可。


2
很棒的解决方案。谢谢@Nirk。 - Milan Kamilya
正在运行。现在可以用什么命令从Xcode运行iPhone / iPad应用程序? - Alen Alexander
打开xcworkspaces需要使用不同的别名,并手动告诉要使用哪一个(xcodeproj还是xcworkspace)。这个答案可以用单个命令同时处理两者。 - Gobe
1
open 命令不会遵循使用 xcode-select 更改工具链的设置,因此如果您使用多个 Xcode 版本,则可能会遇到问题。建议使用 xed a.xcworkspace 命令来代替。 - teki
如果您对~/.bash_profile进行更改,建议从命令行重新加载bash配置文件,以便您所做的更改实际生效。操作步骤如下: source ~/.bash_profile - GhostCode

44

你也可以直接在项目的根目录下运行xed .,它似乎会尝试以分层方式加载项目,即首先存在的文件:

  1. 如果是包(Xcode 11+),则是该文件夹
  2. xcworkspace
  3. xcodeproj
  4. playground

这意味着您不需要验证现有文件结构以选择要打开的最佳文件。


4
这应该是新的最佳答案。 - Nicholas Haley

5

我不记得在哪里找到这个脚本,但我使用这个ruby脚本来查找工作目录中的*.xcodeproj*.xcworkspace文件,并打开该文件(而不会打开任何先前的项目)。

#!/usr/bin/env ruby

# Open xcode without any previous projects being opened as well.
# We first look for a workspace, then a project in the current directory, opening the first that is found.

f = []
f.concat Dir["*.xcworkspace"]
f.concat Dir["*.xcodeproj"]

if f.length > 0
  puts "opening #{f.first}"
  `open -a /Applications/Xcode.app #{f.first} --args -ApplePersistenceIgnoreState YES`
  exit 0
end

puts "No Xcode projects found"
exit 1

1
升级系统时丢失了这个脚本,已经找了好几天了!!谢谢 - Eric
4
你知道我在哪里可以找到可用的“--args”列表,以传递给Xcode吗?就像“-ApplePersistenceIgnoreState YES”这样的参数? - Clay Ellis
@ClayEllis 从我的角度来看,特别实用的是有一些“冗长”的选项,但到目前为止我还没有找到任何东西。 - Antek
1
所以基本上实现了“xed”的最简版本(请参见其他答案)。 - emllnd
@emlind 哇,我以前怎么不知道这个命令呢?太棒了,谢谢你。 - danielbeard

5

打开终端,然后进入Xcode安装的路径。然后,进入其"Contents/MacOS"文件夹。当你到达这个文件夹时,输入-sudo ./Xcode。

或者你可以按照以下代码操作:(如果用户有权限问题,可以使用"sudo")

cd /  
cd Applications
cd Xcode.app
cd Contents/MacOS
sudo ./Xcode

4
以下命令应该可以做到:
open a.xcodeproj

3

我刚刚输入了 open *xcw* 命令。这个命令会在当前目录中查找一个工作区,然后使用 Xcode 打开它。


2

如果你想从工作区打开Xcode项目,请使用以下命令行。

注意:保留HTML标记。

user$ open -a xcode ProjectName.xcworkspace/

0

我在我的.zshrc文件中有几个函数可以实现你要找的功能:

cap () { tee /tmp/capture.out; }

ret () { cat /tmp/capture.out; }

x () {
    # Substitute .xcworkspace with .xcodeproj for your case.
    find . -type d -name "*.xcworkspace" -d 1 | cap
    xed "$(ret)"
}

然后,从与您的*.xcodeproj相同的目录中,只需执行x即可,例如:

$ x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接