Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
Search
Atsuya Sato
September 30, 2025
Programming
700
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
2025/10/1に開催された extension DC 2025 Day1@DeNA で発表した「Pull-Requestの内容を1クリックで動作確認可能にするワークフロー」の資料です
Atsuya Sato
September 30, 2025
More Decks by Atsuya Sato
See All by Atsuya Sato
アプリ内にテーマ機能を実装する / pixiv-app-talk-202604-theme-feature
natmark
0
74
iOS 17で追加されたSubscriptionStoreView を利用して5分でサブスク実装チャレンジ
natmark
0
1.6k
Pastelaのアプリ内課金開発の裏側 / pixiv-app-night-202502-pastela-iap
natmark
2
230
詳解UIWindow
natmark
3
5.7k
画面最前面に表示されるデバッグツールを作る
natmark
2
360
最低サポートOSバージョンをあげた時のストア表示について / potatotips81-store-page-apperance-with-deployment-target-updated
natmark
2
820
施策基盤としてのディープリンク〜なめらかにアプリが開く体験のために〜
natmark
9
9.2k
チームでSwiftUIを書くために / After Party iOSDC Japan 2021 SwiftUI
natmark
3
1.2k
iOSDC_SwiftUI_Text
natmark
4
6k
Other Decks in Programming
See All in Programming
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
190
JIS keyboard support in Omarchy
lef237
0
140
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
900
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
0
100
ChromeでローカルLLM
ryu1013
0
140
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
280
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
180
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.6k
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
160
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
ActionController meets Protocol Buffers
sorah
0
560
R8 の設定見直しでアプリサイズ削減
andpad
0
220
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
4
4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Designing for Timeless Needs
cassininazir
1
530
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
Marketing to machines
jonoalderson
1
5.9k
A designer walks into a library…
pauljervisheath
211
25k
Music & Morning Musume
bryan
48
7.4k
Amusing Abliteration
ianozsvald
1
350
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
710
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Transcript
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO 2025/10/1 extensionDC 2025 Day1@DeNA Pull-Requestͷ༰Λ1ΫϦοΫͰ ಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔ atsuyan
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO 𝕏 !O@BUNBSL atsuyan 1BTUFMBʛJ04ΤϯδχΞ • iPad͚ϖΠϯτπʔϧ Pastelaͷ։ൃΛ୲ •
ϘϧμϦϯά͕झຯ🧗
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO Pull-Requestͷಈ࡞֬ೝͬͯ Ͳ͏ͯ͠·͔͢ʁ
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO Pull-Requestͷಈ࡞֬ೝʹ͑ͦ͏ͳํ๏ • ରϒϥϯνΛpullͯ͠खݩͰϏϧυ • AdHocϏϧυΛ༻ҙͯ͠ • TestFlightΛར༻ͯ͠ • (TestFlightΛ࡞)
• e.g. ΫοΫύουࣾͷhaneda (https://speakerdeck.com/slightair/iosdc-2018) • ͜ΕADEP(Apple Developer Enterprise Program)͕ඞཁͳͷͰɺ୭ͰͰ͖Δ ํ๏Ͱͳ͍…
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO ରϒϥϯνΛpullͯ͠खݩͰϏϧυ Pros • XcodeͰϏϧυ͢ΔͨΊɺσόοΨ͕ར༻Ͱ͖Δ • LLDB • Debug Memory
Graph / Debug View Hierarchy Cons • खݩͰͷϏϧυʹ͕͔͔࣌ؒΔ
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO AdHocϏϧυΛ༻ҙͯ͠ Pros • Appleͷ৹͕ࠪෆཁ • όΠφϦΛApp Store ConnectʹΞοϓϩʔυ͢Δඞཁ͕ͳ͍ Cons
• σόΠεཧ͕ඞཁ • ར༻͍ͨ͠σόΠεͷUUIDΛProvisioning Pro fi leʹؚΊͳ͍ͱ ͍͚ͳ͍
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO TestFlightΛར༻ͯ͠ Pros • σόΠεཧ͕ෆཁ (Test fl ihtͷট͚ͩͰOK) Cons •
ϨʔτϦϛοτ͕ଘࡏ͢Δ (ITMS-90383) • https://docs.fastlane.tools/actions/deliver/ ʹΑΔͱ150/dayΒ͍͠ • TestFlightͰՄೳʹͳΔ·Ͱʹॲཧ͕͔͔࣌ؒΔ
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO खݩͰϏϧυ TestFlight AdHoc ϨϏϡϫʔͷ × (Ϗϧυ͕ඞཁ) ̋ ̋
ݕূͷཧίετ - ̋ × (UUID͕ඞཁ) ৴Մೳճ - × (ϨʔτϦϛοτ༗Γ) ̋ σόοά͢͠͞ ˕ (σόοΨ͕ར༻Մ) ̋ ̋ ΞϓϦͷ࣮ߦ γϛϡϨʔλʔ্ or ࣮ػ ࣮ػ ࣮ػ
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO खݩͰϏϧυ TestFlight AdHoc ϨϏϡϫʔͷ × (Ϗϧυ͕ඞཁ) ̋ ̋
ݕূͷཧίετ - ̋ × (UUID͕ඞཁ) ৴Մೳճ - × (ϨʔτϦϛοτ༗Γ) ̋ σόοά͢͠͞ ˕ (σόοΨ͕ར༻Մ) ̋ ̋ ΞϓϦͷ࣮ߦ γϛϡϨʔλʔ্ or ࣮ػ ࣮ػ ࣮ػ ৽نػೳͷ࣮ɺ͋Δఔن ͕େ͖͍มߋͷ߹ʹɺ σόοΨΛ׆༻ͯ͠ϝϞϦ༻ྔ ΛνΣοΫͨ͠Γɺ ϒϨʔΫϙΠϯτΛஔ͖ͳ͕Βॲ ཧ͕ݺΕ͍ͯΔ͔֬ೝ͠ͳ͕ Βɺಈ࡞֬ೝ͢Δࡍʹ༗ޮͦ͏
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO खݩͰϏϧυ TestFlight AdHoc ϨϏϡϫʔͷ × (Ϗϧυ͕ඞཁ) ̋ ̋
ݕূͷཧίετ - ̋ × (UUID͕ඞཁ) ৴Մೳճ - × (ϨʔτϦϛοτ༗Γ) ̋ σόοά͢͠͞ ˕ (σόοΨ͕ར༻Մ) ̋ ̋ ΞϓϦͷ࣮ߦ γϛϡϨʔλʔ্ or ࣮ػ ࣮ػ ࣮ػ ։ൃऀҎ֎ͷεςʔΫϗϧμʔ ʹಈ࡞Λݟͯཉ͍͠߹ɺ ͋Δఔ͕ߴ͍ঢ়ଶͰ ͍ͨ͠߹ʹ༗ޮͦ͏
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO खݩͰϏϧυ TestFlight AdHoc ϨϏϡϫʔͷ × (Ϗϧυ͕ඞཁ) ̋ ̋
ݕূͷཧίετ - ̋ × (UUID͕ඞཁ) ৴Մೳճ - × (ϨʔτϦϛοτ༗Γ) ̋ σόοά͢͠͞ ˕ (σόοΨ͕ར༻Մ) ̋ ̋ ΞϓϦͷ࣮ߦ γϛϡϨʔλʔ্ or ࣮ػ ࣮ػ ࣮ػ ཧ͞Εͨͷར༻ऀʹݶఆ͞ ΕΔ͕ɺPRʹίϛοτΛੵΉ ʹ৴͢ΔΑ͏ͳӡ༻ʹ༗ޮͦ͏
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO ͜͜ͰϫΨϚϚͳatsuyan͞Μݴ͍·ͨ͠
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO • ܰඍͳมߋͷಈ࡞֬ೝΛखݩͷϏϧυແ͠Ͱ ֬ೝ͍ͨ͠ʂ • Ͱ৴ରͷσόΠεཧͨ͘͠ແ͍ʂ • TestflightͷϨʔτϦϛοτؾʹͨ͘͠ແ͍ʂ (γϛϡϨʔλʔ্Ͱͷಈ࡞֬ೝͰ͍͍Α)
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO ͭ·Γʁ
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO ? ϨϏϡϫʔͷ ̋ (खݩϏϧυͨ͘͠ͳ͍) ݕূͷཧίετ ̋ (ཧͨ͘͠ͳ͍) ৴Մೳճ
̋ (ϨʔτϦϛοτΛؾʹͨ͘͠ͳ͍) σόοά͢͠͞ ̋ ΞϓϦͷ࣮ߦ γϛϡϨʔλͰΑ͍ K ͜Ε͕ཉ͍͠ʂ
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO ͱ͜ΖͰ… ࣮ػͰͷ࣮ߦͱγϛϡϨʔλʔͰͷ࣮ߦͬͯԿ͕ҧ͏ͷʁ • ࣮ػʹΠϯετʔϧ͞ΕΔΞϓϦ .ipa (iOS Package Archive) ͱ͍͏ϑΝΠϧܗࣜ
<App>.ipa/Payload/<App>.app/embedded.mobileprovision ʹϓϩϏδϣχϯάϓϩϑΝΠϧ͕ଘࡏ͢Δ • γϛϡϨʔλͰ࣮ߦ͞ΕΔΞϓϦ .app ͱ͍͏ܗࣜ (ͨͩͷϑΥϧμܗࣜ) .ipa ʹؚ·ΕΔ Payload/<App>.app ͱܗࣜಉ͕ͩ͡ɺγϛϡϨʔλ࣮ߦ͚ ʹ࡞͞Εͨ .app όϯυϧʹ embedded.mobileprovision ଘࡏ͠ͳ͍
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO ͭ·Γʁ γϛϡϨʔλͰ࣮ߦՄೳͳΞϓϦͷܗࣜͰ͋ΕɺϓϩϏδϣχϯ άϓϩϑΝΠϧແ͠Ͱ࣮ߦͰ͖Δ • ͷཧ͕ෆཁ • .app όϯυϧΛCIͰ࡞ͯ͠Artifactͱͯ͠อଘ͓͚ͯ͠ɺ։ ൃऀͷखݩͰϏϧυ͍Βͣ
• Test fl ightͷΞοϓϩʔυ͍Βͣ
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO ࣗͷνʔϜͰӡ༻͍ͯ͠ΔϫʔΫϑϩʔ 1. CIͰγϛϡϨʔλ͚ͷΞʔςΟϑΝΫτΛ࡞Δ 1. 2. ΫϥυετϨʔδʹ࡞ͨ͠γϛϡϨʔλ͚ͷΞʔςΟϑΝΫτΛอଘ͢Δ 3. CIͰϏϧυ͕ऴΘͬͨΒPull-RequestʹΞʔςΟϑΝΫτ͕อଘ͞ΕͨURL͕ࣗ ಈͰίϝϯτ͞ΕΔΑ͏ʹ͢Δ
4. ։ൃऀ͕URLΛΫϦοΫ͢ΔͱɺࣗಈͰΞʔςΟϑΝΫτͷμϯϩʔυ & γ ϛϡϨʔλͷىಈΛߦ͍ɺγϛϡϨʔλʹΞϓϦͷΠϯετʔϧ͕͞ΕΔ $ xcodebuild archive -destination “generic/platform=iOSSimulator” …
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO ࣗͷνʔϜͰӡ༻͍ͯ͠ΔϫʔΫϑϩʔ 1. CIͰγϛϡϨʔλ͚ͷΞʔςΟϑΝΫτΛ࡞Δ 1. 2. ΫϥυετϨʔδʹ࡞ͨ͠γϛϡϨʔλ͚ͷΞʔςΟϑΝΫτΛอଘ͢Δ 3. CIͰϏϧυ͕ऴΘͬͨΒPull-RequestʹΞʔςΟϑΝΫτ͕อଘ͞ΕͨURL͕ࣗ ಈͰίϝϯτ͞ΕΔΑ͏ʹ͢Δ
4. ։ൃऀ͕URLΛΫϦοΫ͢ΔͱɺࣗಈͰΞʔςΟϑΝΫτͷμϯϩʔυ & γ ϛϡϨʔλͷىಈΛߦ͍ɺγϛϡϨʔλʹΞϓϦͷΠϯετʔϧ͕͞ΕΔ $ xcodebuild archive -destination “generic/platform=iOSSimulator” …
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO IUUQTHJUIVCDPN4IPQJGZUPQIBU
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO TophatΛར༻ͨ͠ϫʔΫϑϩʔͷհಈը ※LTͷईʹऩΊΔͨΊʹഒ & ϩʔσΟϯάՕॴΛΧοτͯ͠·͢ (ΞϓϦͷόΠφϦαΠζʹґΓ·͕࣮͢ࡍʹϦϯΫΫϦοΫͯ͠1͘Β͍͔͔Γ·͢)
1VMM3FRVFTUͷ༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO TophatΛ׆༻͢Δ • ෳσόΠεΛબͯ͠ಉ࣌ʹΠϯετʔϧͰ͖ΔͷͰɺαΠζ ҧ͍ͷͷݟͨΛνΣοΫͨ͠Γ͢Δͷʹศར • AdHocϏϧυͨ͠ .ipa Λ༻ҙ͢Ε࣮ػ͚ͷΠϯετʔϧ ಉ͡Α͏ʹ1ΫϦοΫͰՄೳ
• Tophat v2ͰArtifact ProviderͷΈ͕Ͱ͖ͨ • Bitrise Extensionsͷαϙʔτ͕ެࣜͰ͞Ε͍ͯΔ BitriseΛCIʹͬͯΔ߹BitriseͷPATΛTophatʹ ೖΕΔ͚ͩͰಋೖͰ͖Δʂ 🎩 K Tophatͱͯศར