Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PostProcessBuild のおはなし
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tetsuya Mori
PRO
February 14, 2014
Programming
96
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PostProcessBuild のおはなし
Tetsuya Mori
PRO
February 14, 2014
More Decks by Tetsuya Mori
See All by Tetsuya Mori
ビルドシステムを C# 大統一したお話
monry
PRO
2
1.5k
C# 大統一理論推進委員会 会員のための Unity Package Manager プロジェクト構成案
monry
PRO
0
1.8k
はじめての C# 大統一理論
monry
PRO
0
860
unity1week でチーム開発を成功させる秘訣
monry
PRO
0
330
Unity で ARゲームを作った話
monry
PRO
1
1.1k
Visual Programming Framework UniFlow のご紹介/Introducing UniFlow
monry
PRO
2
3.2k
UniFlow 完全に理解した / I can develop UniFlow a little.
monry
PRO
0
570
Democratized Unity Package Manager
monry
PRO
1
3.1k
使ってみよう! Unity RemoteSettings/Let's use Unity RemoteSettings
monry
PRO
1
1.3k
Other Decks in Programming
See All in Programming
What We Talk About When We Talk About XP
m_seki
2
680
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
180
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
330
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.1k
Workers Cache を知る
syumai
0
210
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.3k
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
310
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
130
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
380
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
220
Heart of Swift Concurrency
koher
0
960
すこし踏み込む CancellationToken
htkym
2
920
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Speed Design
sergeychernyshev
33
2.1k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
A designer walks into a library…
pauljervisheath
211
25k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
610
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Leo the Paperboy
mayatellez
10
2.3k
Skip the Path - Find Your Career Trail
mkilby
1
240
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
500
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Transcript
1PTU1SPDFTT#VJME ͷ͓ͳ͠ ʙ"TTFU1PTUQSPDFTTPSΛఴ͑ͯʙ גࣜձࣾΩοζελʔ 4ZTUFN%FWFMPQNFOU5FBN-FBEFS ɹ࠸ ୈճ6OJUZ։ൃٕज़ษڧձ
͜ΜΜʂ w lΜΓ͌zͰ͢ʂ w )BQQZ7BMFOUJOFT%BZ w Χόϯʹएׯͷ༨༟͕͍͟͝·͢ͷͰɺ ઈࢍνϣίϨʔτडதͰ͢Αʙ— w ʜʜʜɻ
w ͍ɺͯ͜ͱͰɺࠓ1PTU1SPDFTT#VJMEͷΛ͠ ʹདྷ·ͨ͠
ͱɺͦͷલʹʜɻ
XIPBNJ w lɹ࠸zͱਃ͠·͢ɻ w BLBΜΓ͌5!NPOSZ'NPOSZ w ࡀˁ0ܕఱṝ࠲طࠗ w झຯʮ͓ञʯͱʮ߹এʯͰ͢ɻ
XIPBNJ w lגࣜձࣾΩοζελʔzͬͯձࣾͰಇ͍ͯ·͢ɻ w ະबֶࣇʙখֶੜͷ͓ࢠ͞·Λ͓࣋ͪͷ ϑΝϛϦʔΛλʔήοτʹͨ͠ɺҭڭҭʹ ؔΘΔΞϓϦɾαʔϏεΛల։͓ͯ͠Γ·͢ɻ ͷ͑΄Μؗ ͳΓ͖Γ ͬ͜͝ϥϯυ
ύζϧςΠϧζ ͓͔͠ͷ͘ʹΛ ͭ͘Δͷ͡Ό ͳΓ͖Γ ΞΠεΫϦʔϜ ͞Μͬ͜͝ ͳΓ͖Γ ϚϚͬ͜͝ ͓หΛͭ͘Ζ͏ʂ ͑͜΄Μ
Ε͡ΎΊ w 1PTU1SPDFTT#VJME֓ཁ w 1PTU1SPDFTT#VJMEৄࡉ w ͓·͚
·͓͖͑ w 6OJUZ w WFSTJPOG w J04ͷ888 Ϋϥεʹόά͋Γʁ w 1SP-JDFOTF
w 1SP͡Όͳͯ͘ େৎ͔ʁ w #VJME1MBUGPSN w J04 w "OESPJE w %FWFMPQNFOU1MBUGPSN w 049.BSWFSJDLT w 8JOEPXT w ඇαϙʔτػೳΞϦ
1PTU1SPDFTT#VJMEͷ֓ཁ
1PTU1SPDFTT#VJME֓ཁ w ࣮ػ༻ʹϏϧυ͢Δࡍͷ ׂΓࠐΈॲཧ w େ·͔ʹ͚ͯೋछྨͷ ॻ͖ํ͕Ͱ͖Δ w γΣϧεΫϦϓτ w
6OJUZεΫϦϓτ
1PTU1SPDFTT#VJME֓ཁ w ॲཧΠϝʔδ
1PTU1SPDFTT#VJMEͷৄࡉ
ར༻༻్ w ϏϧυޙʹखಈͰΠδΠδ͢Δඞཁͷ͋ΔॲཧΛ ࣗಈԽ w දࣔΞϓϦ໊ͷઃఆ w J04 KBcFO MQSPK*OGPQMJTUTUSJOHT
w "OESPJESFTWBMVFT KB TUSJOHTYNM w 63-4DIFNFTͷઃఆ
ར༻༻్ w "3$Λ͍ͬͯΔ/BUJWF1MVHJOʹGPCKDBSDΛ༩ w "OESPJE.BOpFTUYNMͷՃ w BEWFSUJTJOH*EFOUJpFS *%'" ͷରԠ w
6OJUZͷ࣍όʔδϣϯΞοϓσʔτͰ ΔΒ͍͚͠Ͳɻ w ԿΕʹͯ͠ɺYDPEFQSPKͱ͔"OESPJE.BOJGFTUʹ ͍ͭͯɺ͋ΔఔࣝΛཁ͢Δ
γΣϧεΫϦϓτͷ߹ w ઌͣ6OJUZ.BOVBMಡΈ·͠ΐ͏ w େલఏͱͯ͠ɺ.BD൛ͷΈαϙʔτ w "TTFUT&EJUPS1PTUQSPDFTT#VJME1MBZFS w ֦ுࢠແ͠ w
࣮ߦݖݶ༩
γΣϧεΫϦϓτͷ߹ w TIFCBOHతʹύε͕௨ͬͯΕݴޠෆ w YDPEFQSPKͱ͔Λ࿔ΔͷͰ͋Ε 3VCZ͕Φψψϝ͔ͳʁ w $PDPB1PETͷYDPEFQSPKͳHFN͕ศར w YDPEFQSPKͱ͔"OESPJE.BOJGFTUͱ͔ͷ
ΈΛ͋Δఔख़͍ͯ͠ͳ͍ͱϋϚΔ
γΣϧεΫϦϓτͷ߹ w ࣮ߦ࣌ͷҾ ग़ྗઌͷϑϧύε #VJME1MBUGPSNछผ w J04lJ1IPOFz w
"OESPJElBOESPJEz ࠷దԽछผ 4USJQQJOH-FWFMʁ ձ໊ࣾ ϓϩμΫτ໊ ը໘ԣ෯ ը໘ॎ෯
γΣϧεΫϦϓτͷ߹ w ҙ w ʮͦ͏ɺ.BDͳΒͶɻʯ w ޙड़ͷ<1PTU1SPDFTT#VJME / >ଐੑΑΓઌʹ࣮ߦ͞ΕΔ w
·͊ɺιϨࣗମ͡Όແ͍Μ͕ͩɺ3VCZ(FNTͷYDPEFQSPKͱɺޙड़ ͷ9DPEF&EJUPSGPS6OJUZΛซ༻͢ΔͱϋϚΔ w ͬͯͷɺ9DPEF&EJUPSGPS6OJUZ"4$**'PSNBUQMJTU͔͠ಡΈॻ͖Ͱ ͖ͳ͍ͷ͕ͩɺ3VCZ(FNTͷYDPEFQSPK9.-'PSNBUQMJTUͱͯ͠ॻ͖ ग़ͯ͠͠·͏ͷͰɺ<1PTU1SPDFTT#VJME / >ଆͰΤϥʔΛͿ͍ͬͯ͘͜ΕΔ w 'BDFCPPL4%,GPS6OJUZΛ͏߹ɺ<1PTU1SPDFTT#VJME / >ͷॲཧͰ 9DPEF&EJUPSGPS6OJUZΛ༻͍͍ͯΔͷͰɺ࣮֬ʹ্هͷʹϒνͨΔ
6OJUZεΫϦϓτͷ߹ w ઌͣ6OJUZ.BOVBMಡΈ·͠ΐ͏ w 6OJUZ͔Βར༻Մೳʹͳͬͨ Β͍͠ w .BD8JOEPXTͲͪΒͰ w
"TTFUT &EJUPS DTcKT w 6OJUZతʹ&EJUPS4DSJQUͰ͋Δͱೝࣝग़དྷΔ ύεͳΒ0,ͬͯίτ
6OJUZεΫϦϓτͷ߹ w /&5ʹग़དྷΔίτͳΒԿͰ͟͝Ε w ͪΖΜ6OJUZͱͯ͠ͷػೳ͑ΔͷͰɺ 3FTPVSDFT-PBE ͱ͔͑ͨΓ͢Δ w ϙΠϯτೋͭ w
&EJUPSσΟϨΫτϦҎԼʹஔ͢Δ w QVCMJDTUBUJDͳϝιουʹ<1PTU1SPDFTT#VJME / > Λଐੑઃఆ͢Δ /࣮ߦॱং
6OJUZεΫϦϓτͷ߹ w ͜Μͳײ͡ɻ public static class PostProcessBuild { [PostProcessBuild(100)] public
static void OnPostProcessBuild(BuildTarget target, string path) { if (target == BuildTarget.iPhone) { Debug.Log("iOS: " + path); } if (target == BuildTarget.Android) { // ී௨ʹ Build ͨ͠߹ apk ͷঢ়ଶͰ͞ΕΔͷͰɺ੍ޚ͢Δ if (!Regex.IsMatch(path, "\\.apk$")) { Debug.Log("Android: " + path); } } } }
6OJUZεΫϦϓτͷ߹ w YDPEFQSPKΛ࿔Δ߹9DPEF&EJUPSGPS 6OJUZΛ͏ͱศརʂ w ࡞ऀͷ%BOJFMF$BSJPMB͞Μʹײँʂ w 9DPEFͰແ͘ಈ࡞͢ΔίτΛ֬ೝࡁ w "OESPJE.BOJGFTU࿔ΔϥΠϒϥϦͱ͔ݟ͔
Βͳ͔͚ͬͨͲɺී௨ʹ9.-࿔Ε0,
6OJUZεΫϦϓτͷ߹ w ҙ w "OESPJEͷ߹ɺ(PPHMF"OESPJE1SPKFDU ͱͯ͠&YQPSU͠ͳ͍ͱBQLʹରͯ͠ॲཧ͢ ΔίτʹͳͬͪΌ͏͔ΒΞτ w γΣϧεΫϦϓτͱҧͬͯɺ࣮ߦ࣌ʹ Τϥʔ͍ͨ͜߹Ϗϧυࣗମ͕ࢭ·Δ
ϝϦοτσϝϦοτ γΣϧεΫϦϓτ w ϝϦοτ w ׳ΕͨݴޠͰॻ͚Δ w ࣮࣌ͷ֬ೝָ͕ w Ҿ፻ͯ͠ΩοΫ
͢Ε0, w ݴޠʹґͬͯϥΠϒ ϥϦ͕๛ w σϝϦοτ w 6OJUZͷػೳ͕͑ͳ ͍ w ϩάग़͠ਏ͍ w Τϥʔ͕ى͖ͯͯؾ ͖ʹ͍͘ w 8JOEPXTΦϫίϯ
ϝϦοτσϝϦοτ 6OJUZεΫϦϓτ w ϝϦοτ w 6OJUZͷػೳ͑Δ w ૭Ͱಈ͘ w ؤுΕϓϩδΣΫτ
ґଘͳΛͰ͖Δ w 4DSJQUBCMF0CKFDU ͱ͔͑Ͷɻ w σϝϦοτ w Τϥʔى͖Δͱࢭ·Δ w ֬ೝ͕ϝϯυ͍ w ຖճϏϧυ͠ͳ͍ͱ ͩΊΆ
·ͱΊ w ݸਓతʹ6OJUZεΫϦϓτ͕ΦεεϝͰ͢ w ॲཧॱΛఆٛग़དྷΔ͔ΒࡉԽͰ͖Δ͠ w ฐࣾతʹɺ͜Εͷ͓ӄͰϏϧυޙʹखಈͰઃఆ͢Δίτ ຆͲ͋Γ·ͤΜ w །Ұɺ1SPWJTJPOJOH1SPpMFͷઃఆ͚ͩ͢Δ͚ͲͶɻ
w ૬ຊؾग़ͤ+FOLJOT͓͡͞Μͱྑ͘͢ΔͳͲͰɺ lϏϧυzˠl"1,*1"ΞʔΧΠϒzˠl5FTU'MJHIUΞοϓz ͱ͔ΛશࣗಈԽͰ͖Δ͔
͓·͚
"TTFU1PTUQSPDFTTPS w 1PTU1SPDFTTܥͷωλͱͯ͠0OFNPSFUIJOH w ϞόΠϧ͚ʹϏϧυ͢ΔʹͨͬͯɺςΫενϟͷѹॖܗ ࣜʹ͍ͭͯҙΛ͏ඞཁ͕͋Γ·͢ w ΜΓ͌ͷΦεεϝҎԼͷ௨Γ w J043(#"$PNQSFTTFE1735$CJUT
w "OESPJE3(#"$PNQSFTTFE"5$CJUT w ৄͪ͘͜͠ΒͷεϥΠυΛ͝ࢀর͍ͩ͘͞ εςϚ
"TTFU1PTUQSPDFTTPS w Ͱɺʮ͜ͷઃఆΛຖճΔͷ b"A ŵƃŪƄŞŤʯͳو ํʹ࿕ใͰ͢ʂ w ͳΜͱɺ֤छ"TTFUΛ*NQPSU͢Δͱ͖ʹॲ ཧΛϑοΫͰ͖ͪΌ͏ͷͰ͢ʂ w
5FYUVSF͚ͩʹݶΒͣɺ"VEJPΒ.PEFMΒ ͷl"TTFUzͳϞϊͰ͋ΕԿͰ͟͝Ε
"TTFU1PTUQSPDFTTPS w ઌͣ6OJUZ.BOVBMΛʜ SZ w ϙΠϯτҎԼͷ௨Γ w &EJUPSσΟϨΫτϦҎԼʹஔ w 6OJUZ&EJUPS"TTFU1PTUQSPDFTTPSΛܧঝ
w 0O 1SFc1PTU QSPDFTT "VEJPc.PEFMc5FYUVSF ϝιου Λ࣮ ଞʹز͔ͭ͋Δ͚ͲͶ w .FTTBHJOHͷػೳʹΑΓݺͼग़͞ΕΔ
"TTFU1PTUQSPDFTTPS w ฐࣾͰҎԼͷΑ͏ͳίτΛͬͯ·͢ w جຊతʹ*NQPSU4FUUJOHTΛ্ॻ͖ w ֦ுࢠ͕SBXQOHͳϑΝΠϧૉ௨Γ w ϓϥοτϑΥʔϜผઃఆΛݸผʹࢦఆ͍ͨ͠έʔ εΛఆͯ͠ɺطʹ0WFSXSJUFGPSʹνΣο
Ϋ͕͍͍ͯΔ߹ɺ্ॻ͖͠ͳ͍
·ͱΊ w 6OJUZʹ 1SFc1PTU )PHF'VHBͳϑοΫॲཧ ͕Γͩ͘͞Μʂ w &EJUPS4DSJQUΛ͍͜ͳ͢ͱ։ൃޮΊͬͪΌ ͕͋ΔΑʂʂ w
6OJUZ.BOVBMख़ಡͯ͠ɺଘʹ͍ͪ͠Ό͍ ·͠ΐ͏ʂʂʂ
ࢹௌऀϓϨθϯτ
ίί·Ͱ͓͖߹͍͍ͨ وํଃΔ͔͞͞ͳϓϨθϯτ w ͯ͜ͱͰɺฐࣾͰ͍ͬͯΔ "TTFU1PTUQSPDFTTPS ΛҰ෦Ճͨ͠Ϟϊ Λ ͪ͜Βʹஔ͍͓͖ͯ·ͨ͠ w Α͠ͳʹՃ͍ͯͬͯͩ͘͠͞ͳ
w ͋ɺϊʔΫϨʔϜɾϊʔϦλʔϯͰśūŢŒţ
"OZ2VFTUJPOT
5IBOLZPVGPS ZPVSBUUFOUJPO