Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Contributing to XcodeGen
freddi(Yuki Aki)
July 11, 2020
Programming
2
260
Contributing to XcodeGen
freddi(Yuki Aki)
July 11, 2020
Tweet
Share
More Decks by freddi(Yuki Aki)
See All by freddi(Yuki Aki)
freddi
0
280
freddi
1
210
freddi
0
22
freddi
0
130
freddi
1
120
freddi
2
320
freddi
1
120
freddi
0
200
freddi
1
70
Other Decks in Programming
See All in Programming
kgmyshin
1
440
madai0517
1
150
heistak
2
120
mitohato14
0
110
oleindesign
1
200
yoshinoriiiii
0
110
grapecity_dev
0
170
yotuba088
1
570
korosuke613
2
230
larsrh
0
110
meemeelab
0
260
gernotstarke
0
380
Featured
See All Featured
holman
448
130k
addyosmani
311
21k
imathis
479
150k
reverentgeek
27
2k
bkeepers
408
58k
hursman
107
9.2k
tanoku
86
8.5k
philnash
9
580
dotmariusz
94
5.5k
jlugia
216
16k
hannesfritz
28
950
shlominoach
176
7.5k
Transcript
Contributing to XcodeGen (and its good points!) freddi (@_ _
_ freddi _ _ _) at potatotips #70 (10th July, 2020)
XcodeGen
XcodeGen - YAML͔JSONͰXcode ProjectΛཧͰ͖ΔΑ͏ʹ͢Δ - Xcode Projectཧ͠ʹ͍͘ΦϦδφϧͷϑΥʔϚοτ - gitͰConflict͕ى͜Δͱ͔ͳΓࠈ -
ͳͷͰɺͬͱ͔ΜͨΜͳYAMLͳͲͰཧͰ͖ΔΑ͏ʹ
Original Format of Xcode Project // !$*UTF8*$! { archiveVersion =
1; classes = { }; objectVersion = 52; objects = { /* Begin PBXBuildFile section */ 96401477240D1BE700A22301 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96401476240D1BE700A22301 /* AppDelegate.swift */; }; 96401479240D1BE700A22301 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96401478240D1BE700A22301 /* SceneDelegate.swift */; }; 9640147C240D1BE700A22301 /* XcodeGenTest.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 9640147A240D1BE700A22301 /* XcodeGenTest.xcdatamodeld */; }; 9640147E240D1BE700A22301 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9640147D240D1BE700A22301 /* ContentView.swift */; }; 96401480240D1BEA00A22301 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9640147F240D1BEA00A22301 /* Assets.xcassets */; }; 96401483240D1BEA00A22301 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 96401482240D1BEA00A22301 /* Preview Assets.xcassets */; }; 96401486240D1BEA00A22301 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 96401484240D1BEA00A22301 /* LaunchScreen.storyboard */; }; 96401491240D1BEA00A22301 /* XcodeGenTestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96401490240D1BEA00A22301 /* XcodeGenTestTests.swift */; }; 9640149C240D1BEA00A22301 /* XcodeGenTestUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9640149B240D1BEA00A22301 /* XcodeGenTestUITests.swift */; }; 96F82BF1240D50ED00C0397B /* APIKit in Frameworks */ = {isa = PBXBuildFile; productRef = 96F82BF0240D50ED00C0397B /* APIKit */; }; 96F82C15240D51C300C0397B /* MyLibrary0 in Frameworks */ = {isa = PBXBuildFile; productRef = 96F82C14240D51C300C0397B /* MyLibrary0 */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ 9640148D240D1BEA00A22301 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 9640146B240D1BE700A22301 /* Project object */; proxyType = 1; remoteGlobalIDString = 96401472240D1BE700A22301; remoteInfo = XcodeGenTest; }; 96401498240D1BEA00A22301 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 9640146B240D1BE700A22301 /* Project object */; proxyType = 1; remoteGlobalIDString = 96401472240D1BE700A22301; remoteInfo = XcodeGenTest; };
After Converting to XcodeGen name: Genned0 options: deploymentTarget: iOS: "13.2"
localPackages: - Packages/APIKit packages: APIKit: url: https://github.com/ishkawa/APIKit from: 5.1.0 MyLibrary0: path: Packages/MyLibrary0/ targets: Genned: type: application platform: iOS sources: - path: XcodeGenTest dependencies: - package: APIKit - package: MyLibrary0
Not Cool Point of XcodeGen - ࠷ॳͷYAMLͷΊͬͪΌ໘ - Xcode্ͷมߋ͕YAMLʹࣗಈతʹө͞Εͳ͍ -
ޙ΄Ͳݴٴ - ·ͩҰ෦ͷػೳ͕ෆ͍ͯ͠Δ - etc) Local Swift Packageͷґଘ
Not Cool Point of XcodeGen - ࠷ॳͷYAMLͷΊͬͪΌ໘ - Xcode্ͷมߋ͕YAMLʹࣗಈతʹө͞Εͳ͍ -
ޙ΄Ͳݴٴ - ·ͩҰ෦ͷػೳ͕ෆ͍ͯ͠Δ - etc) Local Swift Packageͷґଘ
Local Swift Packageͷґଘ - ձࣾͷϓϩδΣΫτͰLocal Swift PackageରԠඞਢͩͬͨ - Ͱ Not
Supporting ͩͬͨ (Issue - #721) - Swift PackageRemoteͷͷ͔͠ରԠͯ͠ͳ͔ͬͨ
ͳΜ͔ΜͰ Δ͜ͱʹͳͬͨ
ࡉ͔͍ܦҢ - TwitterͰ۪ஒΔ
- RepoͷCollaboratorͰ͋Δgiginet͞Μ͔Βͦͦͷ͔͞ΕΔ ࡉ͔͍ܦҢ
ͬͯΈ͔ͬ ࡉ͔͍ܦҢ
OSSߩݙͰؾΛ͚ͭΔ͜ͱ
OSSߩݙͰؾΛ͚ͭΔ͜ͱTips - ޙํޓੑΛอͭ - TestΛॻ͘ - CONTRIBUTING.md ΛಡΜͰ͔ΒPRΛ࡞Δ - PRʹৄ͍͠આ໌Λॻ͘ʢඞཁͳΒϕϯνϚʔΫʣ
- PRߟ͑ͨ΄Ͳૣ͘Ϛʔδ͞Εͳ͍ͱߟ͑Δ
ࠓճͷ࣮ϑϩʔ - Forkͯ͠branchΛΔ - ίʔυॻ͘ - IssueΛݐͯΔʢࠓճ͢Ͱʹ͋ͬͨͭબΜͩʣ - PRΛͭͬͯ͘ɺϨϏϡʔ͞Εͯɺमਖ਼͢Δ -
Merge!
ͷࠓճͷ߹ - TwitterͷҰޙ͘Β͍ʹPR࡞
- Approve͞Ε͚ͨͲΤοδέʔε͕NGͩͬͨͷͰमਖ਼ ͷࠓճͷ߹
- Code OwnerʹίϝϯτΛ͏ ͷࠓճͷ߹
- ଞͷόάݟ͚ͭͨͷͰ͍ͭͰʹमਖ਼ ͷࠓճͷ߹
͔ͦͬΒޙʹϚʔδ ͷࠓճͷ߹
XcodeGenͷߩݙͰྑ͔ͬͨ݅ - ྲྀੴʹΒͳ͍ͱଠଧͪͰ͖ͳ͍͕͋ͬͨ - Xcode ProjectͷϑΥʔϚοτʹৄ͘͠ͳͬͨ - XcodeGenͷҠߦํ๏͕ΑΓৄ͘͠ͳͬͨ - OSSͷContirbuterಊʑͱ໊ΕΔΑ͏ʹͳͬͨ
- ಘ͕ͨࣝɺXcode ProjectͷConflictղফͷTipsʹͳΔ
ͨͩɺͦΕͰXcodeGenͷҠߦ… - ͕ɺProject͔ΒYAMLΛੜ͢ΔػೳͷPR͕͋Δ - ϚϯϞεϓϩδΣΫτͩͱ͔ͳΓ͍͠ - ײ৮తʹ΄΅͑Δ͕ɺશͳҠߦ͍͠ - https://github.com/yonaskolb/XcodeGen/pull/735 -
Ϛʔδ͞Εͯͳ͍ͷͰ͝ར༻ࣗݾͰ
Conclusion
Conclusion - XcodeGenͷLocal Swift PackageͷରԠΛͨ͠ - XcodeGenؾܰʹContributeͰ͖ΔΑʂ - ରԠΛ௨ͯ͡Xcode ProjectͷϑΥʔϚοτʹৄ͘͠ͳͬͨ
- ↑ʹ͓͔͛ͰXcode ProjectͷConflictʹ߹ཧతʹઓ͑ΔΑ͏ʹ
ΈΜͳOSSʹContribute