Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Flutterアプリを GitHub Actions & Xcode Cloud で社内配布す...
Search
takasfz
February 24, 2024
Programming
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Flutterアプリを GitHub Actions & Xcode Cloud で社内配布する / Distribute Flutter apps internally
takasfz
February 24, 2024
More Decks by takasfz
See All by takasfz
Android with Functional Programming
takasfz
0
95
もっと! Alternative Resources / More About Alternative Resources
takasfz
5
1.3k
Instant Apps で考える広告の可能性 / InstantApps and Ads
takasfz
1
260
Other Decks in Programming
See All in Programming
Cloudflare is Agents
chimame
0
170
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
220
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
830
今さら聞けない .NET CLI
htkym
0
200
AIが無かった頃の素敵な出会いの話
codmoninc
1
470
Building a Meta Ray-Ban display app
akkeylab
0
170
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
580
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
110
仕様駆動開発の消費期限
watany
20
8.8k
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
230
AIを紡ぐPMのお話
swdtkuy
0
120
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.6k
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
480
Believing is Seeing
oripsolob
1
190
Done Done
chrislema
186
16k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
640
Mind Mapping
helmedeiros
PRO
1
320
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
210
It's Worth the Effort
3n
188
29k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Between Models and Reality
mayunak
4
400
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
420
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
Transcript
Flutterアプリを GitHub Actions & Xcode Cloud で社内配布する たかつ @takasfz 沖縄モバイルアプリ開発勉強会
#2 2024/02/24
これまでは… • テスト 用 には Firebase App Distribution、リリース時には各ストアに、 それぞれ 手
作業でビルドしてアップロードしていた • モバイルアプリエンジニアは 自 分ひとり(稼働は週1 日 ) • リリース頻度は数ヶ 月 に 一 度 • テストはリリース前にざっと確認するのみ
自 動化したい 手 作業でも回ってはいるが、めんどい…
iOSの証明書管理が途端に 面 倒 自 動化しようとすると
GitHub Actions & Xcode Cloud そこで
開発環境 PR Merge GitHub GitHub Actions Xcode Cloud Google Play
Console 内部テスト TestFlight Android Device iOS Device
本番環境(リリース前テスト) tag GitHub GitHub Actions Xcode Cloud Google Play Console
内部テスト TestFlight Android Device iOS Device
ストア申請 tag GitHub GitHub Actions Xcode Cloud Google Play Console
内部テスト TestFlight Android Device iOS Device Google Play Console 製品版 App Store Connect プロモート 審査に提出
メリット • Xcode Cloud + Automatically manage signing で、 iOSの証明書管理から解放された!
• Play Console 内部テスト / TestFlight は、 アプリのアップデートが端末に 自 動配信される! • 社内配布したバイナリを、そのまま申請版にプロモートできる! Webからぽちぽちするだけなので、アプリエンジニアが不在のときでも 大 丈夫!
Flutterアプリを配布するためのコツ この構成で
Androidアプリのバージョンコードを 自 動採番する • Google Play Console 内部テストにアプリをアップロードする際は、 バージョンコードを現在配信中のアプリより 大
きい値にする必要がある • fl utter build appbundle --build-number=$(git rev-list --count HEAD) でバージョンコードに総コミット数を採 用 した
iOSアプリの署名を Xcode Cloud に任せる • fl utter build ipa コマンドを使うと
iOSアプリの署名まで 行 おうとしてしまい、うまくいかない • fl utter build ipa --no-codesign で署名なしビルドを 行 い、 署名は Xcode Cloud の xcodebuild コマンドに任せるとうまくいった • 発表後追記: fl utter build ios --con fi g-only --no-codesign のほうが Flutter と Xcode Cloud で xcodebuild の実 行 が重複しなくて良さそう
まとめ
まとめ • GitHub Actions と Xcode Cloud を使ってアプリの社内配布を 自 動化した
• iOSの 面 倒な証明書管理から解放された • アプリのアップデートが端末に 自 動で配信されるようになった • アプリエンジニアが不在のときでもリリースできるようになった