Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
モバイルプラットフォーム ビルド自動化のおはなし
Search
Tetsuya Mori
PRO
July 31, 2014
Programming
0
27
モバイルプラットフォーム ビルド自動化のおはなし
Tetsuya Mori
PRO
July 31, 2014
Tweet
Share
More Decks by Tetsuya Mori
See All by Tetsuya Mori
ビルドシステムを C# 大統一したお話
monry
PRO
2
1k
C# 大統一理論推進委員会 会員のための Unity Package Manager プロジェクト構成案
monry
PRO
0
1.3k
はじめての C# 大統一理論
monry
PRO
0
650
unity1week でチーム開発を成功させる秘訣
monry
PRO
0
180
Unity で ARゲームを作った話
monry
PRO
1
680
Visual Programming Framework UniFlow のご紹介/Introducing UniFlow
monry
PRO
2
2.7k
UniFlow 完全に理解した / I can develop UniFlow a little.
monry
PRO
0
470
Democratized Unity Package Manager
monry
PRO
1
2.6k
使ってみよう! Unity RemoteSettings/Let's use Unity RemoteSettings
monry
PRO
1
1k
Other Decks in Programming
See All in Programming
Click-free releases & the making of a CLI app
oheyadam
2
120
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
470
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
Macとオーディオ再生 2024/11/02
yusukeito
0
370
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
6
1.9k
flutterkaigi_2024.pdf
kyoheig3
0
120
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
110
Amazon Qを使ってIaCを触ろう!
maruto
0
410
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
610
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
2
1.1k
Flutterを言い訳にしない!アプリの使い心地改善テクニック5選🔥
kno3a87
1
180
Featured
See All Featured
BBQ
matthewcrist
85
9.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
RailsConf 2023
tenderlove
29
900
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Six Lessons from altMBA
skipperchong
27
3.5k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Transcript
ϞόΠϧϓϥοτϑΥʔϜ ϏϧυࣗಈԽͷ͓ͳ͠ 5IV 6OJUZษڧձWPM גࣜձࣾΩοζελʔ γεςϜσϕϩϓϝϯτνʔϜϦʔμʔ ɹ࠸
͜ΜΜʂ
ຖ͓ೃછΈ ʁ ΜΓ͌Ͱ͢ɻ
ΤϯδχΞͱ
ʮၗຫʯ ʮؾʯ ʮଵଦʯ ॱෆಉ
Ͱ͋Δɻ
ͱɺ͍͏Θ͚Ͱ ʮଵଦʯʹؔ͢Δ ͓ͳ͠Ͱ͢ɻ
͓͠ͳ͕͖
͓͠ͳ͕͖ w ࣗݾհ w લஔ͖ w ϏϧυࣗಈԽͷ֓ཁ w ϏϧυࣗಈԽͷৄࡉ w
ϏϧυࣗಈԽͷσϞ ࣌ؒ༨Ε
ࣗݾհ
XIPBNJ w lɹ࠸zͱਃ͠·͢ɻ w BLBΜΓ͌5!NPOSZ'NPOSZ w ࡀˁ0ܕఱṝ࠲طࠗ w झຯʮ͓ञʯͱʮ߹এʯͰ͢ɻ
XIPBNJ w େֶΛ ࣗओతʹ ଔۀޙɺϕϯνϟʔΛసʑɻ w 8FCͷϑϩϯτΤϯυɺαʔόαΠυ͕ಘҙɻ w Α͏͘6OJUZྺνϣΠʹͳΓ·ͨ͠ɻ w
"84ͱΩϟοΩϟϑϑ͢Δͷ͖Ͱ͢ɻ w Կނ͔ࣾΠϯϑϥΒ͞Εʜͬͯ·͢ɻ w ۙࠒ#BDLCPOFKT ͱ$P⒎FF4DSJQUͱ4"44 ͱٔΕͯ·͢ɻ
KPCT w lגࣜձࣾΩοζελʔzͬͯձࣾͰಇ͍ͯ·͢ɻ w ະबֶࣇʙখֶੜͷ͓ࢠ͞·Λ͓࣋ͪͷ ϑΝϛϦʔΛλʔήοτʹͨ͠ɺҭڭҭʹ ؔΘΔΞϓϦɾαʔϏεΛల։͓ͯ͠Γ·͢ɻ w ͓ӄ༷Ͱ&E5FDIͳҭʹԙ͍ͯ /PنͰల։͓ͯ͠Γ·͢ʂ
ࣾௐ͆
MTMBBQQT ͷ͑΄Μؗ ͳΓ͖Γ ͬ͜͝ϥϯυ ύζϧςΠϧζ ͓͔͠ͷ͘ʹΛ ͭ͘Δͷ͡Ό ͳΓ͖Γ ΞΠεΫϦʔϜ ͞Μͬ͜͝
ͳΓ͖Γ ϚϚͬ͜͝ ͓หΛͭ͘Ζ͏ʂ ͑͜΄Μ ͓͔͠ͷՈΛ ͭ͘Ζ͏ʂ ϋϯόʔΨʔ ͞Μͬ͜͝ ඈߦػΛ ΈཱͯΑ͏ʂ i18n i18n i18n i18n 8PSLJO 1SPHSFTT
લஔ͖
ڥ w 6OJUZG w 1MBUGPSNJ04 "OESPJE w %FWFMPQNFOU.BD 8JOEPXT w
%JNFOTJPO ओʹ % w -BOHVBHF$
ڥ w )PNFCSFX ͡Όͳͯ͘ྑ͍͚Ͳ w 9DPEF$PNNBOE-JOF5PPMT w HSBEMF CSFXJOTUBMMHSBEMF
w %FQMPZ(BUF PQUJPOBM w $IBU8PSL PQUJPOBM
ຊ
͓͓·͔ͳྲྀΕ w 6OJUZ͔ΒϓϩδΣΫτग़ྗ w ίϚϯυϥΠϯ͔ΒϏϧυɾύοέʔδϯά w ҙ ԿΒ͔ͷσϓϩΠαʔϏεʹ৴ w ҙ
ԿΒ͔ͷखஈͰ৴݁ՌΛؔऀʹ௨
&YQPSU1SPKFDU w ૉʹ6OJUZͷػೳ͏ w ͕ɺඪ४ͷϏϧυΟϯυΘͳ͍ w ྫ͑ฐࣾͷ߹ˠ
&YQPSU1SPKFDU w ֤छઃఆͱ͔ΛࣄલνΣοΫ͍ͨ͠ w ཧͱ͢Δग़ྗܗࣜʹௐ͠қ͍ w "1,ʹͤͣʹ"OESPJE4UVEJPग़ྗͱ͔ w Ϗϧυޙʹ'JOEFS։͘ͷ͕β͍ w
,FZTUPSF1BTTXPSEೖΕΔͷ͕μϧ͍
&YQPSU1SPKFDU w 6OJUZ&EJUPS#VJME1JQFMJOF#VJME1MBZFS w 4DFOFϑΝΠϧύεͷྻ w ग़ྗઌͷύε w ϏϧυରϓϥοτϑΥʔϜ
w Կ͔Φϓγϣϯ ͳ͍ͳΒ#VJME0QUJPO/POFͰ͓L BuildPipeline.BuildPlayer( new string[] { "path/to/scene1", "path/to/scene2", // ... }, "path/to/output", BuildTarget.Android, BuildOptions.Development | BuildOptions.AcceptExternalModificationsToPlayer );
&YQPSU1SPKFDU w 9DPEF"OESPJE4UVEJPग़ྗ͢Δʹ BuildOptions.AcceptExternalModificationsToPlayer w %FWFMPQNFOU#VJMEʹ͢Δʹ BuildOptions.Development w ͦͷଞ৭ʑ͋Δ͚Ͳɺৄ͘͠ϚχϡΞϧࢀর
&YQPSU1SPKFDU w ͋ͱɺ͋·ΓΦεεϝͰ͖ͳ͍͚Ͳɺ ,FZTUPSF1BTTXPSEίʔυ͔ΒࢦఆՄೳ PlayerSettings.Android.keystoreName = "path/to/keystore"; PlayerSettings.Android.keystorePass = "hogehoge";
PlayerSettings.Android.keyaliasName = "fugafuga"; PlayerSettings.Android.keyaliasPass = "piyopiyo";
#VJME1BDLBHJOH w ຊͷϝΠϯσΟογϡ w ग़ྗྃޙʹ࣮ߦ͢Δඞཁ͋Γ w +FOLJOTHSVOUNBWFOFUDʜ w 1PTU1SPDFTT#VJMEͰ࣮ߦՄೳ w
11#ʹ͢ΔͱϓϩάϨεόʔͱ੍͔ޚ͠қ͍ w 1PTU1SPDFTT#VJMEʹ͍ͭͯίνϥ εςϚ
#VJME1BDLBHJOH J04 w ͏ίϚϯυxcodebuild xcrunͷೋͭ w $-5ೖΕͯͨΒVTSCJOͷԼʹډΔϋζ w xcodebuild ͰϏϧυ͔ͯ͠Βɺ
xcrunͰJQBϑΝΠϧ "E)PDϏϧυ ͷੜΛߦ͏
#VJME1BDLBHJOH J04YDPEFCVJME w xcodebuildίϚϯυͷҾҎԼͷΑ͏ͳײ͡ ڥґଘ͋Δ͔Ͷɻ -project "path/to/Unity-iPhone.xcodeproj" \! -sdk iphoneos
\! -target "Unity-iPhone" \! -configuration Release \! clean build \! CODE_SIGN_IDENTITY="iPhone Distribution" \! PROVISIONING_PROFILE="$ProvisioningProfileID$"
#VJME1BDLBHJOH J04YDSVO w YDSVOίϚϯυͷҾҎԼͷΑ͏ͳײ͡ -sdk iphoneos \! PackageApplication "path/to/built.app" \!
-o "path/to/output.ipa" \! --embed "$ProvisioningProfileID$.mobileprovision"
#VJME1BDLBHJOH "OESPJE w ͏ίϚϯυHSBEMF͚ͩʂ w ग़ྗઌσΟϨΫτϦԼʹCVJMEHSBEMFͳͲΛ ஔ͓ͯ͘͠ඞཁ͋Γ w ͜ͷลؤுͬͯ1PTU1SPDFTT#VJMEͰஔ ͢ΔͱͤʹͳΕΔ
w ͿͬͪΌ͚ҰےೄͰ͍͔ͳ͍ ͍͔ͳ͔ͬͨ
#VJME1BDLBHJOH "OESPJEHSBEMF w CVJMEHSBEMF͜Μͳײ͡ w ଟগ(SBEMF ͔ͯ(SPPWZ ͷࣝඞཁ͔ w VOJUZDMBTTFTKBSΛϩʔΧϧͷ.BWFOϦϙδτϦʹ৯Θ
ͤΔඞཁ͕͋ͬͨΓ w ಛʹ'BDFCPPL4%,GPS6OJUZ͏߹ɺͨͿΜඞਢ w HSBEMFQSPQFSUJFT͕ඞཁͩͬͨΓ w ৭ʑ໘Ͱ͆͢
ͦΖͦΖർΕͯ ͖ͨͰ͠ΐʁ
͏ͪΐͬͱ͚ͩ ଓ͘Μ͡Όɻ
%FQMPZNFOU w ં֯Ϗϧυͨ͠Ϟϊݕূ͠ͳ͍ͱͶʂ w ͪΐͬͱલͩͬͨΒ5FTU'MJHIU͕༗ྗͩͬͨ w "OESPJE͕͑ͳ͘ͳͬͪΌ͍·ͨ͠ ŋТŋA w
ࠓ%FQMPZ(BUF͔ͳʁ w $SBTIMZUJDTͱ͔͋Γ·͢Ͷɻ
%FQMPZNFOU w ·͊ɺ͖ͳͷ͑ྑ͍Μ͡ΌͶʁ w νͰ%FQMPZ(BUFͬͯ·͢ɻ w ίϚϯυϥΠϯπʔϧ͕γϯϓϧͰྑ͍ɻ dgate push path/to/apk!
dgate push path/to/ipa
%FQMPZNFOU w બఆϙΠϯτͱͯ͠ʜ w J04"OESPJE྆ରԠ w 1SPWJTJPOJOHपΓΛ͍ίτͬͯ͘ΕΔ w ϖʔδͱ͔ੜͰ͖Δͱঘྑ͠ w
डୗͱ͔ͬͯΔ߹ɺ͓٬͞Μʹ Πϯετʔϧͯ͠Β͑Εָ͔ʁ
"OOPVODFNFOU w ࠷ޙʮ͓Βͤʯ w νͰ$IBU8PSLʹϏϧυ݁Ռ௨ઐ༻ ͷϧʔϜΛ࡞ͬͯɺͦ͜ʹ݁ՌΛ௨ͯ͠·͢ w ͜Ε1PTU1SPDFTT#VJMEͰؤுͬͯΔ w $IBU8PSL"1*ΛΩοΫ͢ΔϥΠϒϥϦ
ׂͱ͘ॻ͚ͯΔ͔Βɺ"TTFU4UPSFͱ͔Ͱ ൢചͯ͠ΈΑ͏͔͠Β͆
"OOPVODFNFOU w ·͊ɺΘΕԿͰྑ͍ͱࢥ͏ͷͰ ʮϝʔϧʯʮ"1/T($.ʯʮޱ಄ʯ ʮॻോʯʮจʯʮςϨύγʔʯFUDʜ Λۦͯ͑͠Δ͖ਓʹ͑·͠ΐ͏ɻ w ͑Δ༰ͱͯ͠ɺʮΞϓϦ໊ʯʮόʔδϣϯʯ ʮϏϧυछผ %FW
1SPE ʯลΓ ࠷ݶඞཁ͔ͳʁ
%FNP
"OZ2VFTUJPOT
5IBOLZPVGPS ZPVSBUUFOUJPO