Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
fastlaneで快適な開発ライフを
Kohei Tabata
October 21, 2016
Programming
1
1.4k
fastlaneで快適な開発ライフを
Kohei Tabata
October 21, 2016
Tweet
Share
More Decks by Kohei Tabata
See All by Kohei Tabata
営業活動なしで継続的に案件を受注する方法 / how to get a contract without sales as a freelance
nerd0geek1
2
780
生体データを取り扱うアプリ開発の勘所
nerd0geek1
1
68
動線改善とステータス可視化で家庭内のストレスを軽減した話
nerd0geek1
3
3.5k
家庭をプロジェクトとして運営した話
nerd0geek1
2
3.6k
fastlaneの勉強会を主催して学んだこと、得たこと、悩んだこと
nerd0geek1
1
810
みんなで育てるprecheck
nerd0geek1
1
480
matchとは?match導入のメリット
nerd0geek1
4
410
Improve your workflow with Sketch plugin
nerd0geek1
3
950
Looking back try! Swift 2017
nerd0geek1
0
460
Other Decks in Programming
See All in Programming
SwiftPMのPlugin入門 / introduction_to_swiftpm_plugin
uhooi
2
100
まだ日本国内で利用できないAppActionsにトライしてみた / MoT TechTalk #15
mot_techtalk
0
110
Remix + Cloudflare Pages + D1 で ポケモン SV のレンタルチームを検索できるアプリを作ってみた
kuroppe1819
4
1.4k
ちょうぜつ改め21世紀ふつうのソフトウェア設計
tanakahisateru
7
6.4k
Rust、何もわからない...#6発表資料
ryu19
0
130
TokyoR#103_DataProcessing
kilometer
0
540
2023年にクル(かもしれない)通信ミドルウェア技術(仮)
s_hosoai
0
210
Circuit⚡
monaapk
0
200
NGK2023S - OCaml最高! スマホ開発にも使えちゃう?!
haochenxie
0
120
Refactor with using `available` and `deprecated`
417_72ki
3
380
23年のJavaトレンドは?Quarkusで理解するコンテナネイティブJava
tatsuya1bm
1
120
和暦を正しく扱うための暦の話
nagise
10
6.4k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
32
6.7k
Debugging Ruby Performance
tmm1
67
11k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
22
1.7k
Git: the NoSQL Database
bkeepers
PRO
419
60k
Designing on Purpose - Digital PM Summit 2013
jponch
108
5.9k
Automating Front-end Workflow
addyosmani
1351
200k
Code Review Best Practice
trishagee
50
11k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Fantastic passwords and where to find them - at NoRuKo
philnash
32
1.9k
Statistics for Hackers
jakevdp
785
210k
Designing with Data
zakiwarfel
91
4.2k
WebSockets: Embracing the real-time Web
robhawkes
58
6k
Transcript
fastlaneͰշదͳ ։ൃϥΠϑΛʂ 2016/10/25
[email protected]
Ϋϥεϝιουגࣜձࣾ
ࣗݾհ ɾKohei Tabata(@nerd0geek1) ɾSaib Studio LLC ɾiOS/MacOS/tvOS Developer ɾFastlaneେ͖ ɾAKIBA.swiftେ͖
Said Studio LLC Kohei Tabata Next! Remote quick-zip plus Sleeple
http://next.saib-stud.io
ࣗಈԽͯ͠·͢ʁ
ָͯ͠·͢ʁ
·ͩखಈϏϧυͰ ফͯ͠Δͷʁ
ಋೖܦݧऀͷ ɾखಈͰϦζϜΛ่͞ΕΔ͜ͱ͕ͳ͘ͳΓ·ͨ͠ʂ(28ࡀɺஉੑ) ɾPMPOɺσβΠφʔͱਐḿɺ༷ͷೝࣝͷڞ༗ָ͕ʹͳΓ·ͨ͠ʂ(28ࡀɺஉੑ) ɾਃ࣌ͷୀ۶ͳख࡞ۀ͔Β։์͞Ε·ͨ͠ʂ(28ࡀɺஉੑ) ɾmetadata͕ཧͰ͖ΔΑ͏ʹͳΓɺਃ࣌ͷจݴͷ౷Ұ͕ਤΕΔΑ͏ʹͳΓ·ͨ͠ʂ fastlaneΛ͏ͱ͜Μͳʹͤʹ❗❗❗
࣍ ɾfastlaneͱ ɾfastlaneΛߏ͢Δgem ɾfastlaneʹؚ·ΕΔaction ɾfastlaneͰͤʹͳΔํ๏
fastlaneͱ ɾfastlaneɺiOS/Mac(+Android)ΞϓϦ։ൃʹؔΘΔୀ۶ͳ ɹ࡞ۀΛ؆қԽ͢ΔͨΊʹ࡞ΒΕͨπʔϧ܈ɻ ɾrubyͰॻ͔Εɺgemͱͯ͠͞Ε͍ͯΔɻ ɾҰੲલͷɺnomad CLIͷཱͪҐஔɻ
fastlaneಋೖاۀ ɾsaib studio ɾWantedly ɾMercari ɾMoney Forward ɾFablic ɾDeNA ɾookami
etc…
fastlaneΛߏ͢Δgem ɾframeit ɾpem ɾsigh ɾproduce ɾcert ɾspaceship ɾpilot ɾboarding ɾgym
ɾmatch ɾscan ɾdeliver ɾsupply ɾscreengrab ɾsnapshot
fastlaneΛߏ͢Δgem ɾframeit ɾpem ɾsigh ɾproduce ɾcert ɾspaceship ɾpilot ɾboarding ɾgym
ɾmatch ɾscan ɾdeliver ɾsupply ɾscreengrab ɾsnapshot
fastlaneΛߏ͢Δgem ɾdeliver ɾsnapshot ɾframeit ɾpem ɾsigh ɾproduce ɾcert ɾspaceship ɾpilot
ɾboarding ɾgym ɾmatch ɾscan
fastlaneΛߏ͢Δgem ɾdeliver ɾsnapshot ɾpem ɾsigh ɾpilot ɾgym ɾscan
Provisioning ProfileΛੜɾߋ৽ɾμϯϩʔυ͢ΔͨΊͷgem ɾ͋Δbundle identifierʹରԠ͢ΔDebug༻ϑΝΠϧͷੜɾμϯϩʔυ ɹsigh --development ɾ͋Δbundle identifierʹରԠ͢ΔAdHoc༻ϑΝΠϧͷੜɾμϯϩʔυ ɹsigh --adhoc
ɾiOS Dev Center্ͷશϑΝΠϧͷμϯϩʔυ ɹsigh --download_all ͏Ε͍͠ϙΠϯτ ɾϒϥβXcodeΑΓߴʹϑΝΠϧΛऔಘͰ͖Δɻ ɾίϚϯυ1ͭͰৗʹ࠷৽ͷProvisioning Profile͕औಘͰ͖Δ(ಛʹCIڥԼͰศར)
push௨༻ূ໌ॻΛ࡞͢ΔͨΊͷgemɻpem/cer/p12ϑΝΠϧΛੜ͢Δ ɾ͋Δbundle identifierʹରԠ͢Δূ໌ॻϑΝΠϧ܈ͷੜ ɹpem ɾ͋Δbundle identifierʹରԠ͢Δূ໌ॻϑΝΠϧ܈(ύεϫʔυ͖)ͷੜ ɹpem -p “password” ͏Ε͍͠ϙΠϯτ
ɾpemϑΝΠϧੜͷͨΊͷ͋ΒΏΔۤߦ͔Β։์͞ΕΔ
iOS/Mac appͷςετ࣮ߦΛ؆қԽ͢ΔͨΊͷgemɻ ɾςετͷ࣮ߦ ɹscan ɾworkspaceɺschemeΛࢦఆͨ͠ςετͷ࣮ߦ ɹscan --workspace "Example.xcworkspace" --scheme "AppName"
͏Ε͍͠ϙΠϯτ ɾ࠷ݶworkspaceɺschemeΛࢦఆ͢Δ͚ͩͰςετΛ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δ
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ΦϓγϣϯͰճආՄೳ)
TestFlightʹର͢Δૢ࡞Λఏڙ͢Δgemɻޙड़͢ΔdeliverͰͷipaϑΝΠϧΞοϓϩʔυ͕ ࣦഊ͢Δ͜ͱ͕ଟ͘ɺTestFlightͱਃ༻ipa͕૬ޓʹస༻ՄೳͳͨΊɺਃ༻ipaϑΝΠϧ ͷΞοϓϩʔυʹར༻ ɾipaϑΝΠϧͷΞοϓϩʔυ(ॲཧͪͤͣ) ɹpilot --skip_submission --skip_waiting_for_build_processing ͏Ε͍͠ϙΠϯτ ɾ؆୯ʹipaϑΝΠϧͷΞοϓϩʔυ͕Մೳ ɾdeliverͷସखஈͱͳΓ͏Δ
iTunes Connect্Ͱొ͢ΔεΫϦʔϯγϣοτͷࡱӨΛࣗಈԽ͢Δgemɻ ϩʔΧϥΠζͨ͠εΫϦʔϯγϣοτؚΊͯࣗಈͰࡱӨ͢Δɻ ɾεΫϦʔϯγϣοτͷࡱӨ(͜ΕҎ֎ʹXcodeͷUI TestingΛఆٛ͢Δඞཁ͋Γ) ɹsnapshot ͏Ε͍͠ϙΠϯτ ɾScreenShot SimplificationͰඞཁͳεΫϦʔϯγϣοτͷຕ͕গͳ͘ͳͬͨͱ͍͑ ɹୀ۶ͳ࡞ۀΛࣗಈԽͰ͖Δ
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ͷൈ͚࿙Εͷͳ͍ߋ৽ɺόʔδϣϯཧ͕༰қʹɻ
fastlaneʹؚ·ΕΔaction ύοέʔδϚωʔδϟ ɾcocoapods ɾcarthage ίϛϡχέʔγϣϯπʔϧ ɾchatwork ɾhipchat ɾmailgun ɾslack ɾtwitter
ɾifttt
fastlaneʹؚ·ΕΔaction ϕʔλςεςΟϯά ɾcrashlytics ɾdeploygate ɾhockey ɾinstallr ɾs3 ϓϩδΣΫτཧ ɾjira ࿈ܞॆ࣮ʂ
fastlaneͰͤʹͳΔํ๏ ɾͰ͖Δ͜ͱ͔Β࢝ΊΔɻॳΊ͔Βશ෦Ζ͏ͱ͠ͳ͍ ɹɹ- ੲɺਓʹCIಋೖΛ૬ஊͨ͠ࡍʹݴΘΕͨݴ༿ - gym&crashlytics&CIͰϕʔλͷࣗಈԽͱ͔ ɹɹ- deliverͰਃपΓͷࣗಈԽͱ͔ɻ ɹɹ- গͣͭͤ͠ʹͳΔɻՄॲ࣌ؒΛ૿͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
ࢀߟ ɾ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/)