Slide 1

Slide 1 text

fastlaneͰշదͳ ։ൃϥΠϑΛʂ 2016/10/25 AKIBA.swift@Ϋϥεϝιουגࣜձࣾ

Slide 2

Slide 2 text

ࣗݾ঺հ ɾKohei Tabata(@nerd0geek1) ɾSaib Studio LLC ɾiOS/MacOS/tvOS Developer ɾFastlaneେ޷͖ ɾAKIBA.swiftେ޷͖ Said Studio LLC Kohei Tabata Next! Remote quick-zip plus Sleeple

Slide 3

Slide 3 text

http://next.saib-stud.io

Slide 4

Slide 4 text

ࣗಈԽͯ͠·͢ʁ

Slide 5

Slide 5 text

ָͯ͠·͢ʁ

Slide 6

Slide 6 text

·ͩखಈϏϧυͰ ফ໣ͯ͠Δͷʁ

Slide 7

Slide 7 text

ಋೖܦݧऀͷ੠ ɾखಈ഑෍ͰϦζϜΛ่͞ΕΔ͜ͱ͕ͳ͘ͳΓ·ͨ͠ʂ(28ࡀɺஉੑ) ɾPM΍POɺσβΠφʔͱਐḿɺ࢓༷ͷೝࣝͷڞ༗ָ͕ʹͳΓ·ͨ͠ʂ(28ࡀɺஉੑ) ɾਃ੥࣌ͷୀ۶ͳख࡞ۀ͔Β։์͞Ε·ͨ͠ʂ(28ࡀɺஉੑ) ɾmetadata͕؅ཧͰ͖ΔΑ͏ʹͳΓɺਃ੥࣌ͷจݴͷ౷Ұ͕ਤΕΔΑ͏ʹͳΓ·ͨ͠ʂ fastlaneΛ࢖͏ͱ͜Μͳʹ޾ͤʹ❗❗❗

Slide 8

Slide 8 text

໨࣍ ɾfastlaneͱ͸ ɾfastlaneΛߏ੒͢Δgem ɾfastlaneʹؚ·ΕΔaction ɾfastlaneͰ޾ͤʹͳΔํ๏

Slide 9

Slide 9 text

fastlaneͱ͸ ɾfastlane͸ɺiOS/Mac(+Android)ΞϓϦ։ൃʹؔΘΔୀ۶ͳ ɹ࡞ۀΛ؆қԽ͢ΔͨΊʹ࡞ΒΕͨπʔϧ܈ɻ ɾrubyͰॻ͔Εɺgemͱͯ͠഑෍͞Ε͍ͯΔɻ ɾҰੲલͷɺnomad CLIͷཱͪҐஔɻ

Slide 10

Slide 10 text

fastlaneಋೖاۀ ɾsaib studio ɾWantedly ɾMercari ɾMoney Forward ɾFablic ɾDeNA ɾookami etc…

Slide 11

Slide 11 text

fastlaneΛߏ੒͢Δgem ɾframeit ɾpem ɾsigh ɾproduce ɾcert ɾspaceship ɾpilot ɾboarding ɾgym ɾmatch ɾscan ɾdeliver ɾsupply ɾscreengrab ɾsnapshot

Slide 12

Slide 12 text

fastlaneΛߏ੒͢Δgem ɾframeit ɾpem ɾsigh ɾproduce ɾcert ɾspaceship ɾpilot ɾboarding ɾgym ɾmatch ɾscan ɾdeliver ɾsupply ɾscreengrab ɾsnapshot

Slide 13

Slide 13 text

fastlaneΛߏ੒͢Δgem ɾdeliver ɾsnapshot ɾframeit ɾpem ɾsigh ɾproduce ɾcert ɾspaceship ɾpilot ɾboarding ɾgym ɾmatch ɾscan

Slide 14

Slide 14 text

fastlaneΛߏ੒͢Δgem ɾdeliver ɾsnapshot ɾpem ɾsigh ɾpilot ɾgym ɾscan

Slide 15

Slide 15 text

Provisioning ProfileΛੜ੒ɾߋ৽ɾμ΢ϯϩʔυ͢ΔͨΊͷgem ɾ͋Δbundle identifierʹରԠ͢ΔDebug༻ϑΝΠϧͷੜ੒ɾμ΢ϯϩʔυ ɹsigh --development ɾ͋Δbundle identifierʹରԠ͢ΔAdHoc༻ϑΝΠϧͷੜ੒ɾμ΢ϯϩʔυ ɹsigh --adhoc ɾiOS Dev Center্ͷશϑΝΠϧͷμ΢ϯϩʔυ ɹsigh --download_all ͏Ε͍͠ϙΠϯτ ɾϒϥ΢β΍XcodeΑΓߴ଎ʹϑΝΠϧΛऔಘͰ͖Δɻ ɾίϚϯυ1ͭͰৗʹ࠷৽ͷProvisioning Profile͕औಘͰ͖Δ(ಛʹCI؀ڥԼͰศར)

Slide 16

Slide 16 text

push௨஌༻ূ໌ॻΛ࡞੒͢ΔͨΊͷgemɻpem/cer/p12ϑΝΠϧΛੜ੒͢Δ ɾ͋Δbundle identifierʹରԠ͢Δূ໌ॻϑΝΠϧ܈ͷੜ੒ ɹpem ɾ͋Δbundle identifierʹରԠ͢Δূ໌ॻϑΝΠϧ܈(ύεϫʔυ෇͖)ͷੜ੒ ɹpem -p “password” ͏Ε͍͠ϙΠϯτ ɾpemϑΝΠϧੜ੒ͷͨΊͷ͋ΒΏΔۤߦ͔Β։์͞ΕΔ

Slide 17

Slide 17 text

iOS/Mac appͷςετ࣮ߦΛ؆қԽ͢ΔͨΊͷgemɻ ɾςετͷ࣮ߦ ɹscan ɾworkspaceɺschemeΛࢦఆͨ͠ςετͷ࣮ߦ ɹscan --workspace "Example.xcworkspace" --scheme "AppName" ͏Ε͍͠ϙΠϯτ ɾ࠷௿ݶworkspaceɺschemeΛࢦఆ͢Δ͚ͩͰςετΛ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δ

Slide 18

Slide 18 text

ipa/appϑΝΠϧΛੜ੒͢ΔͨΊͷgemɻshenzhenΑΓ30%ߴ଎ͱͷ͜ͱɻ ɾipaͷੜ੒ ɹgym ɾworkspaceɺschemeΛࢦఆͨ͠ipaͷੜ੒(AdHoc༻schemeΛఆ͍ٛͯͨ͠৔߹) ɹgym --workspace "Example.xcworkspace" --scheme "AppNameAdHoc" ͏Ε͍͠ϙΠϯτ ɾ؆୯ʹipaϑΝΠϧͷੜ੒͕Մೳɻ ɾࣗಈԽ&ipa/dSYMϑΝΠϧͷੜ੒ɾอଘΛߦ͏ͱޙ͔Βόάௐࠪ౳Λߦ͏ࡍʹศརɻ ͭΒ͍ϙΠϯτ ɾϓϩδΣΫτʹΑࣦͬͯഊ͢Δ৔߹͋Γ(--use_legacy_build_apiΦϓγϣϯͰճආՄೳ)

Slide 19

Slide 19 text

TestFlightʹର͢Δૢ࡞Λఏڙ͢Δgemɻޙड़͢ΔdeliverͰͷipaϑΝΠϧΞοϓϩʔυ͕ ࣦഊ͢Δ͜ͱ͕ଟ͘ɺTestFlightͱਃ੥༻ipa͕૬ޓʹస༻ՄೳͳͨΊɺਃ੥༻ipaϑΝΠϧ ͷΞοϓϩʔυʹ΋ར༻ ɾipaϑΝΠϧͷΞοϓϩʔυ(ॲཧ଴ͪͤͣ) ɹpilot --skip_submission --skip_waiting_for_build_processing ͏Ε͍͠ϙΠϯτ ɾ؆୯ʹipaϑΝΠϧͷΞοϓϩʔυ͕Մೳ ɾdeliverͷ୅ସखஈͱͳΓ͏Δ

Slide 20

Slide 20 text

iTunes Connect্Ͱొ࿥͢ΔεΫϦʔϯγϣοτͷࡱӨΛࣗಈԽ͢Δgemɻ ϩʔΧϥΠζͨ͠εΫϦʔϯγϣοτؚΊͯࣗಈͰࡱӨ͢Δɻ ɾεΫϦʔϯγϣοτͷࡱӨ(͜ΕҎ֎ʹXcodeͷUI TestingΛఆٛ͢Δඞཁ͋Γ) ɹsnapshot ͏Ε͍͠ϙΠϯτ ɾScreenShot SimplificationͰඞཁͳεΫϦʔϯγϣοτͷຕ਺͕গͳ͘ͳͬͨͱ͸͍͑ ɹୀ۶ͳ࡞ۀΛࣗಈԽͰ͖Δ

Slide 21

Slide 21 text

iTunes Connect΁ͷmetadataΞοϓϩʔυΛ؆қԽ͢Δgemɻ ΦϓγϣϯʹΑͬͯɺmetadataͷΈɺscreenshotͷΈɺipaͷΈΛΞοϓϩʔυ͢Δͱ ͍ͬͨ͜ͱ͕Մೳ(ipaϑΝΠϧͷΞοϓϩʔυʹ͍ͭͯ͸Τϥʔ͕ൃੜ͢Δ͜ͱ͋Γ)ɻ ɾmetadataͷΞοϓϩʔυ(metadataͷΈ) ɹdeliver --skip_binary_upload --skip_screenshots ɾmetadataͷΞοϓϩʔυ(screenshotͷΈ) ɹdeliver --skip_binary_upload --skip_metadata ͏Ε͍͠ϙΠϯτ ɾiTunes Connect্ͷmetadataͷൈ͚࿙Εͷͳ͍ߋ৽ɺόʔδϣϯ؅ཧ͕༰қʹɻ

Slide 22

Slide 22 text

fastlaneʹؚ·ΕΔaction ύοέʔδϚωʔδϟ ɾcocoapods ɾcarthage ίϛϡχέʔγϣϯπʔϧ ɾchatwork ɾhipchat ɾmailgun ɾslack ɾtwitter ɾifttt

Slide 23

Slide 23 text

fastlaneʹؚ·ΕΔaction ϕʔλςεςΟϯά ɾcrashlytics ɾdeploygate ɾhockey ɾinstallr ɾs3 ϓϩδΣΫτ؅ཧ ɾjira ࿈ܞ΋ॆ࣮ʂ

Slide 24

Slide 24 text

fastlaneͰ޾ͤʹͳΔํ๏ ɾͰ͖Δ͜ͱ͔Β࢝ΊΔɻॳΊ͔Βશ෦΍Ζ͏ͱ͠ͳ͍ ɹɹ- ੲɺਓʹCIಋೖΛ૬ஊͨ͠ࡍʹݴΘΕͨݴ༿ - gym&crashlytics&CIͰϕʔλ഑෍ͷࣗಈԽͱ͔ ɹɹ- deliverͰਃ੥पΓͷࣗಈԽͱ͔ɻ ɹɹ- গͣͭ͠޾ͤʹͳΔɻՄॲ෼࣌ؒΛ૿΍͢

Slide 25

Slide 25 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

Slide 26

Slide 26 text

ࢀߟ ɾfastlane/fastlane ɹ(https://github.com/fastlane/fastlane) ɾFastlane͕։ൃऀͨͪͷΞϓϦϦϦʔε࡞ۀͷ100ສ࣌ؒΛ୹ॖ - Twitter Japan Developer Blog ɹ(https://blog.twitter.com/ja/2016/0408fastlane) ɾiOSΞϓϦਃ੥Λڻ͘΄Ͳ؆୯ʹʂfastlaneͰ͸͡ΊΔࣗಈԽೖ໳ - Wantedly Engineer Blog ɹ(https://www.wantedly.com/companies/wantedly/post_articles/30973) ɾiOSΞϓϦͷϦϦʔεϑϩʔࣗಈԽπʔϧfastlaneͷmeetupʹ௨༁ͰࢀՃ… - Mercari Engineering Blog ɹ(http://tech.mercari.com/entry/2015/07/13/143000) ɾfastlane ͷ snapshot Ͱ iOS ։ൃϓϩηεࣗಈԽ - Money Forward Engineers’ Blog ɹ(https://moneyforward.com/engineers_blog/2015/08/11/fastlane-snapshot-ios/)