$30 off During Our Annual Pro Sale. View Details »
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
0
1.4k
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
87
もっと! Alternative Resources / More About Alternative Resources
takasfz
5
1.3k
Instant Apps で考える広告の可能性 / InstantApps and Ads
takasfz
1
240
Other Decks in Programming
See All in Programming
クラウドに依存しないS3を使った開発術
simesaba80
0
170
Navigating Dependency Injection with Metro
l2hyunwoo
1
190
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
160
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
240
Vibe codingでおすすめの言語と開発手法
uyuki234
0
130
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
110
開発に寄りそう自動テストの実現
goyoki
2
1.5k
愛される翻訳の秘訣
kishikawakatsumi
3
350
マスタデータ問題、マイクロサービスでどう解くか
kts
0
140
Python札幌 LT資料
t3tra
7
1.1k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
190
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.1k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
210
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
0
960
What's in a price? How to price your products and services
michaelherold
246
13k
Making Projects Easy
brettharned
120
6.5k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.3k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
130
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
78
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.4k
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の 面 倒な証明書管理から解放された • アプリのアップデートが端末に 自 動で配信されるようになった • アプリエンジニアが不在のときでもリリースできるようになった