Slide 1

Slide 1 text

FASTLANE͸ͱ΋ͩͪ ͜Θ͘ͳ͍Α fastlaneษڧձ vol4 @rikusouda

Slide 2

Slide 2 text

INTRODUCTION ࣗݾ঺հ ▸ @rikusoua ▸ iOSΞϓϦΤϯδχΞ ▸ νϟοτͷձࣾͰಇ͍͍ͯΔ ▸ νϟοτΞϓϦͷ։ൃ ▸ ༷ʑͳܗଶͷϦϦʔεΛ࣮ݱ(In-House, VPP Custom B2B) ▸ fastlaneϨϕϧ : NEW GAME! Ͱݴ͏ͱ੨༿ͪΌΜ͘Β͍

Slide 3

Slide 3 text

AGENDERS ࠓ೔࿩͢͜ͱ ▸ fastlaneා͍ˠfastlaneා͘ͳ͍ ▸ fastlaneΛ࢖͓͔ͬͨ͛Ͱָʹͳͬͨ࿩ ▸ CI؀ڥಋೖͷࣗຫ࿩ۤ࿑࿩

Slide 4

Slide 4 text

FASTLANE͕ා͘ͳ͘ͳΔ·Ͱ FASTLANEͱग़ձͬͨͱ͖ͷRIKUSOUDA ▸ Ruby΍ͬͨ͜ͱ΋ݟͨ͜ͱ΋ͳ͍ ▸ ϞόΠϧΞϓϦ։ൃະܦݧ ▸ ͋Δ೔ಥવiOSΤϯδχΞͱͯ͠σϏϡʔͨ͠ ▸ લ೚ऀ͔ΒҾ͖ܧ͗Λड͚ͨ

Slide 5

Slide 5 text

ࣾ಺഑৴͸ “fastlane iOS beta"ͰͰ͖Δ͔Β લ೚ऀɹ FASTLANE͕ා͘ͳ͘ͳΔ·Ͱ

Slide 6

Slide 6 text

Θ͔Βͳ͍

Slide 7

Slide 7 text

FASTLANE͕ා͘ͳ͘ͳΔ·Ͱ FASTLANEͱͷग़ձ͍ ▸ ʮfastlane ios betaʯͱ͍͏ίϚϯυΛڭ͑ͯ͘Ε͚ͨͩ ▸ ࣗྗͰFastfileΛݟ͚ͭͯ։͍ͯΈ͚ͨͲͳʹ͕ॻ͍͍ͯΔ ͷ͔Θ͔ΒͣΑ͘Θ͔Βͳ͍ڪාײ ▸ ͔͍ͭ͜ͳͤΔͱศརͦ͏ͩͳͱ͸ࢥͬͨ ▸ ͦͷ··͠͹Β͘FastfileΛ৮Δ͜ͱͳ͘ɺϏϧυͷ࣌ʹί ϚϯυΛୟ͚ͩͩͬͨ͘

Slide 8

Slide 8 text

FASTLANE͕ා͘ͳ͘ͳΔ·Ͱ ࣍ʑͱ૿͍͑ͯ͘ϦϦʔεཁٻ ▸ ͓٬༷ͷApple Developer Enterprise ProgramͰ͓٬༷ͷ ࣾ಺ʹ഑৴͍ͨ͠ ▸ VPP Custom B2BͰಛఆͷ͓٬༷ʹ͚ͩΧελϜ൛Λ഑৴͠ ͍ͨ ▸ ։ൃதػೳΛ֬ೝ͢ΔͨΊͷΞϓϦ΋ཉ͍͠(ຊ൪΍Staging ʹͭͳ͙ΞϓϦͱ͸ผʹ)

Slide 9

Slide 9 text

FASTLANE͕ා͘ͳ͘ͳΔ·Ͱ FASTLANEษڧձʹࢀՃͯ͠Έͨ ▸ ஌Βͳ͍׆༻ํ๏΍actionͷ࿩ͳͲ͕ग़͖ͯͯௐ΂Δ͖͔ͬ ͚ʹͳͬͨ ▸ SlackʹࢀՃͯ͠ओ࠵ऀͷํʑͷൃݴ͕ܹࢗʹͳͬͨ ▸ ࣗ෼͚͕ͩ࢖͍ํͰ໎͍ͬͯΔ༁Ͱ͸ͳ͍ͱ஌ͬͯมͳযΓ ͕ͳ͘ͳͬͨ ▸ ͳΜ͔ΈΜͳRubyͰ͖ΔͬΆ͍

Slide 10

Slide 10 text

FASTLANE͕ා͘ͳ͘ͳΔ·Ͱ RUBYͷจ๏Λ͋Δఔ౓֮͑ͨ ▸ FastfileͬͯRubyͷDSLͱ΍ΒΒ͍͠ ▸ Ruby͕ͳΜͱͳ͘Θ͔Δ͜ͱͰɺFastfileΛฤू͢Δ͜ͱ΁ ͷڪා͕ࠀ෰͞Εͨ ▸ fastlaneࣗମ΋RubyͰ࣮૷͞Ε͍ͯΔ

Slide 11

Slide 11 text

FASTLANE͕ා͘ͳ͘ͳΔ·Ͱ ެࣜυΩϡϝϯτΛಡΜͩ ▸ https://docs.fastlane.tools/ ▸ https://github.com/fastlane/docs ▸ ࢖͍ํͷྫ΍ActionҰཡͳͲ ▸ ͲΜͳ͜ͱ͕Ͱ͖Δͷ͔ΠϝʔδͰ͖ΔΑ͏ʹͳͬͨ

Slide 12

Slide 12 text

FASTLANE͕ා͘ͳ͘ͳΔ·Ͱ FASTLANEͷιʔεΛಡΜͰΈͨ ▸ ͨͱ͑͹ɺupdate_app_identifierͬͯ Action ͸ xcodeproj มߋ͢ Δ͔ Into.plistมߋ͢Δͷ͔Α͘Θ͔Βͣɺ࢖͏ͷ͕ͳΜͱͳ͘ා͍ ▸ ͻͱ·ͣfastlaneͷϦϙδτϦΛaction໊Ͱݕࡧ͢Δͱग़͖ͯͨ ▸ https://github.com/fastlane/fastlane/blob/master/fastlane/lib/ fastlane/actions/update_app_identifier.rb ▸ ಡΜͰΈΔͱׂͱΘ͔Γ΍͍͢ ▸ த਎͕Θ͔Δͱ࢖͏͜ͱͷڪා͕ബΕ͖ͯͨ

Slide 13

Slide 13 text

FASTLANE͕ා͘ͳ͘ͳΔ·Ͱ TYPOݟ͚ͭͨͷͰCONTRIBUTEͯ͠Έͨ

Slide 14

Slide 14 text

FASTLANE͕ා͘ͳ͘ͳΔ·Ͱ EXPLITLY -> EXPLICITLY

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

AGENDERS ͍·࿩͍ͯ͠Δͱ͜Ζ ▸ fastlaneා͍ˠfastlaneා͘ͳ͍ ▸ fastlaneΛ࢖͓͔ͬͨ͛Ͱָʹͳͬͨ࿩ ←࣍͜͜ ▸ CI؀ڥಋೖͷۤ࿑࿩

Slide 17

Slide 17 text

FASTLANEΛ࢖͓͔ͬͨ͛Ͱָʹͳͬͨ࿩ ABOUT OUR CHAT APP ▸ Ϗδωενϟοτ(ݸਓͰ͸ͳ͘ձࣾͰ࢖͏) ▸ Enterprise൛ͱ͍͏ΦϯϓϨϛε൛(Ϋϥ΢υ͡Όͳ͍൛)͕͋Δ ▸ ༷ʑͳΞϓϦ഑෍ܗଶ͕ߟ͑ΒΕΔ ▸ ADEPͷIn-House (ADEP: Apple Developer Enterprise Program) ▸ VPP Custom B2B (VPP: Volume Purchase Program) ▸ App Store ▸ ࣾ಺഑৴ ( Fabric Beta )

Slide 18

Slide 18 text

FASTLANEΛ࢖͓͔ͬͨ͛Ͱָʹͳͬͨ࿩ VPP CUSTOM B2Bͷۤ೰ɹɹ ▸ ΧελϜ಺༰͕มΘΔͨͼʹผΞϓϦͱͯ͠iTunes Connect΁ͷొ࿥͕ ඞཁ ▸ ฐࣾͷ৔߹ΞϓϦόʔδϣϯΛސ٬͝ͱʹݻఆ͍ͨ͠(αʔόʔͱͦΖ ͑ΔͨΊʹ) ▸ ୯७ʹ΍ΔͱXcodeͰScheme΍TargetΛ૿΍͢͜ͱʹͳΓ͔Ͷͳ͍(Ξ ϓϦ਺͕૿͑Δͱഁ୼͢Δ) ▸ iTunes ConnectͰԿ౓΋ࣅͨΑ͏ͳ৘ใΛ܁Γฦ͠ొ࿥͢Δ͜ͱʹͳ Δ

Slide 19

Slide 19 text

FASTLANEΛ࢖͓͔ͬͨ͛Ͱָʹͳͬͨ࿩ FASTLANEͰָͰ͖͍ͯΔ෦෼ ▸ App Bundle Identifier΍Display NameͷҰ࣌తͳॻ͖׵͑ ▸ iTunes Connect༻ͷϝλσʔλɺScreen Capture؅ཧ

Slide 20

Slide 20 text

FASTLANEΛ࢖͓͔ͬͨ͛Ͱָʹͳͬͨ࿩ APP BUNDLE IDENTIFIER΍DISPLAY NAMEͷҰ࣌తͳॻ͖׵͑ ▸ Scheme΍TargetΛ૿΍ͣ͞ʹόϦΤʔγϣϯΛ૿΍ͤΔ

Slide 21

Slide 21 text

FASTLANEΛ࢖͓͔ͬͨ͛Ͱָʹͳͬͨ࿩ ITUNES CONNECT༻ͷϝλσʔλɺSCREEN CAPTURE؅ཧ ▸ fastlane/metadata͕͋Ε͹ deliver action͸ϩʔΧϧͷϝλ σʔλ΍ Screen CaptureΛiTunes Connectʹొ࿥͢Δ ▸ VPP Custom B2B༻ʹࣅͨΑ͏ͳΞϓϦΛ૿΍͢ͱ͖͸͜ͷ ࢓૊ΈΛ࢖ͬͯखಈొ࿥Λ͠ͳ͍͜ͱͰָΛ͢Δ ▸ name.txt(App Storeʹొ࿥͢ΔΞϓϦ໊)͸࡟আ͓ͯ͘͠ͱ ָ͔΋

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

AGENDERS ͍·࿩͍ͯ͠Δͱ͜Ζ ▸ fastlaneා͍ˠfastlaneා͘ͳ͍ ▸ fastlaneΛ࢖͓͔ͬͨ͛Ͱָʹͳͬͨ࿩ ▸ CI؀ڥಋೖͷۤ࿑࿩ ←࣍͜͜

Slide 24

Slide 24 text

CI؀ڥಋೖͷۤ࿑࿩ CI؀ڥಋೖ͠·ͨ͠ ▸ Bitriseͷ༗ྉϓϥϯ(ಉ࣮࣌ߦ2ͭ)Λܖ໿ ▸ git push͢Δ͝ͱʹςετΛ࣮ߦ(GitHub࿈ܞ) ▸ ࣾ಺഑৴΍ϦϦʔε࣌ͷϏϧυΛ։ൃऀͷPCͰߦΘͳͯ͘ ΋Α͘ͳͬͨ ▸ fastlane࢖͍ͬͯΔͷͰCIଆͷઃఆ͸গͳ͍

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

CI؀ڥಋೖͷۤ࿑࿩ ۚͷ஄ؙൃಈ·Ͱͷಓ ▸ ࣾ಺഑৴΍ϦϦʔεͷͨΊͷϏϧυΛ։ൃऀͷPCͰߦ͏͜ ͱ͸وॏͳ޻਺Λແବʹ͢Δߦҝ ▸ CI؀ڥΛಋೖ͢Δ͜ͱͰɺϏϧυ౳ͷ޻਺Λແବʹͤͣຊདྷ ͷ։ൃʹճ͢͜ͱ͕Ͱ͖Δ ▸ ࣦΘΕ͍ͯΔͰ͋Ζ͏޻਺Λֹۚʹ׵ࢉ͠ɺCI؀ڥ༗ྉϓϥ ϯͷֹۚͱൺֱͯ͠ΈΔ

Slide 27

Slide 27 text

CI؀ڥಋೖͷۤ࿑࿩ CI؀ڥಋೖͰۤ࿑ͨ͜͠ͱ ▸ Apple IDͷύεϫʔυ͸Ͳ͏͢Δ? ▸ cert΍matchΛ࢖͍ͬͯͳ͍͚Ͳূ໌ॻ͸? ▸ CI؀ڥͰ͚ͩΤϥʔʹͳΔέʔεʹૺ۰ ▸ gymͰॺ໊ؔ࿈ͰΤϥʔʹͳͬͨ ▸ scan͕ͳ్͔ͥதͰࣦഊ

Slide 28

Slide 28 text

CI؀ڥಋೖͷۤ࿑࿩ APPLE IDͷύεϫʔυ͸Ͳ͏͢Δ? ▸ FASTLANE_PASSWORD ؀ڥม਺ʹύεϫʔυΛઃఆ

Slide 29

Slide 29 text

CI؀ڥಋೖͷۤ࿑࿩ CERT΍MATCHΛ࢖͍ͬͯͳ͍͚Ͳূ໌ॻ͸? ▸ BitriseͳΒূ໌ॻΛ؆୯ʹ؀ڥʹ൓өͰ͖Δ(ͪΐͬͱ͚ͩ Bitriseґଘͯ͠͠·ͬͨՕॴ)

Slide 30

Slide 30 text

CI؀ڥಋೖͷۤ࿑࿩ GYMͰॺ໊ؔ࿈ͰΤϥʔʹͳͬͨ ▸ Xcode7ͷઃఆΛͦͷ··࢖͍ͬͯͨ ▸ Automatic Code SigningΛҰ࣌తʹແޮʹ͢Δ͜ͱͰղܾ

Slide 31

Slide 31 text

CI؀ڥಋೖͷۤ࿑࿩ SCAN͕ͳ్͔ͥதͰࣦഊ ▸ ݕࡧ͢Δͱ͍Ζ͍Ζग़Δ͕ͲΕΛ΍ͬͯ΋ղܾͤͣ ▸ Ϗϧυઃఆ͕ؒҧ͍ͬͯͨͷͰमਖ਼͢Δͱ੒ޭ͢ΔΑ͏ʹ

Slide 32

Slide 32 text

·ͱΊ ·ͱΊ ▸ ࠷ॳ͸fastlane৮Δͷා͔͚ͬͨͲɺΘ͔ͬͯ͘Δͱා͘ͳ ͘ͳ͖ͬͯͨ ▸ fastlaneͷ͓͔͛ͰVPP Custom B2BΞϓϦͷͨΊʹ Scheme΍TargetΛ૿΍͢͜ͱΛճආͰ͖ͨ ▸ CI؀ڥಋೖ͢Δͱ޾ͤʹͳΕΔɻͭ·͍ͮͨࣄྫͷڞ༗

Slide 33

Slide 33 text

͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠