ÎÒµÄÍŶÓÈ¥ÄêÔøÁ½´ÎÀú¾¡Ç§ÐÁÍò¿àÏëҪѰÕÒÒ»ÖÖÄÜÂú×ãÎÒÃÇÐèÇóµÄ³ÖÐø¼¯³É£¨ÏÂÎÄͳһ¼ò³ÆÎªCI£©·þÎñÆ÷¡£
¿¼Âǵ½Ö®Ç°CI·½ÃæµÄÌåÑ飬ÒÔ¼°ÎÒÃǵÄiOS¿ª·¢ÕßÌá³öµÄ¸÷ÖÖÐèÇó£¬ÎÒÃǶÔÕâÖÖ·þÎñÆ÷µÄÒªÇóÊDZØÐëÄܹ»£º
¹¹½¨²¢Ç©ÊðÎÒÃǵÄËùÓв»Í¬ÌØÐÔµÄÓ¦Óã»
½«ÎÒÃǵÄÓ¦ÓÃÉ̵êÊ×Ñ¡ÏîÉÏ´«ÖÁiTunes Connect£»
½«IPA¡¢dSYM£¬ÒÔ¼°±ä¸üÈÕÖ¾ÉÏ´«ÖÁHockeyApp£»
Õë¶Ô·¢²¼ºÍ¿ª·¢·ÖÖ§³ÖÐø²»¶ÏµØÔËÐе¥Ôª²âÊÔºÍUI²âÊÔ£»
¹¹½¨Ã¿´ÎºÏ²¢ÇëÇó£¨MR£©²¢»ã±¨²âÊÔ½á¹û£»
½øÐгÖÐø²»¶ÏµØ¹¹½¨ºÍÇ©Êð£¬ÒÔÈ·±£Ã»ÓÐÒýÈëеÄÎÊÌâ¡£
³ýÁËÃüÁîÐй¤¾ß£¬ÎÒÃÇ¿¼ÂǹýÏÂÃæ¼¸¸ö²úÆ·£º
xcodebuild - ÓÉApple¿ª·¢£¬Ö÷ÒªÓÃÓÚXcodeµÄ¹¹½¨ºÍ²âÊÔ£¬ÓÐʱ¿ÉÄÜÄÑÒÔÏëÆð£¬µ«¿ÉÅäÖó̶Ⱥܸߡ£
fastlane - ʵ¼ÊÉϲ¢²»ÊÇÒ»¸ö¹¤¾ß£¬¶øÊÇÒ»×é¿ÉÓÃÓÚ¹¹½¨¡¢²âÊÔ¡¢ÉÏ´«ÖÁiTunes Connect¡¢¹©Ó¦ÅäÖÃÎļþ¹ÜÀí¡¢ÆÁÄ»½ØÍ¼´´½¨¡¢dsymÉÏ´«/ÏÂÔØÖÁÖ÷Òª±ÀÀ£±¨¸æÆ½Ì¨µÄһϵÁй¤¾ß¡£
xctoolºÍÆäËû - ¡°ÆäËû¡±ÊÇÖ¸ÖîÈçnomad toolsµÈ¹¤¾ß£¬ÕâЩ¹¤¾ß»òÕß±»ÆúÓ㬻òÕßÖð½¥È±ÉÙÖ§³Ö£¬»òÕß¼´½«±»·ÏÆú¡£¾¡¹ÜFacebookÔÚʹÓÃijÖÖ¹¤¾ß£¬µ«²¢²»Òâζ×ÅÕâ¸ö¹¤¾ßÒÀÈ»¿ÉÒԵõ½Í×ÉÆµÄά»¤¡£
ºóÃæµÄ²âÊÔ½á¹û»á¸æËßÄã×îÖÕ±»ÎÒÃÇÑ¡ÖеĹھü£¨¼ÌÐø¶ÁÏÂÈ¥°É£©¡£
Óë´Ëͬʱ£¬Èç¹ûȱÉÙ³ÖÐø²»¶ÏÔËÐÐËùÐèµÄ·þÎñÆ÷£¬¹¤¾ß±¾ÉíÒ²ºÁÎÞÒâÒå¡£ÓÐÈËÍÆ¼öÁ˼¸¸öCI·þÎñÆ÷£¬¾ßÌåÈçºÎÑ¡Ôñ£¬Ö»ÒªÏȾö¶¨´òË㽫ʱ¼äͶÈëÔÚÄÄÀï¾ÍÐÐÁË¡£
·þÎñÆ÷·½ÃæÖ÷ÒªµÄÑ¡Ôñ°üÀ¨£º
TravisCI/CircleCI - ÍйÜʽ·þÎñÆ÷£¬¿ÉÃâ·ÑÓÃÓÚ¿ªÔ´ÏîÄ¿£¬¿ÉËæ´¦·ÃÎÊ£¬¼«ÎªÇ¿´ó¡£Ïà±ÈJenkins¿ÉÅäÖõÄÑ¡Ïî½ÏÉÙ£¬½öÖ§³ÖÓëGithub¼¯³É¡£ÓÃÓÚ˽ÓдúÂë¿âµÄ¼Û¸ñ¸ß°º¡£
Xcode Server - ÄÜÓëXcode¸ß¶È¼¯³É£¬Êµ¼ÊÉÏÒ²ÊÇΨһ¿ÉÓÃÓÚXcodeµÄ·þÎñÆ÷£¬ÓÉApple¿ª·¢£¬×îÓпÉÄÜÖ»ÐèÒªÉÙÁ¿ÅäÖü´¿ÉͶÈëʹÓá£
Jenkins - CI·þÎñÆ÷ÁìÓòÔø¾µÄÍõÕߣ¬ÓдóÁ¿²å¼þ¿ÉÓ㬿ÉÓë¸÷ÖÖÆäËû²úÆ·¼¯³É£¬ÐèÒªÒ»¶¨µÄÅäÖúÍά»¤£¬µ«ÊǷdz£Ç¿´ó¡£
ÎÒÃǵĿ¼Á¿£º
1.TravisCI
Ò»ÖÖÎ§ÈÆGitHub¿ª·¢µÄ£¬·Ç³£¼òµ¥µÄCI·þÎñÆ÷¡£ÖØÒª£ºÈç¹ûÄãµÄ´úÂëûÓÐÍйܵ½GitHub£¬ÄÇô¾ÍºÜ²»ÐÒÁË¡£ÓÉÓÚ¼Û¸ñÔÒò£¬»ò³öÓÚ°²È«µÄÔÒòÏ£Íû×ÔÐÐÍйÜ×Ô¼ºµÄ´úÂ룬ºÜ¶à¹«Ë¾»áʹÓÃGitHubµÄÌæ´úÆ·£¬ÀýÈçBitbucket»òGitlab¡£µ«Èç¹ûÄãµÄ´úÂëÍйÜÔÚGithub£¬²¢ÇÒÄãÔ¸ÒâΪTravis/CircleÖ§¸¶°üÔ·ÑÓ㬿ÉÒÔÔÚÕâÀïÁ˽âTravisÕâÒ»Á÷ÐеÄiOS¿â£ºAFNetworking¡£
TravisµÄ½çÃæ¸üΪרעÓÚ¹¹½¨µÄÉú³ÉºÍGithub PullÇëÇ󡣸÷þÎñÌṩÁ˲ðÏä¼´ÓõÄÄ£ÄâÆ÷ºÍXcode¾µÏñ£¨Äã¿ÉÒÔÖ¸¶¨¹¹½¨ËùҪʹÓõÄXcode°æ±¾£©¡£Travis
CIÒÀÈ»´¦ÓÚBeta²âÊԽ׶Σ¬¿ÉÒÔÖÜÆÚÐÔµØÔËÐÐ×÷Òµ£¬¶øJenkins¿ÉÊÇÔçÔںܾÃÒÔǰ¾ÍÌṩÕâÑùµÄ¹¦ÄÜÁË¡£
ÓÅÊÆ£º
²ðÏä¼´Óã¬Ò×ÓÚÉèÖã»
¿ÉÅäÖ㬿ɸù¾ÝÐèҪά»¤XcodeºÍ¹¤¾ßÑ¡Ï
ÄÜÓëGitHubʵÏÖÁ¼ºÃµÄ¼¯³É£»
ÌṩÁËÍêÉÆµÄÎĵµ£¬±»¿ªÔ´ÉçÇø¹ã·ºÊ¹Óã»
Óû§½çÃæÃÀ¹Û¡£
²»×㣺
Èç¹û´úÂëδÍйÜÔÚGitHub½«ÎÞ·¨Ê¹Óã»
¸¶·Ñ¼Æ»®¼Û¸ñ¸ß°º£¬¹¹½¨ÄÜÁ¦ÓÐÏÞ£»
Ïà±ÈJenkins£¬ÅäÖÃÑ¡ÏîºÍ²å¼þÊýÁ¿Éٺܶࡣ
½áÂÛ£º×îºó£¬TravisÒÔ¼°CircleCIȱ·¦ÓëBitbucketºÍGitlabµÄ¼¯³ÉÊÇÎÒÃÇÎÞ·¨½ÓÊܵġ£ÎÒÃǵĴúÂëδÍйܵ½Github£¬¾ÍËãÍйÜÁË£¬ÎÒÃÇÐèÒª³ÖÐø²»¶ÏÔËÐй¹½¨ºÍ²âÊÔµÄÐèÇóÒ²ÐèÒª¸ü¶àµÄ¹¹½¨Ê±¼ä£¨Ê±¼ä¾ÍÊǽðÇ®£¬Ò»µãû´í£¬CircleCI°´ÕÕ¹¹½¨Ëù½øÐеķÖÖÓÊýÊÕ·Ñ£©¡£ËûÃÇ»¹È±·¦ÍêÉÆµÄ²å¼þÉú̬Ìåϵ£¬ÕâÒ²ÈÃJenkinsÏԵøü¿ÉÈË£¨ÎÒÃÇÄÜ´´½¨ÒDZí°å£¬»òÕßÔÚʧ°ÜºóÖØÊÔ¹¹½¨3´Î£¬ÕâЩ¹¦Äܶ¼ÊDzå¼þµÄ¹¦ÀÍ£©¡£
2. Xcode Server
ÓÉApple¿ª·¢£¬Âú×ãiOS£¨ÒÔ¼°macOS£¿£©¿ª·¢ÕßCIÐèÇóµÄCI·þÎñÆ÷¡£Xcode
Server£¨XCS£©ËùνµÄ»úÆ÷ÈË£¨Bot£©£¬Æäʵ¾ÍÊÇJenkinsµÄ¡°×÷Òµ¡±£¬Á½ÕßÊÇÒ»»ØÊ£¬¶¼ÊÇÔ¤Ïȵ÷¶ÈºÃµÄÈÎÎñ¡£Xcode
ServerÔÚÎÒÃǵÄÏîÄ¿µ¼º½½çÃæÏÔʾµÄ»úÆ÷ÈËÊÇÕâÑùµÄ£º

Óû§¿ÉÒÔ¾ö¶¨ÊÇ·ñÈûúÆ÷ÈËÔËÐе¥Ôª²âÊÔ»òUI²âÊÔ£¬¿ÉÒÔ·ÖÎöÉõÖÁÉú³É¿É¹©°²×°µÄIPA£¨¹éµµ²Ù×÷£©£º

˳ÀûÖ´ÐÐÁ˼¯³ÉÖ®ºó¿ÉÒÔ¿´µ½ÕâÑùµÄ¸ÅÊöÐÅÏ¢£¬Õâ¿ÉÄÜÊÇXCS×î°ôµÄ¹¦ÄÜÁË£º

»¹ÓйØÓÚ²âÊԵĸÅÀÀ¡£

¹ØÓÚÈçºÎÓëXCSÅäºÏʹÓã¬Õû¸ö»¥ÁªÍøÉÏÖ»ÓÐһƪ´ÖÂÔµÄÖ¸ÄÏ£¬´ËÎÄ·¢²¼ÔÚHonza dworzky's¡£Èç¹ûÄãÏë½øÒ»²½Á˽âÈçºÎÅäÖÃXCS£¬½¨ÒéÔĶÁ´ËÎÄ¡£µ±È»Ò²²¢·ÇżȻ£¬HonzaÏÖÔÚÒѾ¼ÓÈëApple´ÓÊ¿ª·¢Õß¹¤¾ßÏà¹ØµÄ¹¤×÷¡£
Xcode·þÎñÆ÷Ò²Ðí¸üÁ˽âXcode£¬µ«¶Ô³ÖÐø¼¯³ÉÖªÖ®ÉõÉÙ¡£¸Ã·þÎñÆ÷¿É²¢ÐÐÔËÐÐÁ½¸ö»ò¸ü¶à×÷Òµ£¨»úÆ÷ÈË£©£¬µ«ÎÞ·¨½ÓÊÜGit×ÓÄ£¿é£¨Submodule£©±ä¸ü£¨¿Éͨ¹ý×Ô¶¨Òå½Å±¾ÊµÏָù¦ÄÜ£©¡£Èç¹ûÄãÓÐÐèÒª³ÖÐøÔËÐУ¬µ«ÓëXcodeû̫´ó¹ØÏµµÄÈÎÎñ£¨ÀýÈçÿÌìÏÂÔØlocalizable.stringsµÄ·Ò룩£¬XCS±ØÐëÊ×Ïȹ¹½¨»ò²âÊÔһЩÄÚÈݲÅÄÜÖ´ÐÐÕâЩ²Ù×÷¡£Èç¹ûXCS¹¹½¨Ê§°Ü£¬AppleµÄ¡°¼«¼òÖ÷ÒåÕÜѧ¡±Õâʱºò¾ÍÏÔ¶³öÀ´ÁË£¬XCSÖ»ÄÜÏÔʾһЩ¼òµ¥²¢ÇÒº¬ºýµÄ´íÎóÐÅÏ¢£¨/usr/bin
codesign failed£©¡£
×îÔã¸âµÄµØ·½ÔÚÓÚ£¬XCS¹¹½¨ºÍ²âÊÔÖ®ÍâµÄÒ»ÇУ¬±ØÐëʹÓÃXCSÌṩµÄ¼«ÎªÓÐÏÞµÄAPI×ÔÐд´½¨¡£ÎÞ·¨ÓëGitlab/Bitbucket/Github¼¯³É£¬Ã»ÓпÉÓÃÓÚÓëÎÞ×÷ÒµÁ÷³ÌµÄAPI½øÐÐͨÐŵIJå¼þ¡£Êµ¼ÊÉÏ£¬XCS**Ψһ**ÄÜ×öµÄ¾ÍÊÇÔÚÉ豸ÉÏÔËÐе¥Ôª²âÊÔºÍUI²âÊÔ¡£¾¡¹ÜÈç´Ë£¬Èç¹û²âÊÔʧ°Ü£¬ËüÒ²²»»á¸æËßÄãÔÒò£¬ÄãÖ»ÄÜ×Ô¼º´§Ä¦ÁË¡£
ÓÅÊÆ£º
ÄÜÓëXcodeʵÏÖÁ¼ºÃµÄ¼¯³É£»
Ò»Çоù²ðÏä¿ÉÓã»
ÌṩÁËÓÃÓÚ¼àÊÓ»úÆ÷È˵ÄWebÒDZí°å£»
ÄÜ´´½¨¿É°²×°µÄIPA£¬²¢ÄÜͨ¹ýWebÒDZí°å°²×°¡£
²»×㣺
ÔÚһЩ»ù±¾ÈÎÎñ·½ÃæÓÐËùÎÊÌ⣬ÀýÈçÓÐ×ÓÄ£¿é£¬ÐèÒª½«Ô´´úÂëÇ©³öʱ£»
ÎÞ·¨Ìí¼Ó¶à¸ö¹¹½¨Æ÷½Úµã£¬»úÆ÷ÈËÔËÐÐËÙ¶È»ºÂý£¬ÎÞ·¨×ÝÏòÀ©Õ¹£»
¹ýÓÚרעÓÚÓëXCode±¾ÉíÓйصÄÈÎÎñ£¬ÎÞ·¨ÔËÐÐÆäËûÀàÐ͵Ä×÷Òµ£»
¼¸ºõÎÞ·¨ÊµÏÖÓëµÚÈý·½µÄ¼¯³É£»
ÎÞ·¨¶Ô¹¹½¨ÎÊÌâ½øÐе÷ÊÔ£»
Ö»Êʺϵ¥Ôª²âÊÔºÍUI²âÊÔ¡£
½áÂÛ£º
AppleºÜÃ÷ÏÔ²¢²»´òË㿪·¢Ò»ÖÖÍ걸µÄCI·þÎñÆ÷¡£Ò²Ðí¸Ã²úÆ·Ö÷ÒªÊÇÒÔСÐÍÍŶӺͶÀÁ¢¿ª·¢ÕßΪĿ±ê¡£ÔÚÕë¶ÔXCS½øÐйý´óÁ¿ÊÔÑéºó£¬ÎÒÃǾõµÃ¾ÍËãСÐÍÍŶӣ¬Ò²ºÜÄÑÔÚºÏÀíʱ¼äÀïͨ¹ýXCS½øÐÐά»¤¡¢±£»î¡¢µ÷ÊԺͷ´À¡µÈÈÎÎñ¡£
¾ÍËãÄã²»»áÓöµ½ÕâÀàÎÊÌ⣬XCSÒ²ÎÞ·¨Ìṩ¹¹½¨ºÍ²âÊÔÖ®ÍâµÄÆäËûÈκι¦ÄÜ¡£ÉÏ´«ÖÁiTC¡¢¹©Ó¦ÅäÖÃÎļþÏÂÔØºÍ°²×°¡¢ÉÏ´«ÖÁHockey
app£¨»òFabric£©¡¢½«²âÊÔ½á¹û»ã±¨¸øGit´úÂë¿â¹ÜÀíÕߣ¬ÆäËû¸÷ÀàCIÈÎÎñ¶¼²»±»XCSÖ§³Ö£¬Òò´ËÏà±ÈÎÒÃÇ×îÖÕÑ¡ÔñµÄ²úÆ·£¬XCSµÄʵÓÃÐÔ´ó´òÕÛ¿Û¡£
3. Jenkins + fastlane
Õâ¸ö×éºÏÂÔÓв»Í¬£¬ÒòΪÐèÒªÕë¶ÔfastlaneµÄ¸ÅÄîºÍÓÃ;½øÐÐÒ»¸ö¼òµ¥µÄ½éÉÜ¡£
FastlaneÊÇÒ»×éÃüÁîÐй¤¾ß£¬¿É¹©¿ª·¢Õß¹¹½¨×Ô¼ºµÄÓ¦Óãº
fastlane gym --scheme YourSchemeName |
»òÔËÐе¥Ôª²âÊÔ£º
fastlane scan --scheme YourSchemeName |
»òÕë¶ÔÌØ¶¨É豸ÔËÐÐUI²âÊÔ£º
fastlane scan --scheme UITestsScheme --devices 'iPhone 5s' |
ÉõÖÁ¿ÉÒÔÉÏ´«Ó¦ÓýøÐÐÊÔÔËÐУº
fastlane pilot upload --ipa PathToIpa |
ÕâËĸö¼òµ¥µÄ²Ù×÷ÍêÈ«Âú×ãÁ˱¾ÎÄ¿ªÍ·ÁгöµÄÐèÇó¡£Fastlane»¹Óиü¶àÆäËû¹¦ÄÜ£¨ÀýÈ繩ӦÅäÖÃÎļþÏÂÔØºÍ°²×°£©£¬µ«ÉÏÃæÕ⼸¸öÃüÁî¶ÔÎÒÃÇÀ´ËµÒѾ¹»ÓÃÁË¡£
ÓÉÓÚfastlaneÃüÁî·Ç³£¼òµ¥²¢ÇÒ¿ÉÒÆÖ²£¬²¢ÄÜͨ¹ýFastfile½«Æä·ÅÈëÔ´´úÂë¿ØÖÆÏµÍ³£¬Òò´ËÖ»ÐèºÜÉٵŤ×÷£¬ÉõÖÁÎÞÐëÈκÎ×¼±¸£¬¼´¿ÉÇ¨ÒÆÖÁÈκÎCI·þÎñÆ÷£¬ÒòΪFastfileʵ¼ÊÉÏÊÇÒ»ÖÖÓ¦Óù¹½¨¡¢²âÊÔ¡¢·Ö·¢¹ý³ÌÖÐʹÓõġ°²ËÆ×¡±£¬¶ø·þÎñÆ÷Ö»²»¹ýÊÇÖ´ÐÐÕâЩ¹¤×÷µÄ³¡Ëù¡£
¼ÌÐøËµJenkins¡£JenkinsÊÇÒ»ÖÖWeb·þÎñÆ÷£¬¿ÉÔÚÈκμÆËã»ú£¨°üÀ¨×«Ð´±¾ÎÄËùÓõÄMacBook£©ÉÏÔËÐС£°²×°ºÃºó¿´ÆðÀ´ÊÇÕâÑùµÄ£º

ͨ¹ýʹÓÃÉÏÎĽéÉܵÄfastlaneÃüÁ¿ª·¢Õß¿ÉÒÔÇáËÉ´´½¨¸÷ÖÖ×÷Òµ£¬ÀýÈçµ÷ÓÃÏàÓ¦µÄfastlane scanÃüÁîÖ´Ðе¥Ôª²âÊÔºÍUI²âÊÔ¡£ÈôÒª´´½¨¹¹½¨²¢ÉÏ´«×÷Òµ£¬µ÷ÓÃfastlane
gymºÍfastlane pilot¼´¿É¡£Í¨¹ýʹÓÃGIT parameter£¨Ò»ÖÖGit²ÎÊý²å¼þ£©½«×÷Òµ²ÎÊý»¯£¬¼´¿É´ÓÈκηÖÖ§´¥·¢¹¹½¨£º

ºÏ²¢ÇëÇó¹¹½¨Æ÷ÊǸöºÜÓÐȤµÄÓÃÀý¡£Ëü¿ÉÒÔ±»Ã¿¸öºÏ²¢ÇëÇó´¥·¢£¬Ö´Ðе¥Ôª²âÊÔ£¨fastlane scan£©²¢½«½á¹û»ã±¨¸øGitlab¡£Í¨¹ýʹÓÃGitlab²å¼þ£¨ÉÏÎĽéÉܵķþÎñÆ÷¾ù²»¾ß±¸£©£¬ÔÚ±ä¸üÍÆ³öºóÖ»Ðèµã¼¸Ï°´Å¥¼´¿É½øÐй¹½¨£º

ͬʱ»áÔÚGitlab¡¢BitbucketµÄÌá½»ÅÔ±ßͨ¹ýÂÌÉ«¶Ô¹´£¨»òºì²æ£©»ã±¨½á¹û¡£

½èÖúÇ¿´óµÄBuild Monitor View²å¼þ£¬¿ª·¢Õß¿ÉÒÔͨ¹ýÏÂÃæÕâÑùÃÀ¹ÛµÄÊÓͼÌí¼ÓÔËÐе¥Ôª²âÊÔºÍUI²âÊÔµÄ×÷Òµ£º

Èç¹ûÐèÒª¸üϸ»¯µÄÁ£¶È£¬¿ÉÒÔͨ¹ýfastlaneÇáËɵØÖ¸¶¨UI²âÊÔҪʹÓõķÂÕæÆ÷£¨fastlane scan
--scheme UITestsSchema --devices 'iPhone 4S'£©£¬´ËÍ⻹¿É´´½¨¸üϸ»¯µÄUI²âÊÔÒDZí°å£¬½«Í¨¹ýfastlane
scanµ÷Óò»Í¬·ÂÕæÆ÷µÄ×î¶àÁù¸ö×÷Òµ»ã×ÜÔÚÒ»Æð£º

ÆäËû×÷Òµ¿ÉÒÔÿÌìʹÓÃfastlane sigh¸üв¢ÏÂÔØÖ®Ç°¹©Ó¦µÄÅäÖÃÎļþ¡£´¦ÀíÍêÿ¸öºÏ²¢ÇëÇóºó£¬ÆäËû×÷Òµ¿ÉÒÔΪ²âÊÔÕß´´½¨¹¹½¨²¢½«ÆäÉÏ´«ÖÁhockeyApp¡£µ±Ð¹¹½¨¿ÉÓÃʱ·¢ËͰüº¬±ä¸üÈÕÖ¾ºÍÏÂÔØÁ´½ÓµÄ¿É¿íÑÓ֪ͨÐÅÏ¢£¿Ò»ÇнԿÉÄÜ¡£
Jenkins¿Éͨ¹ýÔö¼Ó¹¹½¨Æ÷½ÚµãµÄ·½Ê½½øÐÐ×ÝÏòÀ©Õ¹£¬Õâ¸ö¹¦Äܾ¹È»ÊÇÃâ·ÑµÄ£¬Òò´ËÒ²ÖµµÃÒ»Ìá¡£JenkinsΨһµÄ²»×ãÔÚÓÚÓÉÓÚÊÇÃâ·ÑµÄ£¬Óû§ÐèÒª×ÔÐÐÍйܲ¢Î¬»¤¡£¸Ã²úÆ·µÄ½çÃæÒ»Ö±²»ÔõôÃÀ¹Û¡£³ý´ËÖ®Í⣬¸Ã²úÆ·µÄ²å¼þ¡¢Îȶ¨ÐÔ¡¢¿É¿¿ÐÔ£¬ÒÔ¼°Óë¸÷ÀàµÚÈý·½·þÎñµÄ¼¯³ÉÄÜÁ¦¶¼ÊǶ¥¼âµÄ¡£
½áÂÛ
¾ÍËãСÍŶÓÒ²¿ÉÒÔʹÓÃfastlaneÈÃiOSÓ¦ÓõĿª·¢¹ý³Ì£¨¹¹½¨¡¢ÉÏ´«¡¢²âÊÔ£©ÊµÏÖ×Ô¶¯»¯¡£ÅäÖÿÉÔËÐÐÕâЩfastlaneÃüÁîµÄJenkins·þÎñÆ÷£¬²Ù×÷¹ý³Ì²¢²»ÄÑ£¬ËæºóÔÙÒ²²»ÐèҪרÃÅÖ¸¶¨Ò»¸öÍŶӳÉÔ±¶¢×ÅÖն˳¤´ïÊýСʱʱ¼ä¹Ø×¢ÕâЩÃüÁîµÄÔËÐС£Á¼ºÃÇÒ͸Ã÷µÄ´íÎó´¦Àí»úÖÆÊÇfastlaneµÄÖ÷ҪĿ±êÖ®Ò»£¬Í¨¹ýÓëJenkins·þÎñÆ÷ÅäºÏʹÓ㬽«ÄÜΪÍŶÓÌṩһ¸öÇ¿´óµÄ½â¾ö·½°¸¡£FastlaneÍêÉÆµÄÎĵµºÍÒÑ»ñ֤ʵµÄÎȶ¨ÐÔ£¬ÒÔ¼°´óÁ¿µÄ²å¼þ£¬Ê¹µÃJenkins¿ÉÒÔ°ïÄ㽫¸ü¶à²»Í¬Á÷³ÌʵÏÖ×Ô¶¯»¯¡£ËùÓй¤×÷Ò»¼üµã»÷¼´¿ÉÍê³É¡£Xcode
ServerµÄ²î¾àÌ«´ó£¬ÆäËûCI·þÎñÆ÷¹¦ÄÜûÕâôǿ´ó£¨½öÖ§³ÖGithub£©£¬Òò´ËJenkins˳Àû³ÉΪÎÒÃÇÊ×Ñ¡µÄCI·þÎñÆ÷¡£
¸½×¢£ºÎÒÒÀÈ»ÔÚÊÔͼÈÃXcode Server³ÉΪÎÒÃÇCI»·¾³µÄÒ»·Ý×Ó£¬ÎÒ´òËãͨ¹ýËüÔÚÎïÀíÉ豸ÉÏÔËÐÐUI²âÊÔ¡£XCSÊÇ·ñÄÜʤÈÎÖÁÉÙÕâÒ»¸öÈÎÎñ£¬»òÕß³¹µ×±»ÎÒÃÇÐ¶ÔØ£¬½á¹û»¹Óдý¹Û²ì¡£
|