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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
takasfz
February 24, 2024
Programming
0
1.5k
Flutterアプリを GitHub Actions & Xcode Cloud で社内配布する / Distribute Flutter apps internally
takasfz
February 24, 2024
Tweet
Share
More Decks by takasfz
See All by takasfz
Android with Functional Programming
takasfz
0
89
もっと! Alternative Resources / More About Alternative Resources
takasfz
5
1.3k
Instant Apps で考える広告の可能性 / InstantApps and Ads
takasfz
1
250
Other Decks in Programming
See All in Programming
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
130
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
150
Understanding Apache Lucene - More than just full-text search
spinscale
0
140
Claude Code Skill入門
mayahoney
0
410
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
570
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
150
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
610
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
150
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.6k
SourceGeneratorのマーカー属性問題について
htkym
0
210
へんな働き方
yusukebe
5
2.8k
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
290
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
980
Code Review Best Practice
trishagee
74
20k
Building an army of robots
kneath
306
46k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Odyssey Design
rkendrick25
PRO
2
550
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
270
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
570
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
180
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の 面 倒な証明書管理から解放された • アプリのアップデートが端末に 自 動で配信されるようになった • アプリエンジニアが不在のときでもリリースできるようになった