0、写在前
Alcatraz 一款管理 Xcode 插件的插件,没错,他也是一个插件,但是通过它,你可以快速的找到你想要的插件(plug-ins),主题配色(color themes)和模板(templates)。
1、安装 Alcatraz
安装 Alcatraz 非常的简单,其官网(http://alcatraz.io/)提供了一个非常简单的方法。只要在你的终端上,粘贴:
curl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh| sh
然后敲一下回车就可以了。
2、就是这么简单?有可能不简单!
如果当你,敲一下回车之后,过程中都没有报错的话,你可以忽略以下的部分,尽情的享受 Alcatraz 给你带来的方便。
写这个文章主要是应对出错的情况,我遇到的错是告诉我,SSL certificate failed!我同样也遇到了连接某个网站的443端口的时候超时(Timeout)。不管是什么原因,都会导致一个结果,安装失败,尽管会告诉你安装成功,这个地方有点扯淡。
解决思路:
在敲回车之后,我发现是有部分的网络请求是成功的,再看一下输入的命令,这个命令其实就是让我去下载一个 .sh 脚本,然后执行。
所以我就猜测,前边的成功的网络请求,很有可能是下载脚本成功了。顺着这个思路想,后续不成功的网络请求,应该就是这个脚本里发出的命令,那这个脚本到底发出了什么命令呢?如果是一些下载的命令,我可不可以通过一些其他的手段下载这些文件,然后在终端中手动操作不就好了吗?这就是解决这个问题的思路!!!
解决方法/过程:
2.1、我先去掉命令里的 | sh ,这样我就可以看到这个脚本的内容,而不去执行它。我看到了如下的脚本内容:其中的a~d注释,是笔者添加的,非 sh 原始的脚本内容
#!/bin/sh
# a.
DOWNLOAD_URI=https://github.com/supermarin/Alcatraz/releases/download/1.1.6/Alcatraz.tar.gz
# b.
PLUGINS_DIR="${HOME}/Library/Application Support/Developer/Shared/Xcode/Plug-ins”
# c.
mkdir -p "${PLUGINS_DIR}"
# d.
curl -L $DOWNLOAD_URI | tar xvz -C "${PLUGINS_DIR}"
# the 1 is not a typo!
echo "Alcatraz successfully installed!!1!🍻 Please restart your Xcode."
这个 sh 脚本原来是如此的简单,笔者虽然对 sh 了解不多,但是这些命令还是可以看懂的,如果,你能看懂,那就按照自己的思路去做吧!!!当然,如果你觉得看这些有问题的话,没关系,我来简单说一下这个 sh 脚本的到底都干了什么,你会恍然大悟的,嘻嘻!
a. 定义一个变量DOWNLOAD_URI,刚才下载失败的就是它
b. 定义一个变量PLUGINS_DIR,插件所在的本地目录,这个目录是 Xcode 管理插件的目录,如果你安装过一些其他的插件的话,它们就存放在这个位置, Xcode 启动的时候,会去加载这个目录的内容。
c. 创建这个插件目录,如果不存在的话
d. 下载之前定义的 URI 文件,然后解压到这个插件目录
看了这些,相信你也就知道我们接下来要做什么了。
2.2、下载 DOWNLOAD_URI 所指的文件。复制文件 URL 到你的浏览器中,或者使用其他的工具,下载这个文件,由于是国外的服务器,下载可能会比较慢,请耐心等待,如果下载不成功,可以给我留言,我有下载好的压缩文件。
2.3、把下载好的压缩文件, copy 到 PLUGINS_DIR 目录,然后把终端切换到这个目录下。其中的${HOME} 就是你的用户主目录,在你的终端上,可以使用 ~ 代替。使用以下命令,解压文件Alcatraz.tar.gz
tar xvz Alcatraz.tar.gz
解压之后,你就会看到当前目录中多了一个叫 Alcatraz.xcplugin 文件夹
2.4、删除压缩文件 Alcatraz.tar.gz
rm -rf Alcatraz.tar.gz
2.5、最后一步,重启 Xcode
重启 Xcode 之后,你就可以在 Xcode 的菜单栏的 Window 上看到 Package Manager 这个选项。点击它,你就可以看到有一个新的窗口打开
这个就是 Alcatraz 的界面。你就可以看到哪些是你已经安装过的 plugin 了,也可以搜索你要安装的 plugin。
3、总结
经过这件事,个人觉得,做什么事都不要放弃,如果当初我觉的那个命令执行不成功,就不去做的话,就不会有这篇文章了,而且还会潜意识里告诉自己,这个东西不能用。