Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DeployGateを無料で使いたかった
Search
harutiro
September 29, 2025
Technology
0
32
DeployGateを無料で使いたかった
harutiro
September 29, 2025
Tweet
Share
More Decks by harutiro
See All by harutiro
モバイルエンジニアもCodeRabbitを使ってレビューを少し楽しよう!
harutiro
0
180
プログラマーのGoogle検索および、生成AIを用いたエラー解決方法
harutiro
0
75
「DroidKaigi2024」 スピーカー体験記
harutiro
0
100
[初心者向けGitHub勉強会資料(VScode版)]How To GitHub In VSCode
harutiro
0
230
モバイル開発をする上での利点とは? Webとの違いを考えてみる
harutiro
0
42
SwiftUIでProfileアプリを作ろう
harutiro
0
45
安物サーマルプリンターとAndroidを使って遊んでみる
harutiro
0
110
stmn.LT会.ぱぱっとモバイルでセンサー処理をしてみる
harutiro
0
35
[DroidKaigi2024] 電池寿命を考えた位置情報の監視方法を考える(Geofence)
harutiro
0
230
Other Decks in Technology
See All in Technology
たかが特別な時間の終わり / It's Only the End of Special Time
watany
16
3.2k
AI駆動開発によるDDDの実践
dip_tech
PRO
0
300
.NET 10 のパフォーマンス改善
nenonaninu
2
4.8k
freeeにおけるファンクションを超えた一気通貫でのAI活用
jaxx2104
3
1.1k
AI時代の開発フローとともに気を付けたいこと
kkamegawa
0
550
How native lazy objects will change Doctrine and Symfony forever
beberlei
1
390
私のRails開発環境
yahonda
0
180
Symfony AI in Action
el_stoffel
2
370
なぜフロントエンド技術を追うのか?なぜカンファレンスに参加するのか?
sakito
9
2k
AI活用によるPRレビュー改善の歩み ― 社内全体に広がる学びと実践
lycorptech_jp
PRO
1
110
タグ付きユニオン型を便利に使うテクニックとその注意点
uhyo
2
680
MCP・A2A概要 〜Google Cloudで構築するなら〜
shukob
0
160
Featured
See All Featured
A designer walks into a library…
pauljervisheath
210
24k
Being A Developer After 40
akosma
91
590k
It's Worth the Effort
3n
187
29k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
The Cult of Friendly URLs
andyhume
79
6.7k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Code Review Best Practice
trishagee
73
19k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Done Done
chrislema
186
16k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
69k
Transcript
DeployGateみたいなサービスを 無料で使いたかった I wanted to use a service like DeployGate
for free. mobile.stmn #13 牧野遥斗(はるちろ)
自己紹介 名前 出身 趣味 特技 牧野遥斗(はるちろ) 愛知県 旅行・アニメ・電子工作 絡まったコードを解くこ と
大学 愛知工業大学・情報科学 部
余談:ClaudeCodeめっちゃ便利ですね 調べ作業・まとめ作業・スライドの文書作成を ClaudeCodeに任せて、イラストなどの配置だけ自分が行う形
目次 1. アプリを配布したい背景 2. デプロイ・テストでのアプリ配布方法 3. DeployGateに似たサービスを無料で構築してみる
アプリを配布したい 背景 01
研究室やサークルでのアプリ制作について 同人誌サークルでの レシート印刷アプリ 研究室ないのUWB データの取得アプリ 個人でアプリを制作して、仲間内に公開する場合がある
配布するのが少しめんどくさい場合も 一番最初に思いつく配布方法は GooglePlayStoreの内部テスト
配布がめんどくさい原因 申請タスクが多い • 特にリリースしないのにアプリの詳 しい説明を書かないといけない • ディープな権限を使用していると別 途申請をしないといけない
もっと簡単に公開ができるツールは? めっちゃ便利 • 簡単に公開ができる • 設定項目が少ない • アプリ更新がわかりやすい配布 アプリもある DeployGate
学生には手が出にくい料金 • 無料プランではアプリが 2つしか出せない • 配布人数は3人まで • 次のプランは月額16500円
今回のテストの要件 簡単に配布作業を行いたい • お金をかけず に、デプロイをしたい • リリース作業はapkファイルをポンと上げる だけにした い •
リリース内容を詳しく申請したくない • 配布方法がアプリで完結 にできる
社内ストアの要件とは全く違う 今回の要件とは全く違う 大体の社内ストアの要件 • 外部に公開されない • 自動でアプリが更新できる • 100台以上の端末の管理 •
情報リテラシーが高くない人も扱う
社内ストアのおすすめ おそらく企業で使いたい内容はこちら • Android ◦ managed Google Playを持ちいる (Google Workspace)
◦ 独自でアプリのダウンロード、インストールを実装 • iOS ◦ カスタムアプリ・非表示アプリで対応
デプロイ・テストで のアプリ配布方法 02
iOSの場合の要件 iOS アプリの配布方法 (yosuga) : https://zenn.dev/yusuga/articles/9e9b632e0338b2
[テスト環境] iOS テスト配布の全体像 配布方法の分類 Apple公式 • TestFlight 内部テスト - 最大100人、審査不要
• TestFlight 外部テスト - 最大10,000人、審査必要 Ad Hocベース(100台制限) • 手動Ad Hoc配布 - 直接配布 • DeployGate - UDID自動収集 • Firebase App Distribution - 管理自動化
[テスト環境] iOS TestFlight 詳細 項目 内部テスト 外部テスト 対象者 チームメンバー 一般ユーザー
人数制限 100人 10,000人 Apple審査 不要 必要 有効期限 90日 90日 内部テストと外部テストの違い
[本番環境] Ad Hoc配布の詳しい内容 重要な制約 • 年間100台までのデバイス登録制限 • UDIDの事前登録が必要 • Provisioning
Profile更新が必要 DeployGate/Firebaseの実態 両サービスともAd Hoc配布がベース → 100台制限は変わらない → 管理を自動化しているだけ
[本番環境] iOSの配布方法一覧 方法 対象 Apple審査 App Store 一般消費者 必要 カスタムアプリ
企業・教育機関 必要 非表示アプリ 限定配布 必要 InHouse配布 社内のみ(新規不可) 不要
iOSの場合のまとめ • 大体の要件はTestFlight・AppStoreの公開で解決する (Apple Developper Programに課金をする) • Appleの配布フローから逸脱することは難しい • 逸脱する場合は、企業版のアカウントを発行して、
InHouseで公開する
Androidの場合の要件
[テスト環境] Google Play Console (Internal Testing) 特徴 • Googleが提供する公式のベータテスト配布 •
内部テスト用トラック機能 手順 1. Google Play Consoleにプロジェクトを作成 2. APK/AABファイルをアップロード 3. 内部テスト用トラックを作成 4. テスターのメールアドレスを追加 5. Play Storeのテストリンクを共有
[テスト環境] Firebase App Distribution 特徴 • Firebaseエコシステムとの統合 • 自動メール通知機能 手順
1. Firebase プロジェクトでApp Distributionを有効化 2. APKファイルをアップロード 3. テスターグループを作成 4. 自動メール通知でダウンロードリンクを配信
[テスト環境] F-Droid テスト配布 特徴 • 完全オープンソース • プライバシー重視(トラッキングなし) • 独自リポジトリ作成可能
配布方法 • 独自リポジトリ - 完全な制御 • 公式F-Droid - レビュー必要
[テスト環境] F-Droid テスト配布 注意点 • オープンソースであるライブラリしか 使用ができない Firebase、Google Mobile Serviceは❌
• URLがばれれば誰にでもダウンロード ができてしまう
[本番環境] Android 本番デプロイ ストア 対象 特徴 Google Play Store 一般消費者
標準的な配布方法 Managed Google Play 企業・教育機関 プライベート配布 Amazon Appstore Amazon端末 Kindle対応 F-Droid オープンソース 完全無料・審査なし
[本番環境] Managed Google Play 詳細 特徴 • 企業専用のプライベートアプリストア • Android
Enterprise環境で動作 • EMM/MDMツールとの統合 メリット • 組織内限定配布(一般公開されない) • IT管理者による承認フロー • 一括ライセンス管理 • サイレントインストール対応 参考文献:https://support.google.com/work/android/answer/7042221?hl=JA
Androidの場合のまとめ • 基本的にはGooglePlayStoreのテスト環境・配布方 法を使うといい。 しかし、手続きが少々めんどくさい。 • お金がかけれるなら、DeployGate。 かけれない場合は色々頑張る必要がある。
DeployGateに似たサービス を無料で構築してみる 03
改めてのテストの要件 身内のテストの場合はもう少し簡単にやりたい • お金をかけずに、デプロイをしたい • リリース作業はapkファイルをポンと上げるだけにしたい • リリース内容を詳しく申請したくない • 配布方法がアプリで完結にできる
改めてのテストの要件 • Google Play Store ◦ 位置情報を常にもらうような特殊権限があると、 内部テストであっても審査が入る ◦ 細かい記述がめんどくさい
• DeployGate ◦ 2アプリ以上公開するときはお金がかかる • Firebase ◦ 特にFirebase使わないのにFirebaseのセットアップ がめんどくさい 無料のDeployGateみたいなサービスが欲しい
そもそも無料のサービスはあるのか? クラウドサービスの場合は 基本有料プランにしないと欲しい機能はない... 🤔
そもそも無料のサービスはあるのか? クラウドサービスの場合は 基本有料プランにしないと欲しい機能はない... オンプレで・オープンソースの もので対応すればいい!
家のMacminiサーバー エンジニアなら、誰しも持っている自宅サーバーを 使用してデプロイをやっちゃおう
今回の本題 オンプレのPlayStoreを構築して、 テストアプリの配布、デプロイを簡単にしよう!
今回の本題 オンプレのPlayStoreを構築して、 テストアプリの配布、デプロイを簡単にしよう! できませんでした。 😢
[テスト環境] F-Droid テスト配布 特徴 • 完全オープンソース • プライバシー重視(トラッキングなし) • 独自リポジトリ作成可能
配布方法 • 独自リポジトリ - 完全な制御 • 公式F-Droid - レビュー必要
[テスト環境] F-Droid テスト配布 注意点 • オープンソースであるライブラリしか 使用ができない Firebase、Google Mobile Serviceは❌
• URLがばれれば誰にでもダウンロード ができてしまう
F-Droidの配布方法 • F-Droid公式リポジトリ ◦ 完全オープンソース(GPL、MIT等) ◦ トラッキング・広告なし • サードパーティーリポジトリ ◦
公式より審査などがゆるい ◦ 少々データの安全性が不安 • 独自リポジトリ ◦ fdroidserver(CLI)かRepomaker(GUI)を持ちいる ◦ 完全にオリジナルで作れる
Repomakerを用いて公開をしてみる Repomaker F-Droid クライアント ユーザーの 元へ Repomakerは Dockerなどを用いて構築
Repomakerを用いて公開をしてみる Repomaker F-Droid クライアント ユーザーの 元へ Repomakerは Dockerなどを用いて構築 Repomakerは 使えなかった...
Repomakerできなかった理由 • 更新スピードが明らかに遅い • 提示された方法ではどのやり方でもうまくいかなかった
fdroidseverを用いて公開をしてみる fdroidserver F-Droid クライアント ユーザーの 元へ Fdroidserverは Aptなどで インストール nginx
Nginxで httpを用いた 外部公開
fdroidseverを用いて公開をしてみる fdroidserver F-Droid クライアント ユーザーの 元へ Fdroidserverは Aptなどで インストール nginx
Nginxで httpを用いた 外部公開 かなりめんどくさい
fdroidserverがめんどくさい理由 • アプリを更新・作成する時にいちいち サーバーにアクセスする必要がある ◦ scpコピーなどでファイルを既定の場所に打ち上げる ◦ `fdroid update` `fdroid
deploy`をしないといけない ◦ そもそもGuiじゃない
実際のfdroidserverの様子 https://fdroid.harutiro.net/fdroid/repo/ Fdroidserverでファイル構成を自動で作成してくれて、 そのファイルをそのままnginxでhttpレスポンスで ダウンロードできるようになっている ファイル構成
スマホ側の様子 リポジトリ一覧、 追加 アプリインストール
まとめ • DeployGateのような無料のサービスは構築できなかった • 簡単に構築公開ができる、配布サービスを探し中 • そもそも、この需要が特殊すぎて開発されない