Pod Install in Xcode 机器人触发器
Pod Install in Xcode Bots Trigger
我使用以下命令启动预集成触发器
cd "${XCS_PRIMARY_REPO_DIR}"
pwd
pod install --verbose
它给了我
pod: command not found
简单吧?找不到 pod 二进制文件,我将把它指向路径。简单。
cd "${XCS_PRIMARY_REPO_DIR}"
pwd
/usr/local/bin/pod install --verbose
这给了我以下内容
env: ruby_executable_hooks: No such file or directory
这让我觉得 ruby 的触发器设置不正确 运行。现在了解构建服务器终端中的一个简单 "pod install" 修复所有这些并且 运行 很好和花花公子。该项目绝对可以在构建服务器上正确构建。
因此,由于我认为环境一团糟,我会尝试从包装器目录 运行 它,应该设置得很好。这就是它的目的吗?每当我在构建的 运行 脚本阶段需要 ruby 到 运行 时,这在历史上就起作用了。所以我们开始触发。
~/.rvm/wrappers/ruby-2.2.3@global/pod install
我在构建服务器的终端测试了这个,它很酷,所以我把它放到触发器中,我得到了这个
/Users/XcodeServer/.rvm/wrappers/ruby-2.2.3@global/pod: line 7: exec: pod: not found
:/ 好吧,我破解 pod 源代码,看看它在第 7 行的内容
exec pod "$@"
我不是 ruby 人,但这对我来说没有任何意义。哦,是的,我尝试将 cocoapods 直接下载到 usr/local/bin,而不是让它安装到其他目录,首先卸载所有 cocoapods,然后执行以下操作
sudo gem install -n /usr/local/bin cocoapods --pre
我放 --pre 是因为我需要 1.1.0.rc.2 来修复构建 swift 3 的错误。任何人,这一切都行不通。似乎其他人都可以简单地输入
cd /path/to/proj/
pod install
进入他们的 Xcode 机器人触发器并让它们工作。
我有触发器 运行 构建服务器上的一个脚本,它执行 pod 安装。
因此,在您的构建服务器上制作一个 shell 脚本,其中包含以下内容:
#make sure the encoding is correct
export LANG=en_US.UTF-8
# fix the path so Ruby can find it's binaries
export PATH=/usr/local/bin:$PATH
echo "PATH: $PATH"
# update or install depending on what we got
if [ -d ${PODS_DIR} ]; then
# pods directory exist
echo "=================="
echo " Delete Pods"
echo "=================="
# delete cocoapods files if they exist
rm -rf "${PODS_DIR}"
eval rm "${BS_SRCROOT}/Podfile.lock"
eval rm -rf "${BS_SRCROOT}/${BS_EXECUTABLE_NAME}.workspace"
echo "Deleted Pods directory ${PODS_DIR}"
echo "Deleted ${BS_EXECUTABLE_NAME}.workspace"
echo "Deleted Podfile.lock"
else
# no need to delete pod files
echo "Pods NOT detected at ${PODS_DIR}"
fi
echo "=================="
echo " Install Pods"
echo "=================="
# make sure we are where we need to be
eval cd "${BS_SRCROOT}"
pwd
~/.rvm/wrappers/ruby-2.2.3@global/pod install
记得在命名脚本时使用 'sh' 后缀。然后在你的机器人中触发 运行 像这样的脚本
sh ~/Path/to/Scripts/podUpdateHack.sh
有点傻,但它有效,¯\_(ツ)_/¯ 哦,是的,所有那些愚蠢的评估都在那里,因为 BS_SRCROOT 是 XCode 机器人上的环境变量,它引用环境变量 $XCS_PRIMARY_REPO_DIR。您可以将其替换为 $XCS_PRIMARY_REPO_DIR 并删除 eval。我不记得是谁定义了可能来自工作区的 PODS_DIR,而 BS_EXECUTABLE_NAME 是项目中可执行文件名称的重新定义,因为此时它不存在。
希望对哥们有帮助。
#!/bin/sh
cd ProjectDirectory
/usr/local/bin/pod install
设置默认路径,执行 .bash_profile 然后你的 bot 就像普通用户一样运行
#!/bin/sh
cd $XCS_PRIMARY_REPO_DIR
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands"
. ~/.bash_profile
bundle install
pod install --repo-update
P.s。 bundle install 安装我的 Gemfile 中指定的所有 gems,如下所示(因此每个机器人可以有不同的 gem 要求):
source 'https://rubygems.org'
gem 'cocoapods', '1.3.1'
我使用以下命令启动预集成触发器
cd "${XCS_PRIMARY_REPO_DIR}"
pwd
pod install --verbose
它给了我
pod: command not found
简单吧?找不到 pod 二进制文件,我将把它指向路径。简单。
cd "${XCS_PRIMARY_REPO_DIR}"
pwd
/usr/local/bin/pod install --verbose
这给了我以下内容
env: ruby_executable_hooks: No such file or directory
这让我觉得 ruby 的触发器设置不正确 运行。现在了解构建服务器终端中的一个简单 "pod install" 修复所有这些并且 运行 很好和花花公子。该项目绝对可以在构建服务器上正确构建。
因此,由于我认为环境一团糟,我会尝试从包装器目录 运行 它,应该设置得很好。这就是它的目的吗?每当我在构建的 运行 脚本阶段需要 ruby 到 运行 时,这在历史上就起作用了。所以我们开始触发。
~/.rvm/wrappers/ruby-2.2.3@global/pod install
我在构建服务器的终端测试了这个,它很酷,所以我把它放到触发器中,我得到了这个
/Users/XcodeServer/.rvm/wrappers/ruby-2.2.3@global/pod: line 7: exec: pod: not found
:/ 好吧,我破解 pod 源代码,看看它在第 7 行的内容
exec pod "$@"
我不是 ruby 人,但这对我来说没有任何意义。哦,是的,我尝试将 cocoapods 直接下载到 usr/local/bin,而不是让它安装到其他目录,首先卸载所有 cocoapods,然后执行以下操作
sudo gem install -n /usr/local/bin cocoapods --pre
我放 --pre 是因为我需要 1.1.0.rc.2 来修复构建 swift 3 的错误。任何人,这一切都行不通。似乎其他人都可以简单地输入
cd /path/to/proj/
pod install
进入他们的 Xcode 机器人触发器并让它们工作。
我有触发器 运行 构建服务器上的一个脚本,它执行 pod 安装。
因此,在您的构建服务器上制作一个 shell 脚本,其中包含以下内容:
#make sure the encoding is correct
export LANG=en_US.UTF-8
# fix the path so Ruby can find it's binaries
export PATH=/usr/local/bin:$PATH
echo "PATH: $PATH"
# update or install depending on what we got
if [ -d ${PODS_DIR} ]; then
# pods directory exist
echo "=================="
echo " Delete Pods"
echo "=================="
# delete cocoapods files if they exist
rm -rf "${PODS_DIR}"
eval rm "${BS_SRCROOT}/Podfile.lock"
eval rm -rf "${BS_SRCROOT}/${BS_EXECUTABLE_NAME}.workspace"
echo "Deleted Pods directory ${PODS_DIR}"
echo "Deleted ${BS_EXECUTABLE_NAME}.workspace"
echo "Deleted Podfile.lock"
else
# no need to delete pod files
echo "Pods NOT detected at ${PODS_DIR}"
fi
echo "=================="
echo " Install Pods"
echo "=================="
# make sure we are where we need to be
eval cd "${BS_SRCROOT}"
pwd
~/.rvm/wrappers/ruby-2.2.3@global/pod install
记得在命名脚本时使用 'sh' 后缀。然后在你的机器人中触发 运行 像这样的脚本
sh ~/Path/to/Scripts/podUpdateHack.sh
有点傻,但它有效,¯\_(ツ)_/¯ 哦,是的,所有那些愚蠢的评估都在那里,因为 BS_SRCROOT 是 XCode 机器人上的环境变量,它引用环境变量 $XCS_PRIMARY_REPO_DIR。您可以将其替换为 $XCS_PRIMARY_REPO_DIR 并删除 eval。我不记得是谁定义了可能来自工作区的 PODS_DIR,而 BS_EXECUTABLE_NAME 是项目中可执行文件名称的重新定义,因为此时它不存在。
希望对哥们有帮助。
#!/bin/sh
cd ProjectDirectory
/usr/local/bin/pod install
设置默认路径,执行 .bash_profile 然后你的 bot 就像普通用户一样运行
#!/bin/sh
cd $XCS_PRIMARY_REPO_DIR
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands"
. ~/.bash_profile
bundle install
pod install --repo-update
P.s。 bundle install 安装我的 Gemfile 中指定的所有 gems,如下所示(因此每个机器人可以有不同的 gem 要求):
source 'https://rubygems.org'
gem 'cocoapods', '1.3.1'