{"id":2325,"date":"2019-11-30T11:13:43","date_gmt":"2019-11-30T10:13:43","guid":{"rendered":"https:\/\/myoceane.fr\/?p=2325"},"modified":"2020-09-23T09:34:24","modified_gmt":"2020-09-23T07:34:24","slug":"jenkinsfastlane-on-centos-7","status":"publish","type":"post","link":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/","title":{"rendered":"Jenkins + Fastlane on CentOS 7"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n\n<p style=\"text-align: justify;\">\u672c\u7bc7\u8981\u8a18\u9304\u4e00\u4e0b\u5982\u4f55\u5b89\u88dd Jenkins \u8207 Fastlane \u5230 Linux CentOS 7 \u4e0a\u9762\uff0c<a href=\"https:\/\/jenkins.io\/\">Jenkins<\/a> \u662f\u4e00\u500b\u5e02\u9762\u4e0a\u5e38\u7528\u7684 <a href=\"https:\/\/myoceane.fr\/index.php\/category\/it-technology\/continuousdelivery\/\">Continuous Delivery<\/a> \u7684\u5de5\u5177\uff0c\u5f9e 2011 \u5e74\u958b\u767c\u5230\u73fe\u5728\u5df2\u7d93\u88ab\u5ee3\u6cdb\u63a1\u7528\uff0c<a href=\"https:\/\/github.com\/fastlane\/fastlane\">Fastlane<\/a> \u5247\u662f\u4e00\u500b\u5728\u958b\u767c iOS \u8207 Android \u624b\u6a5f\u7a0b\u5f0f\u81ea\u52d5\u5316\u767c\u4f48\u65b0\u7248\u624b\u6a5f\u7a0b\u5f0f\u7684\u5de5\u5177\uff0c\u653e\u5728 Linux Server \u4e0a\u9762\u53ef\u4ee5\u52a0\u5feb\u624b\u6a5f\u7a0b\u5f0f\u90e8\u7f72\u7684\u901f\u5ea6\uff0c\u4e0d\u591a\u8aaa\u5feb\u770b\u5167\u5bb9\u5427\uff01<\/p>\n\n\n\n<h5>\u5b89\u88dd Jenkins \u5230 CentOS7&nbsp;&nbsp;<\/h5>\n<p>\u95dc\u65bc\u5b89\u88dd Jenkins \u7684\u90e8\u5206\u6211\u5011\u4e3b\u8981\u53c3\u8003\uff1a<a href=\"https:\/\/linuxize.com\/post\/how-to-install-jenkins-on-centos-7\/\">\u9023\u7d50<\/a>\uff0c\u9019\u908a\u6211\u5011\u4e26\u6c92\u6709\u5c07 Jenkins \u5b89\u88dd\u5230 Docker \u4e0a\u9762\u4e3b\u8981\u4f86\u662f\u8003\u91cf\u5230\u6a94\u6848\u7684\u5171\u4eab\u6027\uff0c\u5982\u679c\u4f60\u7684\u6a94\u6848\u5df2\u7d93\u5168\u90e8\u90fd\u5132\u5b58\u5728 Git \u88e1\u9762\u7684\u8a71\uff0c\u5176\u5be6\u53ef\u4ee5\u8003\u616e Docker\uff0c\u4e3b\u8981\u7684\u5b89\u88dd\u6307\u4ee4\u70ba\u4ee5\u4e0b\u6240\u5217\uff1a<\/p>\n<p>\u5b89\u88dd Java \u4e26\u4e14\u540c\u6b65 Jenkins \u7684 Repository<\/p>\n<pre class=\"lang:bash\">sudo yum install java-1.8.0-openjdk-devel\ncurl --silent --location http:\/\/pkg.jenkins-ci.org\/redhat-stable\/jenkins.repo | sudo tee \/etc\/yum.repos.d\/jenkins.repo\nsudo rpm --import https:\/\/jenkins-ci.org\/redhat\/jenkins-ci.org.key<\/pre>\n<p>\u5b89\u88dd Jenkins \u4e26\u4e14\u5229\u7528 systemctl [start|stop|restart|status] \u505a\u7ba1\u7406\uff0c\u5982\u679c\u9700\u8981\u5728\u958b\u6a5f\u6642\u81ea\u52d5\u555f\u52d5 jenkins \u7684\u8a71\u518d\u5229\u7528 systemctl enable jenkins.<\/p>\n<pre class=\"lang:bash\">sudo yum install jenkins\nsudo systemctl start jenkins\nsystemctl status jenkins\n\n\u25cf jenkins.service - LSB: Jenkins Automation Server\n   Loaded: loaded (\/etc\/rc.d\/init.d\/jenkins; bad; vendor preset: disabled)\n   Active: active (running) since Fri 2019-11-29 22:42:35 CET; 11h ago\n     Docs: man:systemd-sysv-generator(8)\n  Process: 14583 ExecStop=\/etc\/rc.d\/init.d\/jenkins stop (code=exited, status=0\/SUCCESS)\n  Process: 14881 ExecStart=\/etc\/rc.d\/init.d\/jenkins start (code=exited, status=0\/SUCCESS)\n    Tasks: 47\n   Memory: 1.0G\n   CGroup: \/system.slice\/jenkins.service\n           \u2514\u250014907 \/etc\/alternatives\/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=\/var\/lib...<\/pre>\n<p>\u555f\u52d5\u4e4b\u5f8c\u53ef\u80fd\u9700\u8981\u8a2d\u5b9a Firewall \u624d\u80fd\u5920\u5229\u7528\u7db2\u9801\u4ecb\u9762\u505a\u8a2d\u5b9a\uff0c\u7db2\u5740 http:\/\/URL:8080\uff0c\u8a2d\u5b9a\u6642\u53ef\u80fd\u6703\u9700\u8981\u6539\u52d5\u4e00\u4e9b\u53c3\u6578\u6216\u662f\u9700\u8981\u5bc6\u78bc\u53ef\u4ee5\u53c3\u8003\u4ee5\u4e0b\u7684\u4f4d\u5740\uff1a<\/p>\n<pre class=\"lang:bash\">cat \/var\/lib\/jenkins\/secrets\/initialAdminPassword\ncat \/etc\/sysconfig\/jenkins<\/pre>\n<p>\u4f8b\u5982\u53ef\u80fd\u6703\u9700\u8981\u4fee\u6539\uff1a<\/p>\n<pre class=\"lang:bash\">JENKINS_USER=\"****\"\nJENKINS_PORT=\"****\"<\/pre>\n<p>\u4e0b\u5716\u70ba\u7db2\u9801\u8a2d\u5b9a\u904e\u7a0b\u6240\u9700\u8981\u63d0\u4f9b\u7684 initialAdminPassword<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"700\" src=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/unlock-jenkins.jpg\" alt=\"\" class=\"wp-image-2334\" srcset=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/unlock-jenkins.jpg 900w, https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/unlock-jenkins-300x233.jpg 300w, https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/unlock-jenkins-768x597.jpg 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<h5>\u5b89\u88dd\u4e26\u8a2d\u5b9a Fastlane<\/h5>\n<p>\u5728\u5b89\u88dd\u8207\u8a2d\u5b9a Fastlane \u7684\u6642\u5019\u9047\u5230\u6bd4\u8f03\u591a\u7684\u554f\u984c\uff0c\u7c21\u55ae\u4ecb\u7d39\u4e00\u4e0b fastlane \u4ed6\u5176\u5be6\u662f gem \u7684\u4e00\u500b\u61c9\u7528\u7a0b\u5f0f\uff0c\u4e3b\u8981\u904b\u884c\u7684\u5e73\u53f0\u5728 Ruby \u4e0a\u9762\uff0c\u6240\u4ee5\u5982\u679c Linux \u6c92\u6709 Ruby \u5e73\u53f0\u7684\u8a71\u9700\u8981\u5148\u5b89\u88dd\uff0c\u9019\u908a\u6211\u5011\u53c3\u8003\u7684\u7db2\u9801\u70ba<a href=\"https:\/\/tecadmin.net\/install-ruby-latest-stable-centos\/\">\u9023\u7d50<\/a>\uff0c<\/p>\n<p style=\"text-align: justify;\">\u5b89\u88dd RVM (Ruby Version Manager) \u5229\u7528 RVM \u4f86\u7ba1\u7406 Ruby \u5b89\u88dd\u7684\u7248\u672c\uff0c\u5982\u679c\u76f4\u63a5\u5b89\u88dd yum install ruby \u7684\u8a71\u53ef\u80fd\u5728\u5b89\u88dd fastlane \u7684\u6642\u5019\u6703\u6709\u7248\u672c\u4e0a\u7684\u554f\u984c\u3002<\/p>\n<pre class=\"lang:bash\">curl -sSL https:\/\/rvm.io\/mpapis.asc | gpg2 --import -\ncurl -sSL https:\/\/rvm.io\/pkuczynski.asc | gpg2 --import -\ncurl -L get.rvm.io | bash -s stable\nsource \/etc\/profile.d\/rvm.sh\nrvm reload<\/pre>\n<p>\u5b89\u88dd Ruby 2.6 \u7248\u672c<\/p>\n<pre class=\"lang:bash\">rvm requirements run\nrvm list known\n\nMRI Rubies\n[ruby-]1.8.6[-p420]\n[ruby-]1.8.7[-head] security released on head\n[ruby-]1.9.1[-p431]\n[ruby-]1.9.2[-p330]\n[ruby-]1.9.3[-p551]\n[ruby-]2.0.0[-p648]\n[ruby-]2.1[.10]\n[ruby-]2.2[.10]\n[ruby-]2.3[.8]\n[ruby-]2.4[.6]\n[ruby-]2.5[.5]\n[ruby-]2.6[.3]\n[ruby-]2.7[.0-preview1]\nruby-head\n\nrvm install 2.6<\/pre>\n<p>\u9078\u64c7\u4e26\u78ba\u8a8d\u7248\u672c<\/p>\n<pre class=\"lang:bash\">rvm list\n=* ruby-2.6.3 [ x86_64 ]\n=&gt; - current\n=* - current &amp;&amp; default\n * - default\n\nrvm use 2.6 --default\nruby --version\nruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]\n\nwhich ruby\n\/usr\/local\/rvm\/rubies\/ruby-2.6.3\/bin\/ruby<\/pre>\n<p>\u5229\u7528 gem \u5b89\u88dd fastlane\uff1a\u5728\u5b89\u88dd\u5b8c Ruby \u4e4b\u5f8c\u5229\u7528 gem \u5b89\u88dd Fastlane \u5b89\u88dd\u7684\u6307\u4ee4\u5f88\u7c21\u55ae\u5c31\u662f<\/p>\n<pre class=\"lang:bash\">gem install fastlane -v 2.115.0<\/pre>\n<p>\u95dc\u65bc\u7248\u672c\u7684\u76f8\u95dc\u8cc7\u8a0a\u53ef\u4ee5\u5230<a href=\"https:\/\/rubygems.org\/gems\/fastlane\/versions\/1.2.3?locale=zh-TW\">\u9023\u7d50<\/a>\u53bb\u67e5\u8a62\uff0c\u5176\u4e2d\u6211\u5011\u9047\u5230\u4ee5\u4e0b\u7684\u554f\u984c\uff1a<\/p>\n<pre class=\"lang:bash\">\/usr\/local\/var\/rbenv\/versions\/2.6.3\/lib\/ruby\/2.6.3\/rubygems\/specification.rb:2325:<br>in `raise_if_conflicts': Unable to activate google-cloud-storage-1.17.0, because google-api-client-0.23.9 conflicts with google-api-client (~&gt; 0.26) <br>(Gem::ConflictError)<\/pre>\n<p>\u4e3b\u8981\u662f\u7248\u672c\u7684\u885d\u7a81\u767c\u751f\u5728 google-api-client \u9019\u4e00\u672c\u7248\u672c\u4e4b\u4e0a\uff0c\u56e0\u70ba fastlane \u8ddf\u5e95\u4e0b\u7684 google-cloud-storage \u90fd\u9700\u8981\u4f46\u662f\u7248\u672c\u4e0a\u6709\u885d\u7a81\uff0c\u89e3\u6c7a\u65b9\u6cd5\u662f\u91cd\u65b0\u8abf\u6574\u5b89\u88dd\u9806\u5e8f\u70ba\u4ee5\u4e0b<\/p>\n<pre class=\"lang:bash\">gem install google-api-client -v 0.23.9\ngem install google-cloud-storage -v 1.16.0\ngem install fastlane -v 2.115.0<\/pre>\n<p>fastlane (2.115.0) \u9700\u8981 google-api-client&nbsp;&gt;= 0.21.2, &lt; 0.24.0<br>google-cloud-storage (1.16.0) \u9700\u8981 google-api-client ~&gt; 0.23<\/p>\n<p>\u525b\u597d\u6709 Overlap \u6240\u4ee5\u9078\u64c7 google-api-client -v 0.23.9\uff0cfastlane \u7684\u793e\u7fa4<a href=\"https:\/\/github.com\/fastlane\/fastlane\/issues\/14242\">\u9023\u7d50<\/a>\u88e1\u9762\u6709\u7a0d\u5fae\u63d0\u5230\u76f8\u95dc\u7684\u554f\u984c\u4f46\u662f\u6c92\u6709\u5b8c\u6574\u7684\u89e3\u7b54\u3002<\/p>\n\n\n\n<h5>Jenkins Jobs \u554f\u984c<\/h5>\n<p>\u7406\u8ad6\u4e0a\u6b64\u6642\u5728 Linux Server \u4e0a\u5df2\u7d93\u53ef\u4ee5\u57f7\u884c fastlane\uff0c\u53ef\u4ee5\u5229\u7528 fastlane env \u53bb\u67e5\u770b\u74b0\u5883\u7684\u53c3\u6578\uff0c\u8a18\u5f97\u6b64\u6642\u5728 pipeline \u8981\u52a0\u5165\u74b0\u5883\u8b8a\u6578\u7684\u8a2d\u5b9a<\/p>\n<pre class=\"lang:javascript\">environment {\n    PATH = \"\/usr\/local\/rvm\/gems\/ruby-2.6.3\/bin:\/usr\/local\/rvm\/rubies\/ruby-2.6.3\/bin:$PATH\"\n}<\/pre>\n<p>\u7b46\u8005\u5728\u5b89\u88dd\u7684\u6642\u5019\u5229\u7528 Jenkins pipeline \u57f7\u884c fastlane \u6307\u4ee4\u7684\u6642\u5019\u537b\u9084\u662f\u4e0d\u65b7\u767c\u751f<\/p>\n<pre class=\"lang:bash\">fastlane env\n\/usr\/local\/rvm\/rubies\/ruby-2.6.3\/lib\/ruby\/site_ruby\/2.6.0\/rubygems.rb:284:in `find_spec_for_exe': can't find gem fastlane (&gt;= 0.a) with executable fastlane (Gem::GemNotFoundException)\n\tfrom \/usr\/local\/rvm\/rubies\/ruby-2.6.3\/lib\/ruby\/site_ruby\/2.6.0\/rubygems.rb:303:in `activate_bin_path'\n\tfrom \/usr\/local\/rvm\/gems\/ruby-2.6.3\/bin\/fastlane:23:in `&lt;main&gt;'\n\tfrom \/usr\/local\/rvm\/gems\/ruby-2.6.3\/bin\/ruby_executable_hooks:24:in `eval'\n\tfrom \/usr\/local\/rvm\/gems\/ruby-2.6.3\/bin\/ruby_executable_hooks:24:in `&lt;main&gt;'<\/pre>\n<p>\u5982\u4e0b\u5716 Jenkins Job \u6240\u793a\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"255\" src=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/\u87a2\u5e55\u5feb\u7167-2019-11-30-\u4e0a\u534811.06.10-1024x255.png\" alt=\"\" class=\"wp-image-2346\" srcset=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/\u87a2\u5e55\u5feb\u7167-2019-11-30-\u4e0a\u534811.06.10-1024x255.png 1024w, https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/\u87a2\u5e55\u5feb\u7167-2019-11-30-\u4e0a\u534811.06.10-300x75.png 300w, https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/\u87a2\u5e55\u5feb\u7167-2019-11-30-\u4e0a\u534811.06.10-768x191.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u5176\u539f\u56e0\u4e3b\u8981\u662f\u56e0\u70ba\u5728 jenkins job \u57f7\u884c\u7684\u74b0\u5883\u4e2d gem \u627e\u4e0d\u5230 fastlane \u7684\u61c9\u7528\u7a0b\u5f0f\uff0c\u6240\u4ee5\u5728 pipeline \u4e2d\u66ab\u6642\u52a0\u5165\u4e00\u500b\u5b89\u88dd\u6307\u4ee4\u57f7\u884c\u904e\u5f8c\u5c31\u53ef\u4ee5\u62ff\u6389\u4e86\u3002<\/p>\n<pre class=\"lang:bash\">gem install fastlane -v 2.115.0<\/pre>\n\n\n\n<p>\u4e4b\u5f8c\u5c31\u4e00\u5207\u6b63\u5e38\u4e86\uff0c\u4ee5\u4e0a\u5206\u4eab\u7d66\u5927\u5bb6\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u7bc7\u8981\u8a18\u9304\u4e00\u4e0b\u5982\u4f55\u5b89\u88dd Jenkins \u8207 Fastlane \u5230 Linux CentOS 7 \u4e0a\u9762\uff0cJenkins \u662f\u4e00\u500b\u5e02\u9762\u4e0a\u5e38\u7528\u7684 Continuous Delivery \u7684\u5de5\u5177\uff0c\u5f9e 2011 \u5e74\u958b\u767c\u5230\u73fe\u5728\u5df2\u7d93\u88ab\u5ee3\u6cdb\u63a1\u7528\uff0cFastlane \u5247\u662f\u4e00\u500b\u5728\u958b\u767c iOS \u8207 Android \u624b\u6a5f\u7a0b\u5f0f\u81ea\u52d5\u5316\u767c\u4f48\u65b0\u7248\u624b\u6a5f\u7a0b\u5f0f\u7684\u5de5\u5177\uff0c\u653e\u5728 Linux Server \u4e0a\u9762\u53ef\u4ee5\u52a0\u5feb\u624b\u6a5f\u7a0b\u5f0f\u90e8\u7f72\u7684\u901f\u5ea6\uff0c\u4e0d\u591a\u8aaa\u5feb\u770b\u5167\u5bb9\u5427\uff01<\/p>\n","protected":false},"author":1,"featured_media":2352,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[619,953,952,951],"class_list":["post-2325","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-continuousdelivery","tag-centos-2","tag-cicd","tag-fastlane","tag-jenkins"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Jenkins + Fastlane on CentOS 7 \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane<\/title>\n<meta name=\"description\" content=\"\u672c\u7bc7\u8981\u8a18\u9304\u4e00\u4e0b\u5982\u4f55\u5b89\u88dd Jenkins \u8207 Fastlane \u5230 Linux CentOS 7 \u4e0a\u9762\uff0cJenkins \u662f\u4e00\u500b\u5e02\u9762\u4e0a\u5e38\u7528\u7684 Continuous Delivery \u7684\u5de5\u5177\uff0c\u5f9e 2011 \u5e74\u958b\u767c\u5230\u73fe\u5728\u5df2\u7d93\u88ab\u5ee3\u6cdb\u63a1\u7528\uff0cFastlane \u5247\u662f\u4e00\u500b\u5728\u958b\u767c iOS \u8207 Android \u624b\u6a5f\u7a0b\u5f0f\u81ea\u52d5\u5316\u767c\u4f48\u65b0\u7248\u624b\u6a5f\u7a0b\u5f0f\u7684\u5de5\u5177\uff0c\u653e\u5728 Linux Server \u4e0a\u9762\u53ef\u4ee5\u52a0\u5feb\u624b\u6a5f\u7a0b\u5f0f\u90e8\u7f72\u7684\u901f\u5ea6\uff0c\u4e0d\u591a\u8aaa\u5feb\u770b\u5167\u5bb9\u5427\uff01\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jenkins + Fastlane on CentOS 7 \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\" \/>\n<meta property=\"og:description\" content=\"\u672c\u7bc7\u8981\u8a18\u9304\u4e00\u4e0b\u5982\u4f55\u5b89\u88dd Jenkins \u8207 Fastlane \u5230 Linux CentOS 7 \u4e0a\u9762\uff0cJenkins \u662f\u4e00\u500b\u5e02\u9762\u4e0a\u5e38\u7528\u7684 Continuous Delivery \u7684\u5de5\u5177\uff0c\u5f9e 2011 \u5e74\u958b\u767c\u5230\u73fe\u5728\u5df2\u7d93\u88ab\u5ee3\u6cdb\u63a1\u7528\uff0cFastlane \u5247\u662f\u4e00\u500b\u5728\u958b\u767c iOS \u8207 Android \u624b\u6a5f\u7a0b\u5f0f\u81ea\u52d5\u5316\u767c\u4f48\u65b0\u7248\u624b\u6a5f\u7a0b\u5f0f\u7684\u5de5\u5177\uff0c\u653e\u5728 Linux Server \u4e0a\u9762\u53ef\u4ee5\u52a0\u5feb\u624b\u6a5f\u7a0b\u5f0f\u90e8\u7f72\u7684\u901f\u5ea6\uff0c\u4e0d\u591a\u8aaa\u5feb\u770b\u5167\u5bb9\u5427\uff01\" \/>\n<meta property=\"og:url\" content=\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/\" \/>\n<meta property=\"og:site_name\" content=\"\u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-30T10:13:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-23T07:34:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/1_NKVd6EnZqZ9-BLbwzYV6CQ.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"\u6ab8\u6aac\u7238\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6ab8\u6aac\u7238\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/\"},\"author\":{\"name\":\"\u6ab8\u6aac\u7238\",\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"headline\":\"Jenkins + Fastlane on CentOS 7\",\"datePublished\":\"2019-11-30T10:13:43+00:00\",\"dateModified\":\"2020-09-23T07:34:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/\"},\"wordCount\":98,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"image\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/1_NKVd6EnZqZ9-BLbwzYV6CQ.png\",\"keywords\":[\"CentOS\",\"CICD\",\"Fastlane\",\"Jenkins\"],\"articleSection\":[\"ContinuousDelivery\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/\",\"url\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/\",\"name\":\"Jenkins + Fastlane on CentOS 7 \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\",\"isPartOf\":{\"@id\":\"https:\/\/myoceane.fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/1_NKVd6EnZqZ9-BLbwzYV6CQ.png\",\"datePublished\":\"2019-11-30T10:13:43+00:00\",\"dateModified\":\"2020-09-23T07:34:24+00:00\",\"description\":\"\u672c\u7bc7\u8981\u8a18\u9304\u4e00\u4e0b\u5982\u4f55\u5b89\u88dd Jenkins \u8207 Fastlane \u5230 Linux CentOS 7 \u4e0a\u9762\uff0cJenkins \u662f\u4e00\u500b\u5e02\u9762\u4e0a\u5e38\u7528\u7684 Continuous Delivery \u7684\u5de5\u5177\uff0c\u5f9e 2011 \u5e74\u958b\u767c\u5230\u73fe\u5728\u5df2\u7d93\u88ab\u5ee3\u6cdb\u63a1\u7528\uff0cFastlane \u5247\u662f\u4e00\u500b\u5728\u958b\u767c iOS \u8207 Android \u624b\u6a5f\u7a0b\u5f0f\u81ea\u52d5\u5316\u767c\u4f48\u65b0\u7248\u624b\u6a5f\u7a0b\u5f0f\u7684\u5de5\u5177\uff0c\u653e\u5728 Linux Server \u4e0a\u9762\u53ef\u4ee5\u52a0\u5feb\u624b\u6a5f\u7a0b\u5f0f\u90e8\u7f72\u7684\u901f\u5ea6\uff0c\u4e0d\u591a\u8aaa\u5feb\u770b\u5167\u5bb9\u5427\uff01\",\"breadcrumb\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#primaryimage\",\"url\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/1_NKVd6EnZqZ9-BLbwzYV6CQ.png\",\"contentUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/1_NKVd6EnZqZ9-BLbwzYV6CQ.png\",\"width\":1200,\"height\":600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/myoceane.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jenkins + Fastlane on CentOS 7\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/myoceane.fr\/#website\",\"url\":\"https:\/\/myoceane.fr\/\",\"name\":\"M-Y-Oceane \u60f3\u65b9\u6d89\u6cd5\u3002\u91cf\u74f6\u5916\u7684\u5929\u7a7a\",\"description\":\"\u60f3\u65b9\u6d89\u6cd5, France, Taiwan, Health, Information Technology\",\"publisher\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/myoceane.fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\",\"name\":\"\u6ab8\u6aac\u7238\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g\",\"caption\":\"\u6ab8\u6aac\u7238\"},\"logo\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/myoceane.fr\/index.php\/author\/johnny5584767gmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jenkins + Fastlane on CentOS 7 \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","description":"\u672c\u7bc7\u8981\u8a18\u9304\u4e00\u4e0b\u5982\u4f55\u5b89\u88dd Jenkins \u8207 Fastlane \u5230 Linux CentOS 7 \u4e0a\u9762\uff0cJenkins \u662f\u4e00\u500b\u5e02\u9762\u4e0a\u5e38\u7528\u7684 Continuous Delivery \u7684\u5de5\u5177\uff0c\u5f9e 2011 \u5e74\u958b\u767c\u5230\u73fe\u5728\u5df2\u7d93\u88ab\u5ee3\u6cdb\u63a1\u7528\uff0cFastlane \u5247\u662f\u4e00\u500b\u5728\u958b\u767c iOS \u8207 Android \u624b\u6a5f\u7a0b\u5f0f\u81ea\u52d5\u5316\u767c\u4f48\u65b0\u7248\u624b\u6a5f\u7a0b\u5f0f\u7684\u5de5\u5177\uff0c\u653e\u5728 Linux Server \u4e0a\u9762\u53ef\u4ee5\u52a0\u5feb\u624b\u6a5f\u7a0b\u5f0f\u90e8\u7f72\u7684\u901f\u5ea6\uff0c\u4e0d\u591a\u8aaa\u5feb\u770b\u5167\u5bb9\u5427\uff01","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/","og_locale":"en_US","og_type":"article","og_title":"Jenkins + Fastlane on CentOS 7 \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","og_description":"\u672c\u7bc7\u8981\u8a18\u9304\u4e00\u4e0b\u5982\u4f55\u5b89\u88dd Jenkins \u8207 Fastlane \u5230 Linux CentOS 7 \u4e0a\u9762\uff0cJenkins \u662f\u4e00\u500b\u5e02\u9762\u4e0a\u5e38\u7528\u7684 Continuous Delivery \u7684\u5de5\u5177\uff0c\u5f9e 2011 \u5e74\u958b\u767c\u5230\u73fe\u5728\u5df2\u7d93\u88ab\u5ee3\u6cdb\u63a1\u7528\uff0cFastlane \u5247\u662f\u4e00\u500b\u5728\u958b\u767c iOS \u8207 Android \u624b\u6a5f\u7a0b\u5f0f\u81ea\u52d5\u5316\u767c\u4f48\u65b0\u7248\u624b\u6a5f\u7a0b\u5f0f\u7684\u5de5\u5177\uff0c\u653e\u5728 Linux Server \u4e0a\u9762\u53ef\u4ee5\u52a0\u5feb\u624b\u6a5f\u7a0b\u5f0f\u90e8\u7f72\u7684\u901f\u5ea6\uff0c\u4e0d\u591a\u8aaa\u5feb\u770b\u5167\u5bb9\u5427\uff01","og_url":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/","og_site_name":"\u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","article_published_time":"2019-11-30T10:13:43+00:00","article_modified_time":"2020-09-23T07:34:24+00:00","og_image":[{"width":1200,"height":600,"url":"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/1_NKVd6EnZqZ9-BLbwzYV6CQ.png","type":"image\/png"}],"author":"\u6ab8\u6aac\u7238","twitter_card":"summary_large_image","twitter_misc":{"Written by":"\u6ab8\u6aac\u7238","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#article","isPartOf":{"@id":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/"},"author":{"name":"\u6ab8\u6aac\u7238","@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"headline":"Jenkins + Fastlane on CentOS 7","datePublished":"2019-11-30T10:13:43+00:00","dateModified":"2020-09-23T07:34:24+00:00","mainEntityOfPage":{"@id":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/"},"wordCount":98,"commentCount":1,"publisher":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"image":{"@id":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#primaryimage"},"thumbnailUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/1_NKVd6EnZqZ9-BLbwzYV6CQ.png","keywords":["CentOS","CICD","Fastlane","Jenkins"],"articleSection":["ContinuousDelivery"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/","url":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/","name":"Jenkins + Fastlane on CentOS 7 \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","isPartOf":{"@id":"https:\/\/myoceane.fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#primaryimage"},"image":{"@id":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#primaryimage"},"thumbnailUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/1_NKVd6EnZqZ9-BLbwzYV6CQ.png","datePublished":"2019-11-30T10:13:43+00:00","dateModified":"2020-09-23T07:34:24+00:00","description":"\u672c\u7bc7\u8981\u8a18\u9304\u4e00\u4e0b\u5982\u4f55\u5b89\u88dd Jenkins \u8207 Fastlane \u5230 Linux CentOS 7 \u4e0a\u9762\uff0cJenkins \u662f\u4e00\u500b\u5e02\u9762\u4e0a\u5e38\u7528\u7684 Continuous Delivery \u7684\u5de5\u5177\uff0c\u5f9e 2011 \u5e74\u958b\u767c\u5230\u73fe\u5728\u5df2\u7d93\u88ab\u5ee3\u6cdb\u63a1\u7528\uff0cFastlane \u5247\u662f\u4e00\u500b\u5728\u958b\u767c iOS \u8207 Android \u624b\u6a5f\u7a0b\u5f0f\u81ea\u52d5\u5316\u767c\u4f48\u65b0\u7248\u624b\u6a5f\u7a0b\u5f0f\u7684\u5de5\u5177\uff0c\u653e\u5728 Linux Server \u4e0a\u9762\u53ef\u4ee5\u52a0\u5feb\u624b\u6a5f\u7a0b\u5f0f\u90e8\u7f72\u7684\u901f\u5ea6\uff0c\u4e0d\u591a\u8aaa\u5feb\u770b\u5167\u5bb9\u5427\uff01","breadcrumb":{"@id":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#primaryimage","url":"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/1_NKVd6EnZqZ9-BLbwzYV6CQ.png","contentUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2019\/11\/1_NKVd6EnZqZ9-BLbwzYV6CQ.png","width":1200,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/myoceane.fr\/index.php\/jenkinsfastlane-on-centos-7\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/myoceane.fr\/"},{"@type":"ListItem","position":2,"name":"Jenkins + Fastlane on CentOS 7"}]},{"@type":"WebSite","@id":"https:\/\/myoceane.fr\/#website","url":"https:\/\/myoceane.fr\/","name":"M-Y-Oceane \u60f3\u65b9\u6d89\u6cd5\u3002\u91cf\u74f6\u5916\u7684\u5929\u7a7a","description":"\u60f3\u65b9\u6d89\u6cd5, France, Taiwan, Health, Information Technology","publisher":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/myoceane.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b","name":"\u6ab8\u6aac\u7238","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/myoceane.fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g","caption":"\u6ab8\u6aac\u7238"},"logo":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/image\/"},"url":"https:\/\/myoceane.fr\/index.php\/author\/johnny5584767gmail-com\/"}]}},"amp_enabled":false,"_links":{"self":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/2325","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/comments?post=2325"}],"version-history":[{"count":55,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/2325\/revisions"}],"predecessor-version":[{"id":6378,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/2325\/revisions\/6378"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/media\/2352"}],"wp:attachment":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/media?parent=2325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/categories?post=2325"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/tags?post=2325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}