
å€ãã®ã¢ãã€ã«éçºè
ã¯ãã¢ããªã±ãŒã·ã§ã³ããªãªãŒã¹ããéã®ã¿ã¹ã¯ãèªååãã
fastlaneããŒã«ãæããŠããŸãïŒã¹ã¯ãªãŒã³ã·ã§ããã®çæãiOSã®å Žåã®ã³ãŒã眲åãã¹ãã¢ãŸãã¯ããŒã¿ãã¹ãã·ã¹ãã ãžã®å±éïŒã é·ãéfastlaneã¯macOSã§ãã䜿çšã§ããŸããã§ããããçŸåšãã®ãããžã§ã¯ãã¯éšåçã«ã¯ãã¹ãã©ãããã©ãŒã ã«ãªã£ãŠããŸãã ãããŠããã®äœæè
Felix Krauseã¯å
æ¥ã
fastlane.ci CIã·ã¹ãã ãšããæ°ãããããžã§ã¯ãã
倧ã
çã«çºè¡šããŸããã
ãããŠãFelixã«ã€ã³ã¿ãã¥ãŒããäž¡æ¹ã®ãããã¯ã«ã€ããŠè³ªåããŸãããCIã®æ°èŠæ§ã«ã€ããŠã®è³ªåããå§ãã次ã«ãéåžžã®ããã¡ã¹ãã¬ãŒã³ã«é²ã¿ãŸããã
-fastlane.ciã®ç»å Žã«é¢é£ããŠã誰ããããã§ã«å€ãã®CIã·ã¹ãã ãããããªããã1 ã€ãã ããšèšããããããŸããã ãŸã ä»ã®è£œåã§ã«ããŒãããŠããªãfastlane.ciã®äž»ãªç®æšãã©ã®ããã«èŠãŠããŸããïŒ-Fastlane.ciã¯ã¢ãã€ã«éçºè
ãæåç·ã«çœ®ããŸãã å€ãã®CIã·ã¹ãã ã¯éåžžã«äžè¬åãããŠããŸãããæçµçã«ã¯ã¢ãã€ã«éçºã®èŠä»¶ã«ããŸã察å¿ã§ããŸããã è¯ãäŸã¯ãããŒã ãSwiftã®æ°ããããŒãžã§ã³ã«ç§»è¡ãããšãã«Xcodeã®ç°ãªãããŒãžã§ã³ã䜿çšããå Žåã§ãã
ãããã£ãŠãfastlane.ciã¯ãã¢ãã€ã«éçºè
ã®äœæ¥ã楜ã«ãããæèŠã®ããããããžã§ã¯ãã§ãã ã¢ã€ãã¢ã¯ãCIã·ã¹ãã ããããžã§ã¯ããèªåçã«èªèããã»ãšãã©ã®éšåãããèªäœãã»ããã¢ããããæ°åã§æºåã§ããããã«ããããšã§ãã
-fastlaneãšfastlane.ciãå®å
šã«é£æºããããšã¯æããã§ãããã©ã®çšåºŠå¯æ¥ã«é¢é£ããŠããŸããïŒ fastlaneã®ä»ã®CIã®ãµããŒãã®åªå
é äœã¯äœããªããŸããïŒ fastlane.ciã¯fastlaneãªãã§äœ¿çšãããããšã«ãªã£ãŠããŸããïŒ-æåŸã®è³ªåã¯ãŸã 確å®ããŠããŸãããããããŸã§ã®ãšãããfastlane.ciãfastlaneã§ã®ã¿åäœãããããšãç®æããŠããŸãã æéãçµã€ã«ã€ããŠãã®å¶éã¯åŒ±ããªãå¯èœæ§ããããŸãããæåã®ããŒãžã§ã³ã§äœæ¥ããå ŽåãæãéèŠãªããšã«éäžããããšãã§ããŸãã
ãã ããfastlane.ciã§ã®äœæ¥ã¯ããã¡ãããfastlaneãšä»ã®CIãµãŒãã¹ãšã®çµ±åã«ã¯åœ±é¿ããŸããã ãã¹ãŠã®äººããåžæããCIã·ã¹ãã ã䜿çšããæš©å©ãæã£ãŠããŸã:)
-çŸåšãfastlane.ciã¯ã¢ãã€ã«éçºã®ã¿ããµããŒãããŠããŸãããããããŸã§ãã®äºçŽãè¡ãããŠããŸãã å°æ¥çã«ã¯ãã¢ãã€ã«ãã¡ã€ã³ã®ãŸãŸã«ããŠããããã®ã§ããããµããŒããããŠããã ãã§ã¯ãããŸãããïŒ-ããã§ã¯ãåã®åçãšåæ§ã«ãæåã«æãéèŠãªããšã«éäžããå¿
èŠããããŸãããã®åŸãã¢ã¯ãã£ããã£ã®ç¯å²ãåŸã
ã«æ¡å€§ã§ããŸãã
-ç§ãã¡ãç解ããŠããéããfastlane.ciã¯ç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§å®è¡ã§ããŸã...-ããããfastlane.ciã¯ã¯ãã¹ãã©ãããã©ãŒã ã§ã¯ãªããmacOSçšã§ãã
-åŸ
ã£ãŠãã ããã ã·ã¹ãã èŠä»¶ã«ã¯ãRuby 2.3.0以éãå¿
èŠã§ãã iOSãããžã§ã¯ãããã«ãããã«ã¯ãmacOSãšXcodeãå¿
èŠã§ããã ã€ãŸãããRuby 2.3.0以éãšmacOSãå¿
èŠããããæ£ç¢ºã«ãªããŸããïŒ-ããããã®åé¡ãæ確ã«ããããã«READMEãæŽæ°ããŸãã ãããŸã§ã®ãšããããã¹ãŠãmacOSå°çšã«èšèšãããŠããŸãã
-Fastlane.ciã¯ãiOSãšAndroidã®äž¡æ¹ããµããŒãããäºå®ã§ãã Androidã®äžçã§ã¯ãBuddyBuildã§ã®AndroidãµããŒãã®çµäºã«ãããCIã®éèŠãå¢å ãããšæããŸããïŒ-BuddyBuildã®äœ¿çšã¯ãAndroidãšiOSã®äž¡æ¹ã§æžå°ãããšæããŸããããã¯ãä»åŸæ°ãæ/æ°å¹Žã®ãã¡ã«BuddyBuildããã®ç©æ¥µçãªéçºãåŸ
ã€äŸ¡å€ãã»ãšãã©ãªãããã§ãã
-fastlane.ciããfastlaneã«ç§»åããŸãããã æåã«ããããã¯ããé ãé¢ããŠãã人ã
ã®ç¶æ³ãæ確ã«ããŸãããã Fastlaneã«ã¯æ³šæãå¿
èŠãªè©±ããããŸããæåã¯ç¬ç«ãããããžã§ã¯ãã§ããã®åŸTwitterã®æ¯é
äžã«å
¥ããFabricã®äžéšãšãªããFabricãšãšãã«Googleã«åãæ¿ããŸããã ããã«ããããFastlaneã䜿çšããããã«Fabricã䜿çšããå¿
èŠããããŸããïŒã ç©äºã¯ã©ãã§ããïŒ-çŸæç¹ã§ã¯ãfastlaneã¯Googleã®ç¬ç«ãããããžã§ã¯ãã§ãã fastlaneã䜿çšããããã«ãFabricãFirebaseããŸãã¯GoogleãµãŒãã¹ã䜿çšããå¿
èŠã¯ãããŸããã ãã®ãããžã§ã¯ãã¯
ãªãŒãã³ãœãŒã¹ã§ãããã³ãã¥ããã£ãšãšãã«ç§ãã¡ã«ãã£ãŠãµããŒããããŠããŸãã
-ãããžã§ã¯ãã«é¢ããææ°ãã¥ãŒã¹ã¯ãããã¡ã¹ãã¬ãŒã³ã®åã
ã®éšåã«å¯ŸããLinuxããã³Windowsã®ãµããŒãã«ç©æ¥µçã«åãçµãã§ããããšããçºè¡šã§ã...-ãŸããç§ã¯å人çã«ãããç©æ¥µçã«è¡ããŸããã ããããè²¢ç®è
ã®ããŒã ã«ã¯ãä»ã®ãã©ãããã©ãŒã ã®ãµããŒããåŒãåãã人ãããŸããã ãããŠããæ°ãæãäœæ¥ãå®éã«è¡ãããŠããããããŸããŸãå€ãã®fastlaneã³ã³ããŒãã³ããmacOSãå¿
èŠãšããªããªããŸããã
-ãã®äœæ¥ã«ãããååž°ã®äžæ¬æã¯ãåªå
床ã®é«ãã¡ã€ã³ããŒãžã§ã³ãå¶éããŸããïŒ-ã¯ããããã¯ãµããŒããããŠãããã©ââãããã©ãŒã ã®æ°ãå¢ãããªã¹ã¯ã§ããå¥ã®ãã©ãããã©ãŒã ã§äœããå£ãããšãåžžã«æããŠããŸãã
-iOSéçºè
ã¯Macã«åº§ã£ãŠããã®ã§ãã¯ãã¹ãã©ãããã©ãŒã ã®fastlaneã®éèŠã¯Androidã ãã®ããã«çºçããŸãããããããšãiOSåŽã«ããããŸããïŒ-React Nativeã®ãããªã¯ãã¹ãã©ãããã©ãŒã éçºè
ãé€ããiOSã§ã®é«ãéèŠã¯èŠãŠããŸããã
-Androidéçºè
ãfastlaneãã€ã³ã¹ããŒã«ãããšãã«ãæåã®é
ç®ãšããŠãXcodeã³ãã³ãã©ã€ã³ããŒã«ã®ææ°ããŒãžã§ã³ã䜿çšããŠããããšã確èªããããåç
§ããŠãã ããã :)-ãŸããfastlaneãã€ã³ã¹ããŒã«ããMacäžã®Androidéçºè
ã¯ãå¿
ç¶çã«RubyãšOpenSSLãã€ã³ã¹ããŒã«ããããã«Xcodeã³ãã³ãã©ã€ã³ããŒã«ãå¿
èŠãšããŸãã
-ãããŠãiOSã®ããã¯ã°ã©ãŠã³ããæã£ãŠããAndroidããµããŒããããããžã§ã¯ãã®äœæ¥ãè€éã«ããŸããïŒãã¯ããééããªããã ç§ã¯iOSã¢ããªã±ãŒã·ã§ã³ã7幎éãã£ãŠããã®ã§ããã©ãããã©ãŒã ãšãšã³ã·ã¹ãã ã«ã€ããŠå€ããç¥ã£ãŠããŸãã ã§ããããç§ã¯å人çã«ã¯Androidã®éšåãæ±ã£ãŠããŸãããããã«çŠç¹ãåœãŠãè²¢ç®è
ã®ã°ã«ãŒããããŸãã
-fastlane.toolsã®ã¡ã€ã³ããŒãžã«ã¯ããfastlaneéçºè
ãäœæéç¯çŽãããããšããã«ãŠã³ã¿ãŒã衚瀺ãããŸãã ãã®æèšã«ã€ããŠã©ãæããŸããïŒ :)-fastlaneãæŽæ°ã確èªãããšåæã«ãéåžžã«åºæ¬çãªã¡ã¿ããŒã¿ïŒäž»ã«å®è¡ç¶æ
ã§è²»ããããæéãXcodeã®ããŒãžã§ã³ãOSã®ããŒãžã§ã³ïŒãéä¿¡ããŸãã
ãããããçµå±ã®ãšããããfastlaneã®å®è¡æéãã¯ãéçºè
ãfastlaneãªãã§åãã¿ã¹ã¯ã«è²»ããæéãšã¯ãŸã£ããåãã§ã¯ãªãå ŽåããããŸããã ãã®ã«ãŠã³ã¿ãŒã¯éåžžã«å€§ãŸããªè¿äŒŒå€ãšããŠèšèšãããŠããŸããïŒ-ã¯ããããã§ãã å®éãããããfastlaneã¯éçºè
ãããã«ç¯çŽããŸããã ããšãã°ãããŒã«ã©ã€ãºãããã¹ã¯ãªãŒã³ã·ã§ãããæåã§çæããå Žåãã¯ããã«æéãããããŸãã
-ãã©ã°ã€ã³ã®ãšã³ã·ã¹ãã å
šäœãfastlaneãäžå¿ã«æé·ããŸããã ãããã®äžã§å人çãªãæ°ã«å
¥ãã¯ãããŸããïŒ-ç§ã¯ä»¥åããããžãã䜿çšããŠããŸãããããã«ãããã³ã³ãã€ã«ã®çŽåã«ã¢ã€ã³ã³ã®ãããŒã¿ãã¢ã€ã³ã³ã«ããŒãžã§ã³çªå·ãç°¡åã«è¿œå ã§ããŸãã
-äœãããã©ã°ã€ã³ãšããŠå§ãŸããã¡ã€ã³ãã¡ã¹ãã¬ãŒã³ã§çµããããšã¯ãããŸããïŒ-ã¯ããããã¯ããã€ãã®ãã©ã°ã€ã³ã§çºçããŸãã-ãã®ãããªäž»ãªã±ãŒã¹ã¯disable_code_signingããã³enable_code_signingãã©ã°ã€ã³ã§ããã Xcode 8ã§ã¯ãAppleã¯ã³ãŒã眲åã®æ°ãããªãã·ã§ã³ãè¿œå ãã人ã
ã¯fastlaneã§ãããå¶åŸ¡ããããšèããŸããã HelmutïŒãã©ã°ã€ã³ã®äœæè
ïŒã¯ã圌ã«é£çµ¡ãããšãã«ãã©ã°ã€ã³ãfastlaneã«çµ±åããããšã«èŠªåã«åæããŸããã
-ãã©ã°ã€ã³ã§é©ããæ©èœã¯ãããŸããïŒ-iOSã¢ããªã±ãŒã·ã§ã³ã®çŸåšã®ã¬ãã¥ãŒæéãåãåã£ããã©ã°ã€ã³ãæ°ã«å
¥ã£ãã
-ãã®ãããªäººæ°ã®ããããŒã«ã倧äŒæ¥ã«ãã£ãŠäœæãããã®ã§ã¯ãªããåŠçãããžã§ã¯ããšããŠçãŸããããšã¯é©ãã¹ãããšã§ãã ãã®ãšã圌ã¯ç«¶äºçžæãããŸãããïŒ äœã圌ããåé¿ããã®ã«åœ¹ç«ã¡ãŸãããïŒ-ç§ãå§ãããšããã¢ããã°ã¯ãããŸããã§ããã åæ§ã®ããŒã«ã¯ãNomad Toolsã®Shenzhenã ãã§ãããããã®éçºã¯äžæ¢ãããŸããã ãããããã®ãããªãããžã§ã¯ããåç¬ã§éå§ããæ¹ãç°¡åã§ããäŸåé¢ä¿ã¯ãããŸããã
-ãããžã§ã¯ããTwitterã«ããããããšããã«ã¿ã€ã ã§äœæ¥ã§ããããã«ãªããŸããã ããããåãæ©äŒãåŸããšåæã«ãå®å
šãªç¬ç«æ§ãç¶æããããã«ã代ããã«äœããã®æ¹æ³ã§åçåãããã§ããïŒ-ããªãããããžã§ã¯ãã«åãçµãããšãèš±å¯ããŠããäŒç€Ÿããã®æåã®å©çã®ããã«è¡åãããªãã°ãç§ã¯å®å
šãªç¬ç«ã«å€§ããªå©ç¹ãèŠãŸããã fastlaneã®å ŽåãTwitterãšGoogleã®äž¡æ¹ãããããžã§ã¯ããã¢ãã€ã«éçºè
ã®ã³ââãã¥ããã£ã«ãšã£ãŠæãæå³ã®ããæ¹åã§éçºããããšãèš±å¯ãããŠãŒã¶ãŒã®èŠæã«è³ãåŸããŠåãçµã¿ãŸããã å®éãTwitterã®åã«ãfastlaneã«é¢é£ããfastlaneã®ã¹ãã³ãµãŒã·ãããšå¥çŽã®ä»äºããæäŸããŸããããããã¯å°é£ã§ãã-ããã¯éåžžã«ã¹ãã¬ã¹ããããæ°ãæ£ãããšã§ããã ç§ã¯ééããªããTwitterã®åã«ãã£ãããšãããçŸç¶ã奜ãã
-ããªãã®å Žåãäœåèªäœã¯åŠçãããžã§ã¯ãããçãŸããŸããã ãããŠããããèµ·ãããªãã£ãå Žåã圌ãã¯äœãããŸããïŒ ããªãã¯ãã©ã€ãã·ãŒãšã»ãã¥ãªãã£ãå¿é
ããŠããŸããïŒ-ãããããç§ã¯iOSã¢ããªã±ãŒã·ã§ã³ã§äœæ¥ããã§ããã-ãããŠããããããããã¯ãã©ã€ãã·ãŒã«ãããã®ã§ããããã¯ãã
-ããªãã®ãµã€ãã«ã¯ãã©ã€ãã·ãŒåé¡ã«é¢ããã»ã¯ã·ã§ã³å
šäœããããŸãããæ°ã¥ããªããã¡ã«ãããã¯æ¥çå
šäœã®åé¡ã ãšæããŸããïŒ-iOSã³ãã¥ããã£ã§ã¯ãç¹ã«ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒã®åé¡ã«å¯Ÿããèªèãäžè¶³ããŠãããšæããŸãã ããã¯ã»ãšãã©ã®äººã«ãšã£ãŠæãé
åçãªãããã¯ã§ã¯ãªãããããžã§ã¯ãã®éçºãé
ãããå¯èœæ§ãããããšãç解ããŠããŸãã ããããããã¯å¿
èŠã§ãã
åºåã®åã 4æãFelixã¯ãµã³ã¯ãããã«ãã«ã¯ã§éå¬ãããMobiusã«ã³ãã¡ã¬ã³ã¹ã§ãiOS SDKãä¿¡é Œããããšããå ±åæžã§è¬æŒããã»ãã¥ãªãã£ã®è©±é¡ã«åãçµã¿ãŸãã ãã®ã€ã³ã¿ãã¥ãŒã®åŸãFelixã«ãŸã 質åãããå Žåã¯ãMobiusãå人çã«è³ªåããã®ã䟿å©ã§ããã¬ããŒãåŸã®åã¹ããŒã«ãŒã¯ãé©åã«è³ªåã§ãããã£ã¹ã«ãã·ã§ã³ãšãªã¢ã«ç§»åããŸãã