我在用 Ruby gems 做类似的事情时遇到了麻烦,所以我将分享对我有用的东西,希望它对未来的人有所帮助。
第 1 步:安装宝石
首先将您要使用的 gem 安装到您可以轻松找到的文件夹中,例如gems
项目文件夹中的文件夹。正如 Stan 在他的回答中显示的那样,-i
在安装 gem 时使用该选项并提供 gems 文件夹的路径。
gem install -i /path/to/gem/folder gemName
第 2 步:添加复制文件构建阶段
通过选择 Editor > Add Build Phase > Add Copy Files Build Phase,将 Copy Files 构建阶段添加到您的应用程序目标。使用“资源”菜单选择复制应用程序包中 Gem 的位置。如果您希望 gem 位于它们自己的文件夹中,请在 Subpath 文本字段中添加文件夹名称。
单击添加按钮以添加文件。一张纸打开。单击添加其他按钮。导航到您的 gem 文件夹位置并选择您的 gem 文件夹。现在,当您构建项目时,Xcode 会将 gem 复制到应用程序包中。
第 3 步:在 app bundle 中找到 gems 文件夹
使用Bundle
该类查找包中的标准位置,例如 Resources 文件夹。构建 gems 文件夹的路径。运行 gem 时,您将需要它作为环境变量。
包含 gem 的文件夹应该有一个bin
包含可执行文件的文件夹。您将构建可执行文件的路径,并在运行 gem 时将该路径用作第一个参数。
第四步:配置命令运行gem
使用Process
该类(以前NSTask
的 )来运行命令行程序,例如 gem。首先创建一个Process
对象。
let taskToRun = Process()
将启动路径设置为 Ruby 解释器的路径。
taskToRun.launchPath = "/usr/bin/ruby"
将环境变量 GEM_HOME 设置为 gems 文件夹的路径。
taskToRun.environment = ["GEM_HOME" : gemsPath]
使用参数列表设置arguments
属性。第一个参数应该是 gem 的可执行文件的路径。
let argumentList = [gemExecutablePath, inputURL.path, "-o", outputURL.path]
taskToRun.arguments = argumentList
实际的参数列表取决于您使用的 gem。
第 5 步:运行 gem
在 macOS 10.13 及更高版本上,调用该run
函数来运行 gem。
do {
try taskToRun.run()
} catch {
fatalError("Error running command line tool.")
}
在早期版本的 macOS 上,调用该函数launch
来运行 gem。
taskToRun.launch()
您可以在以下文章中找到更详细的信息:
在 Mac 应用程序中使用 Ruby Gem