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

Pull-Requestの内容を1クリックで動作確認可能にするワークフロー

Avatar for Atsuya Sato Atsuya Sato
September 30, 2025

 Pull-Requestの内容を1クリックで動作確認可能にするワークフロー

2025/10/1に開催された extension DC 2025 Day1@DeNA で発表した「Pull-Requestの内容を1クリックで動作確認可能にするワークフロー」の資料です

Avatar for Atsuya Sato

Atsuya Sato

September 30, 2025
Tweet

More Decks by Atsuya Sato

Other Decks in Programming

Transcript

  1. 1VMM3FRVFTUͷ಺༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO Pull-Requestͷಈ࡞֬ೝʹ࢖͑ͦ͏ͳํ๏ • ର৅ϒϥϯνΛpullͯ͠खݩͰϏϧυ • AdHocϏϧυΛ༻ҙͯ͠഑෍ • TestFlightΛར༻ͯ͠഑෍ • (಺੡TestFlightΛ࡞੒)

    • e.g. ΫοΫύουࣾͷhaneda (https://speakerdeck.com/slightair/iosdc-2018) • ͜Ε͸ADEP(Apple Developer Enterprise Program)͕ඞཁͳͷͰɺ୭Ͱ΋Ͱ͖Δ ํ๏Ͱ͸ͳ͍… 
  2. 1VMM3FRVFTUͷ಺༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO TestFlightΛར༻ͯ͠഑෍ Pros • σόΠε؅ཧ͕ෆཁ (Test fl iht΁ͷট଴͚ͩͰOK) Cons •

    ϨʔτϦϛοτ͕ଘࡏ͢Δ (ITMS-90383) • https://docs.fastlane.tools/actions/deliver/ ʹΑΔͱ150/dayΒ͍͠ • TestFlightͰ഑෍ՄೳʹͳΔ·Ͱʹॲཧ͕͔͔࣌ؒΔ 
  3. 1VMM3FRVFTUͷ಺༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO  खݩͰϏϧυ TestFlight AdHoc ϨϏϡϫʔͷ޻਺ × (Ϗϧυ͕ඞཁ) ̋ ̋

    ݕূ୺຤ͷ؅ཧίετ - ̋ × (୺຤UUID͕ඞཁ) ഑৴Մೳճ਺ - × (ϨʔτϦϛοτ༗Γ) ̋ σόοά͠΍͢͞ ˕ (σόοΨ͕ར༻Մ) ̋ ̋ ΞϓϦͷ࣮ߦ γϛϡϨʔλʔ্ or ࣮ػ ࣮ػ ࣮ػ
  4. 1VMM3FRVFTUͷ಺༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO  खݩͰϏϧυ TestFlight AdHoc ϨϏϡϫʔͷ޻਺ × (Ϗϧυ͕ඞཁ) ̋ ̋

    ݕূ୺຤ͷ؅ཧίετ - ̋ × (୺຤UUID͕ඞཁ) ഑৴Մೳճ਺ - × (ϨʔτϦϛοτ༗Γ) ̋ σόοά͠΍͢͞ ˕ (σόοΨ͕ར༻Մ) ̋ ̋ ΞϓϦͷ࣮ߦ γϛϡϨʔλʔ্ or ࣮ػ ࣮ػ ࣮ػ ৽نػೳͷ࣮૷΍ɺ͋Δఔ౓ن໛ ͕େ͖͍มߋͷ৔߹ʹɺ σόοΨΛ׆༻ͯ͠ϝϞϦ࢖༻ྔ ΛνΣοΫͨ͠Γɺ ϒϨʔΫϙΠϯτΛஔ͖ͳ͕Βॲ ཧ͕ݺ͹Ε͍ͯΔ͔֬ೝ͠ͳ͕ Βɺಈ࡞֬ೝ͢Δࡍʹ༗ޮͦ͏
  5. 1VMM3FRVFTUͷ಺༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO  खݩͰϏϧυ TestFlight AdHoc ϨϏϡϫʔͷ޻਺ × (Ϗϧυ͕ඞཁ) ̋ ̋

    ݕূ୺຤ͷ؅ཧίετ - ̋ × (୺຤UUID͕ඞཁ) ഑৴Մೳճ਺ - × (ϨʔτϦϛοτ༗Γ) ̋ σόοά͠΍͢͞ ˕ (σόοΨ͕ར༻Մ) ̋ ̋ ΞϓϦͷ࣮ߦ γϛϡϨʔλʔ্ or ࣮ػ ࣮ػ ࣮ػ ։ൃऀҎ֎ͷεςʔΫϗϧμʔ ʹ΋ಈ࡞Λݟͯཉ͍͠৔߹΍ɺ ͋Δఔ౓׬੒౓͕ߴ͍ঢ়ଶͰ഑ ෍͍ͨ͠৔߹ʹ༗ޮͦ͏
  6. 1VMM3FRVFTUͷ಺༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO  खݩͰϏϧυ TestFlight AdHoc ϨϏϡϫʔͷ޻਺ × (Ϗϧυ͕ඞཁ) ̋ ̋

    ݕূ୺຤ͷ؅ཧίετ - ̋ × (୺຤UUID͕ඞཁ) ഑৴Մೳճ਺ - × (ϨʔτϦϛοτ༗Γ) ̋ σόοά͠΍͢͞ ˕ (σόοΨ͕ར༻Մ) ̋ ̋ ΞϓϦͷ࣮ߦ γϛϡϨʔλʔ্ or ࣮ػ ࣮ػ ࣮ػ ؅ཧ͞Εͨ୺຤ͷར༻ऀʹݶఆ͞ ΕΔ͕ɺPRʹίϛοτΛੵΉ౓ ʹ഑৴͢ΔΑ͏ͳӡ༻ʹ༗ޮͦ͏
  7. 1VMM3FRVFTUͷ಺༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO ͱ͜ΖͰ… ࣮ػͰͷ࣮ߦͱγϛϡϨʔλʔͰͷ࣮ߦͬͯԿ͕ҧ͏ͷʁ • ࣮ػʹΠϯετʔϧ͞ΕΔΞϓϦ .ipa (iOS Package Archive) ͱ͍͏ϑΝΠϧܗࣜ

    <App>.ipa/Payload/<App>.app/embedded.mobileprovision ʹϓϩϏδϣχϯάϓϩϑΝΠϧ͕ଘࡏ͢Δ • γϛϡϨʔλͰ࣮ߦ͞ΕΔΞϓϦ .app ͱ͍͏ܗࣜ (ͨͩͷϑΥϧμܗࣜ) .ipa ʹؚ·ΕΔ Payload/<App>.app ͱܗࣜ͸ಉ͕ͩ͡ɺγϛϡϨʔλ࣮ߦ޲͚ ʹ࡞੒͞Εͨ .app όϯυϧʹ͸ embedded.mobileprovision ͸ଘࡏ͠ͳ͍ 
  8. 1VMM3FRVFTUͷ಺༰ΛΫϦοΫͰಈ࡞֬ೝՄೳʹ͢ΔϫʔΫϑϩʔʛBUTVZBO TophatΛ׆༻͢Δ • ෳ਺σόΠεΛબ୒ͯ͠ಉ࣌ʹΠϯετʔϧͰ͖ΔͷͰɺαΠζ ҧ͍ͷ୺຤ͷݟͨ໨ΛνΣοΫͨ͠Γ͢Δͷʹศར • AdHocϏϧυͨ͠ .ipa Λ༻ҙ͢Ε͹࣮ػ޲͚ͷΠϯετʔϧ΋ ಉ͡Α͏ʹ1ΫϦοΫͰՄೳ

    • Tophat v2ͰArtifact Providerͷ࢓૊Έ͕Ͱ͖ͨ • Bitrise Extensionsͷαϙʔτ͕ެࣜͰ͞Ε͍ͯΔ BitriseΛCIʹ࢖ͬͯΔ৔߹͸BitriseͷPATΛTophatʹ ೖΕΔ͚ͩͰಋೖͰ͖Δʂ  🎩 K Tophatͱͯ΋ศར