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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
iOS ¹¤³Ì×Ô¶¯»¯ - ˼·ÕûÀí
 
À´Ô´:»­Ôü³ÌÐòÔ³mmoaay ·¢²¼ÓÚ:2017-8-30
  2723  次浏览      27
 

ºóÀ´¸ú @zesming ´óÀйµÍ¨ÔõôȥÕûÀí×é¼þ×Ô¶¯¹¹½¨·¢²¼Ë¼Â·µÄʱºòËûÒ²¸úÎÒÌáµ½ÁËÕâÕÅͼ¡£ËùÒÔÎÒ×¼±¸Î§ÈÆÕâÕÅͼÀ´ÕûÀíһϠiOS ¹¤³Ì×Ô¶¯»¯µÄ˼·¡£

»ù´¡ÖªÊ¶

Ê×ÏÈ£¬ÎÒÃÇÐèÒªÕÆÎÕһЩ×Ô¶¯¹¹½¨·¢²¼µÄ»ù´¡ÖªÊ¶£¬Ö÷Òª°üº¬Èçϼ¸¸ö·½Ãæ¡£

GitFlow - ¹æ·¶ git ²Ù×÷Á÷³Ì

GitFlow ÊÇÓÉ Vincent Driessen Ìá³öµÄÒ»¸ö Git ²Ù×÷Á÷³Ì±ê×¼¡£°üº¬Èçϼ¸¸ö¹Ø¼ü·ÖÖ§£º

GitFlow µÄÓÅÊÆÓÐÈçϼ¸µã£º

1.²¢Ðпª·¢£ºGitFlow ¿ÉÒԺܷ½±ãµÄʵÏÖ²¢Ðпª·¢£ºÃ¿¸öй¦Äܶ¼»á½¨Á¢Ò»¸öÐ嵀 feature ·ÖÖ§£¬´Ó¶øºÍÒѾ­Íê³ÉµÄ¹¦ÄܸôÀ뿪À´£¬¶øÇÒÖ»ÓÐÔÚй¦ÄÜÍê³É¿ª·¢µÄÇé¿öÏ£¬Æä¶ÔÓ¦µÄ feature ·ÖÖ§²Å»áºÏ²¢µ½Ö÷¿ª·¢·ÖÖ§ÉÏ£¨Ò²¾ÍÊÇÎÒÃǾ­³£ËµµÄ develop ·ÖÖ§£©¡£ÁíÍ⣬Èç¹ûÄãÕýÔÚ¿ª·¢Ä³¸ö¹¦ÄÜ£¬Í¬Ê±ÓÖÓÐÒ»¸öÐµĹ¦ÄÜÐèÒª¿ª·¢£¬ÄãÖ»ÐèÒªÌá½»µ±Ç° feature µÄ´úÂ룬Ȼºó´´½¨ÁíÍâÒ»¸ö feature ·ÖÖ§²¢Íê³Éй¦ÄÜ¿ª·¢¡£È»ºóÔÙÇлØÖ®Ç°µÄ feature ·ÖÖ§¼´¿É¼ÌÐøÍê³É֮ǰ¹¦ÄܵĿª·¢¡£

2.Э×÷¿ª·¢£ºGitFlow »¹Ö§³Ö¶àÈËЭͬ¿ª·¢£¬ÒòΪÿ¸ö feature ·ÖÖ§Éϸ͝µÄ´úÂë¶¼Ö»ÊÇΪÁËÈÃij¸öÐ嵀 feature ¿ÉÒÔ¶ÀÁ¢ÔËÐС£Í¬Ê±ÎÒÃÇÒ²ºÜÈÝÒ×ÖªµÀÿ¸öÈ˶¼ÔÚ¸Éɶ¡£

3.·¢²¼½×¶Î£ºµ±Ò»¸öРfeature ¿ª·¢Íê³ÉµÄʱºò£¬Ëü»á±»ºÏ²¢µ½ develop ·ÖÖ§£¬Õâ¸ö·ÖÖ§Ö÷ÒªÓÃÀ´ÔÝʱ±£´æÄÇЩ»¹Ã»Óз¢²¼µÄÄÚÈÝ£¬ËùÒÔÈç¹ûÐèÒªÔÙ¿ª·¢Ð嵀 feature£¬ÎÒÃÇÖ»ÐèÒª´Ó develop ·ÖÖ§´´½¨Ð·ÖÖ§£¬¼´¿É°üº¬ËùÓÐÒѾ­Íê³ÉµÄ feature ¡£

4.Ö§³Ö½ô¼±ÐÞ¸´£ºGitFlow »¹°üº¬ÁË hotfix ·ÖÖ§¡£ÕâÖÖÀàÐ͵ķÖÖ§ÊÇ´Óij¸öÒѾ­·¢²¼µÄ tag ÉÏ´´½¨³öÀ´²¢×öÒ»¸ö½ô¼±µÄÐÞ¸´£¬¶øÇÒÕâ¸ö½ô¼±ÐÞ¸´Ö»Ó°ÏìÕâ¸öÒѾ­·¢²¼µÄ tag£¬¶ø²»»áÓ°Ïìµ½ÄãÕýÔÚ¿ª·¢µÄРfeature¡£

Glow flow ÊÇÈçºÎ¹¤×÷µÄ

й¦Äܶ¼ÊÇÔÚ feature ·ÖÖ§ÉϽøÐпª·¢

feature ·ÖÖ§¶¼ÊÇ´Ó develop ·ÖÖ§´´½¨£¬Íê³ÉºóÔٺϲ¢µ½ develop ·ÖÖ§ÉÏ£¬µÈ´ý·¢²¼¡£

µ±ÐèÒª·¢²¼Ê±£¬ÎÒÃÇ´Ó develop ·ÖÖ§´´½¨Ò»¸ö release ·ÖÖ§

È»ºóÕâ¸ö release ·ÖÖ§»á·¢²¼µ½²âÊÔ»·¾³½øÐвâÊÔ£¬Èç¹û·¢ÏÖÎÊÌâ¾ÍÔÚÕâ¸ö·ÖÖ§Ö±½Ó½øÐÐÐÞ¸´¡£ÔÚËùÓÐÎÊÌâÐÞ¸´Ö®Ç°£¬ÎÒÃǻ᲻ͣµÄÖØ¸´·¢²¼->²âÊÔ->ÐÞ¸´->ÖØÐ·¢²¼->ÖØÐ²âÊÔÕâ¸öÁ÷³Ì¡£

·¢²¼½áÊøºó£¬Õâ¸ö release ·ÖÖ§»áºÏ²¢µ½ develop ºÍ master ·ÖÖ§£¬´Ó¶ø±£Ö¤²»»áÓдúÂ붪ʧ¡£

master ·ÖÖ§Ö»¸ú×ÙÒѾ­·¢²¼µÄ´úÂ룬ºÏ²¢µ½ master É쵀 commit Ö»ÄÜÀ´×Ô release ·ÖÖ§ºÍ hotfix ·ÖÖ§¡£

hotfix ·ÖÖ§µÄ×÷ÓÃÊǽô¼±ÐÞ¸´Ò»Ð© Bug¡£

ËüÃǶ¼ÊÇ´Ó master ·ÖÖ§ÉϵÄij¸ö tag ½¨Á¢£¬ÐÞ¸´½áÊøºóÔٺϲ¢µ½ develop ºÍ master ·ÖÖ§ÉÏ¡£

GitFlow ¹¤¾ß

Èç¹ûÒªÔÚÏîÄ¿ÖÐÒýÈë GitFlow£¬ÍƼöʹÓà SourceTree À´×ö¿Í»§¶Ë¹¤¾ß£¬Ëü°üº¬ÁËËùÓÐ GitFlow µÄÁ÷³Ì£¬¿ÉÊÓ»¯²Ù×÷£¬ºÜ·½±ã¡£

gitignore - ¸ÉµôÄÇЩ¸ÉÈÅ´úÂë

ΪʲôÌáµ½ gitignore£¬Éó¹ý PR£¨Pull request£© »òÕß MR£¨Merge request£©µÄͬѧӦ¸ÃÉîÓÐÌå»á£¬µ±Ò»¸ö´ø×ÅÒ»´ó¶Ñ Pods ¿â´úÂëµÄ PR/MR Ï®À´µÄʱºò£¬ÄãµÄÄÚÐÄÓ¦¸ÃÊǾøÍûµÄ¡­¡­ËùÒÔÎÒÃÇÒªÁ˽âÏÂÔõô°ÑһЩ·ÇÄ£¿éÏà¹ØµÄ´úÂë ignore µô¡£

´´½¨ÏîÄ¿²Ö¿âÖÐµÄ .gitignore

Èç¹ûÄãÔÚÏîÄ¿²Ö¿âÄÚ´´½¨Ò»¸ö .gitignore Îļþ£¬Git »á¸ù¾ÝÕâ¸öÎļþÀ´¾ö¶¨ÄÄЩÎļþºÍĿ¼ÊÇÐèÒªºöÂԵġ£

×¢Ò⣺Èç¹ûÄãÏë°ÑÒ»¸öÒѾ­±»¸ú×ÙµÄÎļþ ignore µô£¬ÕâÊÇʱºòÐÂÔöµÄ¹æÔò²¢²»»á¶ÔÕâ¸öÎļþ²úÉú×÷Óã¬ÄãÐèÒªÏÈÓÃÏÂÃæµÄÖ¸Áî°ÑÕâ¸öÎļþÉèÖÃΪ²»¸ú×Ù£º


git rm --cached FILENAME

´´½¨È«¾ÖµÄ .gitignore

Õâ¸öÆäʵûɶÒâ˼£¬²»¹ý»¹ÊÇ¿´Ò»ÏÂÔõôÉèÖðɣº


git config --global core.excludesfile ~/.gitignore_global

iOSer ÐèÒªµÄ .gitignore

Github ¹Ù·½Ä£°æ¸ø³öµÄ½¨ÒéÈçÏ£º

# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## Build generated
build/
DerivedData/

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

## Other
*.moved-aside
*.xccheckout
*.xcscmblueprint

## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output

# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/

ͨ¹ýÕâ¸öÎļþÎÒÃÇ¿ÉÒÔ¿´µ½£¬ºöÂÔµÄÄÚÈÝÖ÷Òª°üº¬ÏÂÃæ¼¸ÖÖ£º

1.¹¹½¨²úÉúµÄĿ¼ºÍÎļþ£»

2.¸÷ÖÖÁÙʱÅäÖÃÎļþ£»

3.Obj-C / Swift Ïà¹ØµÄÌØ¶¨Îļþ£»

4.CocoaPods µÚÈý·½ Pods ¿âĿ¼£»

5.Carthage ¹¹½¨Ä¿Â¼£»

6.fastlane ¹¹½¨²úÉúµÄÎļþ£»

7.´úÂë×¢È빤¾ß²úÉúµÄĿ¼¼°Îļþ¡£

8.ÎÒÃÇ¿ÉÒÔ¸ù¾Ý×ÔÉíÏîÄ¿µÄÇé¿öÀ´¶ÔÕâЩÅäÖýøÐÐÏàÓ¦µÄµ÷ÕûºÍ¶¨ÖÆ¡£

githooks - ±³ºóµÄ¡°ÄÐÈË¡±

×¢£º±¾¶ÎÖ÷Òª·­Òë×Ô githooks ¹Ù·½Îĵµ¡£

githooks ¼ò½é

githooks ÊÇÖ¸ git ÔÚÖ´ÐÐÄ³Ð©ÌØ¶¨²Ù×÷ʱ»á´¥·¢µÄһϵÁгÌÐò£¬ÓеãÀàËÆÊý¾Ý¿âÖеĴ¥·¢Æ÷£¬ÓÉÓû§±àд¡£Ä¬ÈÏÇé¿öÏ£¬ÕâЩ³ÌÐò¶¼±»·ÅÖÃÔÚ $GIT_DIR/hooks Ŀ¼Ï£¬µ±È»£¬ÎÒÃÇÒ²¿ÉÒÔͨ¹ý git µÄ»·¾³ÅäÖñäÁ¿ core.hooksPath À´¸Ä±äÕâ¸öĿ¼¡£

githooks µÄÀàÐÍÓкܶàÖУ¬ÕâЩ hook »áÔÚ¸÷¸öÌØ¶¨²Ù×÷ʱ°ïÄã×Ô¶¯Íê³ÉһЩÄãÏëÒª×öµÄ²Ù×÷£¬±ÈÈ磺ÔÚÌá½»´úÂëµ½ develop ·ÖÖ§µÄʱºò×Ô¶¯´ò°ü¡£

Ŀǰ֧³ÖµÄ githooks

git commit Á÷³Ì

pre-commit

ÓÉ git commit ´¥·¢£¬¿ÉÒÔͨ¹ý --no-verify Ñ¡ÏîÀ´Ìø¹ý£¬Õâ¸ö hook ²»ÐèÒª²ÎÊý£¬Ôڵõ½Ìá½»ÏûÏ¢²¢¿ªÊ¼Ìá½»(commit)ǰ±»µ÷Óã¬Èç¹û·µ»Ø·Ç 0£¬Ôò»áµ¼Ö git commit ʧ°Ü¡£

µ±Ä¬È쵀 pre-commit ¹³×Ó±»ÆôÓÃʱ£¬Èç¹ûËü·¢ÏÖÎļþβ²¿Óпհ×ÐУ¬´Ë´ÎÌá½»¾Í»á±»ÖÕÖ¹¡£

Èç¹û½øÐÐ git commit µÄÃüÁîûÓÐÖ¸¶¨Ò»¸ö±à¼­Æ÷À´ÐÞ¸ÄÌá½»ÐÅÏ¢(commit message)£¬ÈÎºÎµÄ git commit hook ±»µ÷ÓÃʱ¶¼»á´øÉÏ»·¾³±äÁ¿ GIT_EDITOR=:

prepare-commit-msg

Ö´ÐÐ git commit ÃüÁîºó£¬ÔÚĬÈÏÌá½»ÏûÏ¢×¼±¸ºÃºóµ«±à¼­Æ÷Æô¶¯Ç°£¬Õâ¸ö hook ¾Í»á±»µ÷Óá£

Ëü½ÓÊÜ 1 µ½ 3 ¸ö²ÎÊý¡£µÚ 1 ¸öÊǰüº¬ÁËÌá½»ÏûÏ¢µÄÎļþµÄÃû×Ö¡£µÚ 2 ¸öÊÇÌá½»ÏûÏ¢µÄÀ´Ô´£¬Ëü¿ÉÒÔÊÇ£º

1.message£¨Èç¹ûÖ¸¶¨ÁË -m »òÕß -F Ñ¡Ï

2.template£¨Èç¹ûÖ¸¶¨ÁË -t Ñ¡Ï»òÕßÔÚ git configÖпªÆôÁË commit.template Ñ¡Ï

3.merge£¨Èç¹û±¾´ÎÌá½»ÊÇÒ»´ÎºÏ²¢£¬»òÕß´æÔÚÎļþ .git/MERGE_MSG£©

4.squash£¨Èç¹û´æÔÚÎļþ .git/SQUASH_MSG £©

5.commit ²¢ÇÒµÚ 3 ¸ö²ÎÊýÊÇÒ»¸öÌá½»µÄ SHA1 Öµ£¨Èç¹ûÖ¸¶¨ÁË -c,-C »òÕß --amend Ñ¡Ï

Èç¹û·µ»ØÖµ²»ÊÇ 0£¬ÄÇô git commit ÃüÁî¾Í»á±»ÖÐÖ¹¡£

Õâ¸ö hook µÄÄ¿µÄÊÇÓÃÀ´ÔÚ¹¤×÷ʱ±à¼­ÐÅÏ¢Îļþ£¬²¢ÇÒ²»»á±» --no-verify Ñ¡ÏîÌø¹ý¡£Ò»¸ö·Ç 0 ÖµÒâζ×Å hook ¹¤×÷ʧ°Ü£¬»áÖÕÖ¹Ìá½»¡£Ëü²»Ó¦¸ÃÓÃÀ´×÷Ϊ pre-commit ¹³×ÓµÄÌæ´ú¡£

commit-msg

ÓÉ git commit ´¥·¢£¬¿ÉÒÔͨ¹ý --no-verify Ñ¡ÏîÀ´Ìø¹ý£¬½ÓÊÜ 1 ¸ö²ÎÊý£¬Õâ¸ö²ÎÊý°üº¬ÁËÌá½»ÏûÏ¢µÄÎļþµÄÃû×Ö£¬Èç¹û·µ»Ø·Ç 0£¬Ôò»áÖÐÖ¹ git commit ÃüÁî¡£

Õâ¸ö hook ¿ÉÒÔÓÃÀ´¹æ·¶Ìá½»ÐÅÏ¢£¬±ÈÈç°ÑÐÅÏ¢¸ñʽ»¯³ÉÏîÄ¿¶¨ÖƵıê×¼¸ñʽ£¬»òÕß·¢ÏÖÌá½»ÐÅÏ¢²»·ûºÏ¸ñʽʱ¾Ü¾øÕâ´ÎÌá½»¡£

post-commit

ÓÉ git commit ´¥·¢£¬ÔÚÌá½»ºó±»µ÷Ó㬲»ÄÜÓ°Ïì git commit µÄ½á¹û¡£

git push Á÷³Ì

pre-push

ÔÚ git push ÔËÐÐÆÚ¼ä£¬¸üÐÂÁËÔ¶³ÌÒýÓõ«ÉÐδ´«ËͶÔÏóʱִÐС£Èç¹û·µ»Ø·Ç 0£¬½«ÖÐÖ¹ÍÆË͹ý³Ì¡£Ëü½ÓÊÜÔ¶³Ì·ÖÖ§µÄÃû×ÖºÍλÖÃ×÷Ϊ²ÎÊý£¬Í¬Ê±´Ó±ê×¼ÊäÈëÖжÁȡһϵÁдý¸üеÄÒýÓᣠÄã¿ÉÒÔÔÚÍÆËÍ¿ªÊ¼Ö®Ç°£¬ÓÃËüÑéÖ¤¶ÔÒýÓõĸüвÙ×÷¡£

pre-receive

·þÎñ¶Ë´¦ÀíÀ´×Ô¿Í»§¶ËµÄÍÆËͲÙ×÷ʱ£¬×îÏȱ»µ÷ÓÃµÄ hook¡£Ëü´Ó±ê×¼ÊäÈë»ñȡһϵÁб»ÍÆË͵ÄÒýÓá£Èç¹ûËüÒÔ·Ç 0 ÖµÍ˳ö£¬ËùÓеÄÍÆËÍÄÚÈݶ¼²»»á±»½ÓÊÜ¡£Äã¿ÉÒÔÓÃÕâ¸ö hook ×èÖ¹¶Ô non-fast-forward µÄ¸üУ¬»òÕß¶Ô¸ÃÍÆËÍËùÐ޸ĵÄËùÓÐÒýÓúÍÎļþ½øÐзÃÎÊ¿ØÖÆ¡£

update

ºÍ pre-receive hook Ê®·ÖÀàËÆ£¬²»Í¬Ö®´¦ÔÚÓÚËü»áΪÿһ¸ö×¼±¸¸üеķÖÖ§¸÷ÔËÐÐÒ»´Î¡£¼ÙÈçÍÆËÍÕßͬʱÏò¶à¸ö·ÖÖ§ÍÆËÍÄÚÈÝ£¬pre-receive Ö»ÔËÐÐÒ»´Î£¬Ïà±È֮Ϡupdate Ôò»áΪÿһ¸ö±»ÍÆË͵ķÖÖ§¸÷ÔËÐÐÒ»´Î¡£Ëü²»»á´Ó±ê×¼ÊäÈë¶ÁÈ¡ÄÚÈÝ£¬¶øÊǽÓÊÜÈý¸ö²ÎÊý£ºÒýÓõķÖÖ§Ãû£»ÍÆËÍǰÒýÓÃËùÖ¸ÏòÄÚÈÝµÄ SHA-1 Öµ£»ÒÔ¼°Óû§×¼±¸ÍÆËÍÄÚÈÝµÄ SHA-1 Öµ¡£Èç¹ûÕâ¸ö hook ÒÔ·Ç 0 ÖµÍ˳ö£¬Ö»ÓÐÏàÓ¦µÄÄÇÒ»¸öÒýÓûᱻ¾Ü¾ø£»ÆäÓàµÄÒÀÈ»»á±»¸üС£

post-receive

ÔÚÕû¸ö¹ý³ÌÍê½áÒÔºóÔËÐУ¬¿ÉÒÔÓÃÀ´¸üÐÂÆäËûϵͳ·þÎñ»òÕß֪ͨÓû§¡£Ëü½ÓÊÜÓë pre-receive ÏàͬµÄ±ê×¼ÊäÈëÊý¾Ý¡£ËüµÄÓÃ;°üÀ¨¸øÄ³¸öÓʼþÁÐ±í·¢ÐÅ£¬Í¨Öª³ÖÐø¼¯³É·þÎñÆ÷£¬»òÕ߸üÐÂȱÏÝ×·×Ùϵͳ ¡ª¡ª ÉõÖÁ¿ÉÒÔͨ¹ý·ÖÎöÌá½»ÐÅÏ¢À´¾ö¶¨Ä³¸öÎÊÌâÊÇ·ñÓ¦¸Ã±»¿ªÆô¡¢Ð޸ĻòÕ߹رա£¸Ã½Å±¾ÎÞ·¨ÖÐÖ¹ push ½ø³Ì£¬²»¹ý¿Í»§¶ËÔÚËü½áÊøÔËÐÐ֮ǰ½«±£³ÖÁ¬½Ó״̬£¬ËùÒÔÈç¹ûÄãÏë×öÆäËû²Ù×÷Ðè½÷É÷ʹÓÃËü£¬ÒòΪËü½«ºÄ·ÑÄãºÜ³¤µÄÒ»¶Îʱ¼ä¡£

post-update

ÓÉÔ¶³Ì²Ö¿âµÄ git-receive-pack µ÷Óã¬Ò²ÊǾÍÊDZ¾µØ²Ö¿âÍê³É git push ʱ¡£Õâ¸öÖ¸ÁîÖ»ÄÜÓÃÀ´×ö֪ͨ£¬²»Äܸıä git-receive-pack µÄ½á¹û¡£

push-to-checkout

ÓÉÔ¶³Ì²Ö¿âµÄ git-receive-pack µ÷Óã¬Ò²ÊǾÍÊDZ¾µØ²Ö¿âÍê³É git push ʱ¡£Èç¹ûÕâ¸ö hook ·µ»Ø·Ç 0 Öµ£¬Ôò»áÖÐ¶Ï git push ²Ù×÷¡£

applypatch-msg & pre-applypatch & post-applypatch

ÓÉ git am ´¥·¢£¬Ö÷ÒªÓÃÓÚÒýÈëµÚÈý·½ patch µÄʱºòÓá£ÒòΪÏîÄ¿ÖÐÔÝʱûÓÐÕâÑùµÄʹÓó¡¾°£¬ËùÒÔ²»×ö¾ßÌåÑо¿¡£

pre-rebase

ÓÉ git rebase ´¥·¢£¬¿ÉÒÔÓÃÀ´·Àֹij¸ö·ÖÖ§±» rebase¡£Õâ¸ö hook ½ÓÊÜ 1 µ½ 2 ¸ö²ÎÊý¡£µÚ 1 ¸ö²ÎÊýÊÇÉÏÓηÖÖ§£¬µÚ 2 ¸ö²ÎÊýÊǽ«ÒªÖ´ÐÐ rebase µÄ·ÖÖ§¡£

post-checkout

ÔÚ git checkout ³É¹¦ÔËÐкóÖ´ÐС£Äã¿ÉÒÔ¸ù¾ÝÄãµÄÏîÄ¿»·¾³ÓÃËüµ÷ÕûÄãµÄ¹¤×÷Ŀ¼¡£°üÀ¨·ÅÈë´óµÄ¶þ½øÖÆÎļþ¡¢×Ô¶¯Éú³ÉÎĵµ»ò½øÐÐÆäËûÀàËÆÕâÑùµÄ²Ù×÷¡£

post-merge

ÔÚ git merge ³É¹¦ÔËÐкóÖ´ÐС£Äã¿ÉÒÔÓÃËü»Ö¸´ Git ÎÞ·¨¸ú×ٵŤ×÷ÇøÊý¾Ý£¬±ÈÈçȨÏÞÊý¾Ý¡£Õâ¸ö hook Ò²¿ÉÒÔÓÃÀ´Ñé֤ijЩÔÚ Git ¿ØÖÆÖ®ÍâµÄÎļþÊÇ·ñ´æÔÚ£¬ÕâÑùÄã¾ÍÄÜÔÚ¹¤×÷Çø¸Ä±äʱ£¬°ÑÕâЩÎļþ¸´ÖƽøÀ´¡£

post-rewrite

Õâ¸ö hook ±»ÄÇЩ»áÌæ»»Ìá½»¼Ç¼µÄÃüÁîµ÷Ó㬱ÈÈç git commit --amend ºÍ git rebase£¨²»¹ý²»°üÀ¨ git filter-branch£©¡£ ËüΨһµÄ²ÎÊýÊÇ´¥·¢ÖØÐ´µÄÃüÁîÃû£¬Í¬Ê±´Ó±ê×¼ÊäÈëÖнÓÊÜһϵÁÐÖØÐ´µÄÌá½»¼Ç¼¡£ Õâ¸ö hook µÄÓÃ;ºÜ´ó³Ì¶ÈÉϸú post-checkout ºÍ post-merge ²î²»¶à¡£

sendemail-validate

Õâ¸ö hook ÓÉ git send-email ´¥·¢£¬Ëü½ÓÊÜÒ»¸ö²ÎÊý£º°üº¬ e-mail ½ÓÊÜÕßÓÊÏäµÄÎļþÃû¡£Èç¹ûÕâ¸ö hook ·µ»Ø·Ç 0 Öµ£¬git send-email ¾Í»á±»ÖÐÖ¹¡£

pre-auto-gc

Git µÄһЩÈÕ³£²Ù×÷ÔÚÔËÐÐʱ£¬Å¼¶û»áµ÷Óà git gc --auto ½øÐÐÀ¬»ø»ØÊÕ¡£Õâ¸ö hook »áÔÚÀ¬»ø»ØÊÕ¿ªÊ¼Ö®Ç°±»µ÷Ó㬿ÉÒÔÓÃËüÀ´ÌáÐÑÄãÏÖÔÚÒª»ØÊÕÀ¬»øÁË£¬»òÕßÒÀÇéÐÎÅжÏÊÇ·ñÒªÖжϻØÊÕ¡£

Cocoapods - ´ó¹Ü¼Ò

×öΪһ¸öµÚÈý·½¿âÒÀÀµ¹ÜÀí¹¤¾ß£¬Cocoapods ÔÚÄ£¿é»¯¿ª·¢ÖаçÑÝÁ˷dz£ºËÐĵĽÇÉ«¡£¹ØÓÚ Cocoapods µÄ¹¦ÄܺͽéÉÜÕâÀï¾Í²»Ò»Ò»³ÂÊöÁË£¬Ö÷Òª¿´Ò»ÏºÍÄ£¿é»¯¿ª·¢¹ý³ÌÖÐÏà¹ØµÄһЩ¶«Î÷¡£

×Ô¶¨Òå Cocoapods Ä£°å

ÎÒÃÇÒ»°ãÓà pod lib create Õâ¸öÖ¸ÁîÀ´´´½¨Ò»¸öÄ£¿é£¬ÆäʵÕâ¸öÖ¸ÁÓÐÒ»¸öÑ¡Ï--template-url=URL£¬ÓÃÀ´Ö¸¶¨Éú³É¿âµÄÄ£°å£¬¹Ù·½Ä£°åµØÖ·ÊÇ£ºhttps://github.com/CocoaPods/pod-template£¬¸ù¾ÝÕâ¸öÄ£°åÉú³ÉµÄ¹¤³ÌĿ¼½á¹¹ÈçÏ£º

MyLib
©À©¤©¤ .travis.yml
©À©¤©¤ _Pods.xcproject
©À©¤©¤ Example
©¦ ©À©¤©¤ MyLib
©¦ ©À©¤©¤ MyLib.xcodeproj
©¦ ©À©¤©¤ MyLib.xcworkspace
©¦ ©À©¤©¤ Podfile
©¦ ©À©¤©¤ Podfile.lock
©¦ ©À©¤©¤ Pods
©¦ ©¸©¤©¤ Tests
©À©¤©¤ LICENSE
©À©¤©¤ MyLib.podspec
©À©¤©¤ Pod
©¦ ©À©¤©¤ Assets
©¦ ©¸©¤©¤ Classes
©¦ ©¸©¤©¤ RemoveMe.[swift/m]
©¸©¤©¤ README.md

Ò²¾ÍÊÇ˵£¬ÎÒÃÇ¿ÉÒÔ fork Õâ·Ý¹Ù·½Ä£°æµØÖ·£¬È»ºó¶¨ÖÆÎÒÃÇ×Ô¼ºµÄÄ£°å£¨°üÀ¨Ö÷¹¤³ÌºÍÒµÎñÄ£¿é£©£¬Ôö¼Ó×Ô¶¨ÒåµÄ¹¦ÄÜ¡£±ÈÈ磺

1.Ìí¼ÓËùÓлù´¡¿âÒÀÀµ¡£

2.Ìí¼Ó˽ÓÐ Cocoapods ²Ö¿â¡£

3.Ìí¼Ó .gitignore Îļþ¡£

4.Ìí¼Ó×Ô¶¨Òå½Å±¾¡£

˽ÓÐ Cocoapods ²Ö¿â

ºÍÖ÷¹¤³ÌÒ»Ñù£¬Ä£¿éÒ²ÊÇÐèÒª×ö°æ±¾¹ÜÀíµÄ£¬Ä¿Ç°À´¿´±È½ÏºÃµÄ·½Ê½¾ÍÊÇͨ¹ý Cocoapods À´·¢²¼°æ±¾¡£ËùÒÔÎÒÃÇÐèҪ׼±¸Ò»¸ö×Ô¼ºµÄ˽ÓÐ Cocoapods ²Ö¿â£¬ÆäʵºÜ¼òµ¥£¬Ê×ÏÈÔÚÄÚÍø git ÉϽ¨Á¢Ò»¸ö¿Õ²Ö¿â£¬È»ºóÔÚ±¾µØÖ´ÐÐÒ»ÏÂÏÂÃæµÄÖ¸Áî¼´¿É£º

pod repo add [Spec name] [Git url]

È»ºó¾ÍÊÇÔÚ·¢²¼¿âµÄʱºò×¢Òâһϣ¬ÓÃÈçÏÂÖ¸Áî¼´¿É·¢²¼µ½Ë½ÓвֿâÄÚ£º


pod repo push [Spec name] [Lib name].podspec

Cocoapods ÒýÓõÚÈý·½¿âµÄ¼¸ÖÖ·½Ê½

ʹÓùý Cocoapods µÄͯЬӦ¸Ã¶¼ÖªµÀ£¬Cocoapods µÄÒýÓ÷½Ê½ÓÐÈýÖÖ£º

Á÷³Ì·ÖÎö

ÏÂÃæ¾ÍÊÇÎÒ¶Ô @zesming ´óÀзÖÏíµÄÁ÷³ÌͼÖи÷¸ö¹ý³ÌµÄһЩ˼¿¼¡£

ÒµÎñ·½ÐèÇ󵽿ª·¢

¸ù¾Ý GitFlow µÄ¹æ·¶£¬ÐµÄÐèÇó×ßµÄÊÇ feature µÄÁ÷³Ì¡£ÕâÀïÎÒÃÇÓ¦¸Ã¿ÉÒÔ¿ª·¢Ò»Ð©¸¨Öú¿ª·¢µÄ½Å±¾¡£

Ò»¼üн¨ÒµÎñÄ£¿éºÍÖ÷¹¤³Ì feature ·ÖÖ§

×é¼þ»¯µ½ÁËÒ»¸öÍêÕû½×¶ÎµÄʱºò£¬Ö÷¹¤³ÌÓ¦¸ÃÊÇûÓдúÂëµÄ£¬Ö»ÊÇÒ»¸ö¿Ç¡£µ«ÊÇÔÚ·¢Õ¹½×¶ÎµÄʱºò£¬Ö÷¹¤³Ì»¹»á°üº¬Ò»Ð©ÒµÎñ´úÂ룬ËùÒÔÎÒÃÇÔÚ¿ª·¢Ä³¸ö feature µÄʱºò£¬ÍùÍùÊÇÄ£¿éÄÚÓÐһЩ¾ßÌåÒµÎñ´úÂ룬Ö÷¹¤³Ì»¹ÓÐһЩµ÷ÓôúÂ룬Õâ¸öʱºò¾ÍÐèÒªÔÚÖ÷¹¤³ÌºÍÒµÎñÄ£¿é¶¼Ð½¨Í¬ÑùµÄ feature ·ÖÖ§£¬ËùÒÔÎÒÃÇÔÚÖ÷¹¤³ÌÔö¼ÓÒ»¸ö½Å±¾¡£Õâ¸ö½Å±¾µÄ²ÎÊý°üº¬£º

1.ÒµÎñÄ£¿éÃû£»

2.ÒµÎñÄ£¿é±¾µØÂ·¾¶£»

3.feature ·ÖÖ§Ãû¡£

Ö´Ðйý³ÌÈçÏ£º

1.ΪÖ÷¹¤³Ì´´½¨ feature ·ÖÖ§£»

2.½øÈëÒµÎñÄ£¿éËùÔÚĿ¼£¬ÎªÒµÎñÄ£¿é´´½¨ feature ·ÖÖ§£»

3.ÉèÖÃÖ÷¹¤³Ì Podfile ÖÐÒµÎñÄ£¿éÒýÓ÷½Ê½Îª±¾µØÂ·¾¶ÒýÓã»

4.´ò¿ªÖ÷¹¤³ÌºÍÒµÎñÄ£¿é Example ¹¤³Ì¡£

Ò»¼üÇл»Ö÷¹¤³Ì¿ª·¢µ÷ÊÔ״̬

Ò»¼üÇл»Ö÷¹¤³Ì¿ª·¢×´Ì¬ÊÇָijЩҵÎñÄ£¿éÐèÒªÒÀÀµÖ÷¹¤³ÌÀ´½øÐе÷ÊÔµÄʱºò£¨PS£ºµ±È»£¬±È½ÏÀíÏëµÄ״̬ÊÇÒµÎñÄ£¿é¿ÉÒÔ¶ÀÁ¢ÔËÐУ¬²»¹ýÒ»°ãÇé¿öÏ£¬ÀíÏëºÜÃÀºÃ£¬ÏÖʵºÜ²Ð¿á????£©£¬ÐèÒª½« Podfile ÖÐÕâ¸öÄ£¿éµÄÒýÓ÷½Ê½ÐÞ¸ÄΪ±¾µØÂ·¾¶µÄÒýÓ÷½Ê½¡£ÕâÑùÖ÷¹¤³Ì´úÂëµÄÐ޸ĺÍÒµÎñÄ£¿é´úÂëµÄÐ޸Ļá·Ö±ðÌá½»µ½¸÷×﵀ git ²Ö¿â£¬´Ó¶øÊµÏֱߵ÷ÊԱ߿ª·¢±ßÌá½»´úÂë¡£

Õâ¸ö¹¦ÄÜ¿¼ÂÇÓýű¾µÄ·½Ê½À´ÊµÏÖ£¬·ÅÖÃÔÚÖ÷¹¤³ÌµÄ³£Óýű¾Ä¿Â¼Ï¡£²ÎÊýÓ¦¸Ã°üº¬£º

1.ÒµÎñÄ£¿éÃû£»

2.ÒµÎñÄ£¿é±¾µØÂ·¾¶£»

3.ÒµÎñÄ£¿é feature ·ÖÖ§Ãû [¿ÉÑ¡]¡£

Ö´ÐеIJÙ×÷Ó¦¸Ã°üº¬£º

1.Èç¹ûÖ¸¶¨ÁËÒµÎñÄ£¿é feature ·ÖÖ§Ãû£¬ÔòÐèÒªÏȸøÒµÎñÄ£¿éн¨·ÖÖ§£¬·ñÔòÖ±½ÓÖ´ÐÐµÚ 2 ²½£»

2.ÐÞ¸ÄÖ÷¹¤³Ì Podfile ÖÐÒµÎñÄ£¿éµÄÒýÓ÷½Ê½Îª±¾µØÂ·¾¶ÒýÓã»

3.pod install£»

4.¹Ø±ÕÖ÷¹¤³Ì²¢ÖØÐ´ò¿ª¡£

Ò»¼üÇл»Ö÷¹¤³ÌÌύ״̬

ÒµÎñÄ£¿é¿ª·¢µ÷ÊÔÍê³ÉÖ®ºó£¬ÐèÒª½«Ö÷¹¤³Ì»Ö¸´µ½Õý³£µÄ״̬²¢Ìá½»¡£

Õâ¸ö¹¦ÄÜ»¹ÊÇÓýű¾µÄ·½Ê½ÊµÏÖ£¬·ÅÖÃÔÚÖ÷¹¤³ÌµÄ³£Óýű¾Ä¿Â¼Ï¡£²ÎÊýÓ¦¸Ã°üº¬£º

1.ÒµÎñÄ£¿éÃû£»

2.ÒµÎñÄ£¿éÔ¶³Ì git µØÖ·;

3.ÒµÎñÄ£¿é feature ·ÖÖ§Ãû¡£

Ö´ÐеIJÙ×÷Ó¦¸Ã°üº¬£º

1.¸ù¾Ýµ±Ç°ÒµÎñÄ£¿é±¾µØÂ·¾¶£¬Ìá½»ÒµÎñÄ£¿é´úÂ룻

2.ÐÞ¸ÄÖ÷¹¤³Ì Podfile ÖÐÒµÎñÄ£¿éµÄÒýÓ÷½Ê½ÎªÔ¶³Ì git ÒýÓã»

3.pod install£»

4.¹Ø±ÕÖ÷¹¤³Ì²¢ÖØÐ´ò¿ª¡£

Ìá½»´úÂëµ½ÒµÎñ´úÂë²Ö¿â

Õâ¸ö¹ý³ÌÎÒÃÇÖ÷Ҫͨ¹ý githooks À´×öһЩһЩ×Ô¶¯¼ì²â¡£°üÀ¨£º

1.OCLint

2.µ¥Ôª²âÊÔ

3.·¢²¼×é¼þµ½ÄÚÍø Pods

4.×¼±¸½×¶Î

Õâ¸ö½×¶Î×öµÄÊÂÇéÖ÷ÒªÊǼì²âµ±Ç°ÐèÒª·¢²¼µÄËùÓзÖÖ§ÊÇ·ñ¶¼ÒѾ­Ìá½» PR / MR ²¢ºÏ²¢µ½ÁË develop ·ÖÖ§¡£

×¢£ºÕâÀï¶Ô·ÖÖ§µÄÃüÃû»áÓÐһЩ¹æÔòÉϵÄÒªÇó±È¡£ÈçÔÚ·ÖÖ§ÃûÄÚÐèÒª´øÉϵ±Ç°ÐèÒª·¢²¼µÄ°æ±¾ºÅ£¬´Ó¶ø¿ÉÒÔͨ¹ýÕâ¸ö°æ±¾ºÅÆ¥Åäµ½µ±Ç°ÐèÒª·¢²¼µÄËùÓзÖÖ§¡£

·¢²¼ -> ²âÊÔ -> bug fix -> Ôٴη¢²¼½×¶Î

ÕâÀïÐèÒª°Ñ GitFlow ºÍ Cocoapods µÄ·¢²¼Á÷³Ì½áºÏÆðÀ´¡£

¿¼Âǵ½Ò»°ãÐèÒªÒÀÀµÖ÷¹¤³ÌÀ´½øÐвâÊÔ£¬ÎÒÃÇÐèÒªÔÚÖ÷¹¤³ÌÔö¼ÓÒ»¸ö±¾µØ½Å±¾À´¸¨Öú·¢²¼£¬°üº¬µÄ²ÎÊýÈçÏ£º

1.µ±Ç°°æ±¾ºÅ£»

2.ÒµÎñÄ£¿é±¾µØÂ·¾¶£»

3.Ö÷¹¤³Ì feature ·ÖÖ§Ãû[¿ÉÑ¡]¡£

ʵÏֵŦÄÜÈçÏ£º

1.Èç¹ûÌṩÁËÖ÷¹¤³Ì feature ·ÖÖ§Ãû£¬ÐèÒªÏÈÇл»Ö÷¹¤³Ì·ÖÖ§£»·ñÔòÌø¹ýÕâÒ»²½£»

2.¸ù¾Ý´«ÈëµÄµ±Ç°°æ±¾ºÅ´Ó develop ·ÖÖ§½¨Á¢ release ·ÖÖ§¡£Èç¹ûÒѾ­´æÔÚ£¬ÔòÌø¹ýÕâÒ»²½£»

3.½«Ö÷¹¤³Ì git ²Ö¿âÖÐ Podfile ÒýÓøÃÄ£¿éµÄ·½Ê½Ì滻ΪÒýÓÃÔ¶³Ì git ²Ö¿âµÄ release ·ÖÖ§£»

4.È»ºóÔÚÖ÷¹¤³ÌÖ´ÐÐ pod update [Ä£¿éÃû] ¸üдúÂ룻

5.ÍÆËÍÖ÷¹¤³Ì´úÂëµ½Ô¶³Ì git ²Ö¿â¡£

6.ͨ¹ý githooks µÄ·½Ê½´ò°üÖ÷¹¤³Ì²¢Ìá½»²âÊÔ£»

7.²âÊÔ¹ý³ÌÖÐÈç¹û´æÔÚÎÊÌ⣬Ôòͨ¹ýÒ»¼üÇл»Ö÷¹¤³Ì¿ª·¢µ÷ÊÔ״̬½Å±¾Ö±½ÓÇл»¿ª·¢×´Ì¬²¢½øÐÐ bug fix£»

8.bug fix Ö®ºóÖØÐÂÖ´ÐÐµÚ 1 ²½¡£

²âÊÔÍê³É·¢²¼µ½ÄÚÍø Pods ½×¶Î

²âÊÔÍê³Éºó¾Í¿ÉÒÔ·¢²¼ÒµÎñÄ£¿éµ½ÄÚÍø Pods ÁË¡£ÕâÀïÎÒÃÇÔÚÒµÎñÄ£¿é¹¤³ÌÄÚ×¼±¸Ò»¸ö½Å±¾£¬²ÎÊýÈçÏ£º

1.µ±Ç°°æ±¾ºÅ¡£

2.Ö÷¹¤³Ì±¾µØÂ·¾¶¡£

ʵÏֵŦÄÜÈçÏ£º

1.Ê×ÏÈÎÒÃÇÒªÐÞ¸Ä .podspec ÎļþÖеİ汾ºÅΪ´«ÈëµÄµ±Ç°°æ±¾ºÅ£¬²¢Ìá½» push µ½ release ·ÖÖ§¡£

2.È»ºó¸ù¾Ý GitFlow µÄ release Á÷³Ì£¬ºÏ²¢ release ·ÖÖ§µ½ develop ·ÖÖ§ºÍ master ·ÖÖ§£¬È»ºóÔÚ master ·ÖÖ§½¨Á¢¶ÔÓ¦°æ±¾ºÅµÄ tag ²¢ push µ½Ô¶³Ì git ²Ö¿â¡£

3.È»ºó¾Í¿ÉÒÔ·¢²¼ÒµÎñÄ£¿éÁË£¬·¢²¼Íê³ÉÖ®ºóÇл»µ½Ö÷¹¤³Ì·¾¶½«Ö÷¹¤³Ì Podfile ÖжԸÃÄ£¿éµÄÒýÓ÷½Ê½ÐÞ¸ÄΪ°æ±¾ºÅÒýÓá£

¼¯³É×é¼þµ½Ö÷¹¤³Ì

ÒòΪ֮ǰ·¢²¼×é¼þµÄʱºòÒѾ­½«Ö÷¹¤³Ì¶Ô¸÷ÒµÎñÄ£¿éµÄÒýÓ÷½Ê½ÐÞ¸ÄΪ°æ±¾ºÅÒýÓá£ËùÒÔÕâ¸ö½×¶ÎÎÒÃÇÖ»ÐèÒªÑé֤һϵ±Ç°Ö÷¹¤³ÌÒýÓõÄÊÇ·ñÊǸ÷ÒµÎñÄ£¿éµÄ×îз¢²¼°æ±¾¼´¿É¡£²ÎÊýÈçÏ£º

Ö÷¹¤³ÌÒÀÀµµÄËùÓÐÒµÎñÄ£¿éÁбí

Íê³ÉµÄ¹¦ÄÜÈçÏ£º

¼ì²âÖ÷¹¤³ÌÒÀÀµÄ£¿éµÄËùÓÐÒµÎñÄ£¿éµÄ×îа汾ÊÇ·ñºÍ Podfile ÖÐÖ¸¶¨µÄÒ»Ö£¬Èç¹û²»Ò»Ö£¬±¨´í¡£

·¢²¼Ö÷¹¤³Ì

×¼±¸½×¶Î

Õâ¸ö½×¶Î×öµÄÊÂÇéÓÐÁ½µã£º

1.¼ì²âÖ÷¹¤³Ìµ±Ç°ÐèÒª·¢²¼µÄËùÓзÖÖ§ÊÇ·ñ¶¼ÒѾ­Ìá½» PR / MR ²¢ºÏ²¢µ½ÁË develop ·ÖÖ§¡£

2.¼ì²âÖ÷¹¤³Ìµ±Ç°ÒýÓõÄËùÓÐÒµÎñÄ£¿éÊÇ·ñ¶¼Îª°æ±¾ºÅÒýÓá£

·¢²¼ -> ²âÊÔ -> bug fix -> Ôٴη¢²¼½×¶Î

Õâ¸ö½×¶Î¿ÉÒÔÀí½âΪ¼¯³É²âÊԽ׶Ρ£Í¬ÑùÊÇÖ÷¹¤³ÌÖеÄÒ»¸ö½Å±¾¡£²ÎÊýÈçÏ£º

µ±Ç°°æ±¾ºÅ¡£

1.¸ù¾Ý´«ÈëµÄµ±Ç°°æ±¾ºÅ´Ó develop ·ÖÖ§½¨Á¢ release ·ÖÖ§¡£Èç¹ûÒѾ­´æÔÚ£¬ÔòÌø¹ýÕâÒ»²½£»

2.ÍÆËÍÖ÷¹¤³Ì´úÂëµ½Ô¶³Ì git ²Ö¿â£»

3.ͨ¹ý githooks µÄ·½Ê½´ò°üÖ÷¹¤³Ì²¢Ìá½»²âÊÔ£»

4.²âÊÔ¹ý³ÌÖÐÈç¹û´æÔÚÎÊÌ⣬Ôòͨ¹ýÒ»¼üÇл»Ö÷¹¤³Ì¿ª·¢µ÷ÊÔ״̬½Å±¾Ö±½ÓÇл»¿ª·¢×´Ì¬²¢½øÐÐ bug fix£»

5.bug fix Ö®ºóÖØÐÂÖ´ÐÐµÚ 1 ²½¡£

²âÊÔÍê³É·¢²¼

¸ù¾Ý GitFlow µÄ release Á÷³Ì£¬ºÏ²¢ release ·ÖÖ§µ½ develop ·ÖÖ§ºÍ master ·ÖÖ§£¬È»ºóÔÚ master ·ÖÖ§½¨Á¢¶ÔÓ¦°æ±¾ºÅµÄ tag ²¢ push µ½Ô¶³Ì git ²Ö¿â£»

ͨ¹ý githooks µÄ·½Ê½´ò°üÖ÷¹¤³Ì²¢·¢²¼¡£

×ܽá

±¾ÎÄÖ»ÊÇÒ»¸ö²»³ÉÊìµÄ˼¿¼£¬ºóÐøÊµÊ©µÄ¹ý³ÌÖпÉÄÜ»á¶ÔһЩϸ½Ú½øÐиÄÉÆ£¬Ò²»¶Ó­´ó¼Ò¶ÔÎÒ˼·Öв»ºÏÀíµÄµØ·½½øÐÐÖ¸Õý£¬ÎÒ»á·Ç³£¸Ð¼¤¡£

 

 

   
2723 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ