Upgrade to Pro — share decks privately, control downloads, hide ads and more …

fastlaneで快適な開発ライフを

Kohei Tabata
October 21, 2016

 fastlaneで快適な開発ライフを

Kohei Tabata

October 21, 2016
Tweet

More Decks by Kohei Tabata

Other Decks in Programming

Transcript

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

    View full-size slide

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

    View full-size slide

  3. http://next.saib-stud.io

    View full-size slide

  4. ࣗಈԽͯ͠·͢ʁ

    View full-size slide

  5. ָͯ͠·͢ʁ

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  18. 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ΦϓγϣϯͰճආՄೳ)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  21. 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ͷൈ͚࿙Εͷͳ͍ߋ৽ɺόʔδϣϯ؅ཧ͕༰қʹɻ

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  26. ࢀߟ
    ɾ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/)

    View full-size slide