Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fight Xcode Project with Golang

Fight Xcode Project with Golang

Kyobashi.go #1
Parse xcodeproj/project.pbxproj by Golang
https://github.com/mpon/xgodeproj

E3d96b25e645921d9e5acbaa36c507a5?s=128

Masato Oshima

August 25, 2015
Tweet

Transcript

  1. Fight Xcode Project Kyobashi.go #1

  2. Masato Oshima github.com/mpon @_mpon ಢ໦ݝ๕լ܊ग़਎ iOS Developer

  3. None
  4. None
  5. None
  6. None
  7. None
  8. ίϚϯυϥΠϯ͔Β νΣοΫ͍ͨ͠

  9. $-*πʔϧΛ࡞ΔͳΒ (P

  10. None
  11. None
  12. िؒલͷ๻

  13. ࢝ΊΑ͏ͱͨ͠ͱ͖ʹ ॳ৺ऀ͕ ೰ΉϙΠϯτ

  14. (01"5)໰୊ ɾ͋ͱ͋ͱऔΓฦ͠ͷ͔ͭͳ͍͜ͱ ʹͳͬͨΒͲ͏͠Α͏ɾɾ ɾͱΓ͋͑ͣ)0.&HPʹͨ͠

  15. ΤσΟλ໰୊ ɾ*%&͔ΤσΟλ͔બ΂Δ͕ɾɾ ɾͱΓ͋͑ͣ"UPNʹͨ͠

  16. σόοά໰୊ ɾGNU1SJOUMOͰ͕Μ͹Δ ɾσόοΨ΍Γํ෼͔Βͳ͍ ɾHPJOTUBMMίϚϯυ࣮ߦ

  17. ґଘؔ܎໰୊ ɾ࣮ߦͨ͋͠ͱΤϥʔ ɾϥΠϒϥϦ͕Կ͔࢖ͬͯΔ ɾΤϥʔ͕ى͖͔ͯΒHPHFU

  18. ؒҧͬͯΔ͔΋͠Εͳ͍͚Ͳ ͱΓ͋͑ͣ΍ͬͯΈΔ

  19. ίϚϯυϥΠϯπʔϧ ͷ࡞Γํ

  20. None
  21. TDB⒎PME࠷ߴ

  22. $ ./xgodeproj NAME: xgodeproj - USAGE: xgodeproj [global options] command

    [command options] [arguments...] VERSION: 0.1.0 AUTHOR(S): Masato Ohshima COMMANDS: list help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --help, -h show help --version, -v print the version
  23. $ ./xgodeproj NAME: xgodeproj - USAGE: xgodeproj [global options] command

    [command options] [arguments...] VERSION: 0.1.0 AUTHOR(S): Masato Ohshima COMMANDS: list help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --help, -h show help --version, -v print the version ੜ੒͚ͨͩ͠Ͱ ΍ͬͨײग़Δ
  24. 9DPEFͷ ϓϩδΣΫτϑΝΠϧ Λύʔε͍ͨ͠

  25. None
  26. ݹ͍1MJTUܗࣜ

  27. None
  28. None
  29. 9DPEFͷQSPKFDU͸ KTPOʹม׵Ͱ͖Δ

  30. (PͰKTPOΛύʔε͢Δ wܕΛఆٛͯ͠6ONBSTIBM wJOUFSGBDF\^ͰશͯܕνΣοΫ wTJNQMF+TPO͍ͬͯ͏ϥΠϒϥϦ

  31. (PͰKTPOΛύʔε͢Δ wܕΛఆٛͯ͠6ONBSTIBM wJOUFSGBDF\^ͰશͯܕνΣοΫ wTJNQMF+TPO͍ͬͯ͏ϥΠϒϥϦ ܕ͕ܾ·ͬͯͳ͔ͬͨͷͱɺ ͬ͘͞ͱࡶʹ΍Γ͔ͨͬͨ

  32. 1#9'JMF3FGFSFODF ϓϩδΣΫτϑΝΠϧͰɺ ϑΝΠϧͷࢀরΛද͢ηΫγϣϯ 1#9(SPVQ ϓϩδΣΫτϑΝΠϧͰɺ άϧʔϓߏ଄Λද͢ηΫγϣϯ

  33. 1#9'JMF3FGFSFODF

  34. 1#9(SPVQ

  35. ׬੒ʁ

  36. None
  37. ࠶ؼߏ଄

  38. None
  39. $PNQPTJUF1BUUFSO ɾσΟϨΫτϦߏ଄Λ࣋ͭ΋ͷʹ༗ޮ ɾσΟϨΫτϦͱϑΝΠϧΛಉҰͷ΋ͷͱͯ͠ॲཧΛ͢Δ ͜ͱͰಉ͡ॲཧΛݺͼग़ͤΔ ɾࠓճͰݴ͑͹(SPVQͱ'JMF3FGFSFODF ɾର৅͕(SPVQͩΖ͏͕'JMF3FGFSFODFͩΖ͏͕ಉ͡ϝ ιουΛݺ΂Δͱ͍͏͜ͱ

  40. άϧʔϓͱϑΝΠϧΛ ಉҰͷ΋ͷͱΈͳ͢

  41. ҧ͏΋ͷΛಉ͡ͱݟͳͤΔͷʁ

  42. *OUFSGBDF

  43. *OUFSGBDFΛఆٛ

  44. *OUFSGBDFΛ࣮૷ 'JMF3FGFSFODF (SPVQ

  45. (PͰ͸͜Ε͚ͩͰ ͜ΕͰಉ͡(SPVQ&OUSZ ͱ͍͏UZQFͱͯ͠ѻ͑Δ Α͏ʹͳͬͨͧ

  46. ͍ͭʹ׬੒ʁ

  47. (SPVQߏ଄ͷ ࠶ؼॲཧͲ͏ॻ͘ʁʁ

  48. 044

  49. None
  50. pMFQBUIͷXBMLΛύΫΔ

  51. None
  52. Ͱ͖ͨ

  53. ײ૝

  54. BUPN͕༏लɻ*%&ͳͯ͘΋Αͦ͞͏ʁ HPGNUͷ͓͔͛Ͱؒҧͬͯͳͦ͞͏ͱࢥ͑ͯॳ৺ऀ͸ָɻ ม਺໊ͷ୹͘͢Δͷ͕·ͩ׳Εͳ͍ɻ pMF FSSIPHF Έ͍ͨͳॻ͖ํ͸׳Εͨɻ QBOJDͷ࢖͍Ͳ͜Ζ͕෼͔Βͳ͍ɻ σόοΨͳ͍ͷ͔ͳʁ ґଘؔ܎ͷϑΝΠϧ͸ʁ DPOUBJOTͱ͔͋Γͦ͏ͳϝιου͕ͳ͍ɻ

    JOUFSGBDF\^͍ͬͯ͏ͷͰશͯͷܕΛड͚ೖΕΔ͍ͬͯ͏ͷ͓΋͠Ζ͍ ഁյతͳϝιου͔͠ͳ͍ʁ TPSU  ࠶୅ೖېࢭͳએݴͰ͖ͳ͍ ؔ਺ܕͬΆ͍NBQͱ͔΍Γ͍ͨ TXJUDI͕ศརͩɻJGFMTFͷ୅ΘΓʹͳΔ OFXͷ࢓ํ͕͍Ζ͍Ζ͋Γ͗ͯ͢ਖ਼ղ෼͔ΒΜ ϙΠϯλ͚ͭͯ΋͚ͭͳͯ͘΋͍͍ʁ &OVN͍ͨ͠ ύοέʔδ໊ͱม਺໊͕͔ͿͬͨΜ͚ͩͲͲ͏͢ΓΌ͍͍ʁ