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
DeployGateを無料で使いたかった
Search
harutiro
September 29, 2025
Technology
0
24
DeployGateを無料で使いたかった
harutiro
September 29, 2025
Tweet
Share
More Decks by harutiro
See All by harutiro
モバイルエンジニアもCodeRabbitを使ってレビューを少し楽しよう!
harutiro
0
160
プログラマーのGoogle検索および、生成AIを用いたエラー解決方法
harutiro
0
69
「DroidKaigi2024」 スピーカー体験記
harutiro
0
99
[初心者向けGitHub勉強会資料(VScode版)]How To GitHub In VSCode
harutiro
0
190
モバイル開発をする上での利点とは? Webとの違いを考えてみる
harutiro
0
38
SwiftUIでProfileアプリを作ろう
harutiro
0
41
安物サーマルプリンターとAndroidを使って遊んでみる
harutiro
0
87
stmn.LT会.ぱぱっとモバイルでセンサー処理をしてみる
harutiro
0
32
[DroidKaigi2024] 電池寿命を考えた位置情報の監視方法を考える(Geofence)
harutiro
0
210
Other Decks in Technology
See All in Technology
Data Hubグループ 紹介資料
sansan33
PRO
0
2.2k
Railsの話をしよう
yahonda
0
160
それでも私が品質保証プロセスを作り続ける理由 #テストラジオ / Why I still continue to create QA process
pineapplecandy
0
110
ガバメントクラウド(AWS)へのデータ移行戦略の立て方【虎の巻】 / 20251011 Mitsutosi Matsuo
shift_evolve
PRO
2
200
これがLambdaレス時代のChatOpsだ!実例で学ぶAmazon Q Developerカスタムアクション活用法
iwamot
PRO
8
1.1k
業務効率化をさらに加速させる、ノーコードツールとStep Functionsのハイブリッド化
smt7174
2
140
スタートアップにおけるこれからの「データ整備」
shomaekawa
2
490
プロダクトのコードから見るGoによるデザインパターンの実践 #go_night_talk
bengo4com
1
2.6k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3k
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
110
セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう! / Let's build an OAuth protected remote MCP server based on AWS managed services
kaminashi
3
340
PHPからはじめるコンピュータアーキテクチャ / From Scripts to Silicon: A Journey Through the Layers of Computing Hiroshima 2025 Edition
tomzoh
0
140
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
Site-Speed That Sticks
csswizardry
13
900
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
33
2.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Context Engineering - Making Every Token Count
addyosmani
7
260
The Cult of Friendly URLs
andyhume
79
6.6k
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のような無料のサービスは構築できなかった • 簡単に構築公開ができる、配布サービスを探し中 • そもそも、この需要が特殊すぎて開発されない