Pod安装在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安装”修复了所有这些并运行良好和花花公子。 该项目肯定在构建服务器上正确构建。

所以,既然我认为环境搞砸了,我会尝试从包装器目录运行它,这应该设置好又好。 这就是为什么它是正确的? 每当我需要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的bug。任何人,这一切都行不通。 似乎其他人都可以简单地说

 cd /path/to/proj/ pod install 

进入他们的XCode bot触发器并让它们工作。

请指教。 谢谢。

我有触发器在构建服务器上运行执行pod安装的脚本。

因此,在构建服务器上创建一个包含以下内容的shell脚本:

 #make the 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’后缀。 然后在你的bot触发器中运行这样的脚本

 sh ~/Path/to/Scripts/podUpdateHack.sh 

有点傻但它有效,¯\ _(ツ)_ /¯哦,是的,因为BS_SRCROOT是XCode机器人的环境变量,它引用了环境变量$ XCS_PRIMARY_REPO_DIR。 您只需将其替换为$ XCS_PRIMARY_REPO_DIR并删除eval即可。 我不记得是谁定义了可能来自工作空间的PODS_DIR而BS_EXECUTABLE_NAME是项目中可执行文件名的重新定义,因为此时它不存在。

希望有助于同性恋。

设置默认路径,执行.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 

Ps bundle install安装我的Gemfile中指定的所有gems,看起来像这样(所以你可以为每个bot提供不同的gem要求):

 source 'https://rubygems.org' gem 'cocoapods', '1.3.1' 
 #!/bin/sh cd ProjectDirectory /usr/local/bin/pod install