Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
iOS³ÖÐø¼¯³É£ºXcode Server¡¢Jenkins¡¢TravisºÍfastlane
 
×÷ÕߣºThe Code Bug À´Ô´£ºinfoQ ·¢²¼ÓÚ 2017-4-21
  2435  次浏览      28
 

ÎÒµÄÍŶÓÈ¥ÄêÔøÁ½´ÎÀú¾¡Ç§ÐÁÍò¿àÏëҪѰÕÒÒ»ÖÖÄÜÂú×ãÎÒÃÇÐèÇóµÄ³ÖÐø¼¯³É£¨ÏÂÎÄͳһ¼ò³ÆÎª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ÊÇ·ñÄÜʤÈÎÖÁÉÙÕâÒ»¸öÈÎÎñ£¬»òÕß³¹µ×±»ÎÒÃÇÐ¶ÔØ£¬½á¹û»¹Óдý¹Û²ì¡£

 

   
2435 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ΪʲôҪ×ö³ÖÐø²¿Êð£¿
ÆÊÎö¡°³ÖÐø½»¸¶¡±£ºÎå¸öºËÐÄʵ¼ù
¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
³ÖÐø¼¯³É¹¤¾ßµÄÑ¡Ôñ-×°ÔØ
Ïà¹ØÎĵµ

³ÖÐø¼¯³É½éÉÜ
ʹÓÃHudson³ÖÐø¼¯³É
³ÖÐø¼¯³ÉÖ®-ÒÀÀµ¹ÜÀí
IPD¼¯³É²úÆ·¿ª·¢¹ÜÀí
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
ÏîÄ¿¹ÜÀí:MavenÈÃÊÂÇé±äµÃ¼òµ¥
³ÖÐø¼¯³É¹¤¾ßhudson
³ÖÐø¼¯³É
MavenȨÍþÖ¸ÄÏ
³ÌÐò¼¯(UMLÖеİü)Ö®¼äÑ­»·


²úÆ··¢²¼¹ÜÀí
ÅäÖùÜÀí·½·¨¡¢Êµ¼ù¡¢¹¤¾ß
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
ʹÓÃCCÓëCQ½øÐÐÏîĿʵ¼ù
CVSÓëÅäÖùÜÀí
Subversion¹ÜÀíÔ±


º£º½¹É·Ý ÖØ¹¹¼°³ÖÐø¼¯³É
µçÑлªÔ´ Éè¼ÆÔ­Àí¡¢½¨Ä£ÓëÖØ¹¹
Èí¼þÅäÖùÜÀíÈÕ¹¹½¨¼°³ÖÐø¼¯³É
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
ÖйúÈí¼þÑз¢ÖÐÐÄ µ¥Ôª²âÊÔÓëÖØ¹¹
µ¥Ôª²âÊÔ¡¢Öع¹ºÍ³ÖÐø¼¯³Éʵ¼ù
ÂÞ¿ËΤ¶û C++µ¥Ôª²âÊÔ+ÖØ¹¹+Gtest