Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How to get mobile app logs using Firebase Crash...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
asmz
May 23, 2019
Technology
950
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How to get mobile app logs using Firebase Crashlytics
もっとユーザのことを知りたい!モバイルアプリでのエラーログ取得
Talked at タガヤス #11
asmz
May 23, 2019
More Decks by asmz
See All by asmz
Maestro MCPとClaude Code Skillsによる自律的なE2Eテスト支援
asmz
0
130
Firebase App Testing Agentで始めるAIベースの柔軟なE2Eテスト
asmz
0
1.7k
モバイルアプリ開発へE2Eテストを導入しよう
asmz
0
370
React Native+Expoで始めるWebフロント開発
asmz
0
880
UIデザインを考える全ての人たちに捧げる Apple Human Interface Guidelinesのススメ
asmz
1
3k
Overview of Swift and iOS App development
asmz
0
1.4k
OK Google, Deploy the iOS app
asmz
1
1.1k
Cooperate with Adobe XD, Zeplin and Xcode
asmz
1
3.2k
phpconsen LT
asmz
0
870
Other Decks in Technology
See All in Technology
AI駆動開発における開発環境のセキュリティの考え方
yamahiro
2
620
AI時代、つくる力を自分たちの手に。 ──電通×KAG、アジャイルとAI駆動開発で挑む開発の変革
yuukiyo
3
390
CSS2026:OWS研究会・招待講演「世界観を、実装する」
atsush1_sada
2
340
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
190
野良MCPサーバーを排除せよ!MCPサーバーのガバナンス
yukiogawa
1
240
QAエンジニアがSoutherを使ってみたの〜10分でわかるSouther〜
mhlyc
0
120
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
110
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
320
freeeにおけるSoftware Factory
freee
PRO
0
530
How we choose session proposals
kawaguti
PRO
0
170
「Learning Outcome」を書きたくない私が、Learning Outcomeと折り合いをつけるまで
mhlyc
0
240
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
300
Featured
See All Featured
Designing for Performance
lara
612
70k
Amusing Abliteration
ianozsvald
1
360
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
360
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Un-Boring Meetings
codingconduct
0
460
How to Talk to Developers About Accessibility
jct
2
590
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
540
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Ruling the World: When Life Gets Gamed
codingconduct
0
420
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
Transcript
もっとユーザのことを知りたい! モバイルアプリでのエラーログ取得 2019/05/23 タガヤス #11 Akira Shimizu / asmz 1
2 誰なのか? • Akira Shimizu / asmz (@_asmz) • https://asmz.beer/
• 株式会社ビデオマーケット 仙台オフィス • iOSエンジニア • 個人開発:IT勉強会検索アプリ「EVENTech」 ◦ https://eventech.asmz.beer/
3 エラーログはどこで取る?
4 Webサービスの場合、ログの多くはサーバサイドで 取得 • ログが取りやすい • 蓄積が可能 • 一元管理・検索がしや すい
• ログの引き上げ手 段が必要 • 不特定多数 • 蓄積量に制限
5 ただし、クライアントサイドに問題がある場合、ログが 取れない • 通信処理自体の問題 • 意図せぬクラッシュ
6 アプリでもエラーログを 取りたい!
7 自前で実装しようと思うと... • 最終的にはデータをサーバへ送信する必要がある ◦ 通信が発生する →大容量、高頻度のデータ送信は難しい ◦ 通信状況は常に変化する →送信失敗時のリトライ検討
→送信できなかった場合のバッファリング検討 考慮すべき点が多く、案外簡単じゃない
8 Firebase Crashlyticsを 用いたエラーログ取得
9 Firebaseとは • Google社が提供してい る、主にモバイル向けの バックエンドサービス群 (BaaS)
10 Firebase Crashlyticsとは • モバイルアプリのクラッシュレポートツール SDK導入すると、アプリクラッシュを検知して 自動でレポートを上げてくれる
11 Firebase Crashlyticsとは • 導入が容易 ◦ 基本的には各プラットフォームのライブラリ導入手順に沿う だけ(iOS: CocoaPods /
Android: Gradle) ◦ ログのバッファリングやリトライ処理などの実装が不要 ◦ 自動集計され、コンソール画面でレポート管理 でも、ログが上がるのはクラッシュした時だけ...?
12 クラッシュ以外のエラーログ取得 • 任意のタイミングでログ送信が可能 // エラーオブジェクト作成 let error = NSError(
domain: "CustomErrorDomain", code: 999, userInfo: ["message": "エラーです"] ) // Crashlyticsへログ送信 Crashlytics.sharedInstance().recordError(error)
13 クラッシュ以外のエラーログ取得 クラッシュ:Fatal(重大) クラッシュ以外:Non-Fatal(非重大) としてログが上がるようになる
14 もっと詳しくユーザの 行動を知りたい!
15 カスタムログメッセージの追加 • エラーに対する補足 情報を付加すること が可能 SDK App Custom Logs
Crash Logs (Auto/Manual)
16 カスタムログメッセージの追加 Analyticsイベント カスタムログ どういう操作・行動を 経てエラーに至った のかを確認すること が可能!
17 カスタムログメッセージの追加 • ソース内任意の箇所でログ記録 • POINT ◦ ログ記録しただけではCrashlyticsには上がらない ▪ Fatal
/ Non-Fatalエラー発生時に一緒に上がる ◦ カスタムログサイズ上限は64KB CLSLogv("%@", getVaList([string]))
18 カスタムログメッセージの追加 • 主な使いどころ ◦ アプリ内画面遷移ログ記録 ◦ App内課金など重要な処理の経緯ログ記録 ◦ カメラやセンサーなど各種デバイスの操作ログ記録
サーバサイドと重複しない観点で
19 まとめ
20 まとめ • クライアントサイドのログが欲しい場面がある • アプリでのログ機構の実装は案外コストが高い • Firebase Crashlyticsを利用すると便利 ログ収集や導入のコストを下げ、
その分、そのログを「どう活かすか」に注力
21 PR
22 公式動画配信サービス MIRAIL(ミレール) • 映像作品コンテンツホルダーが直接動画販売・配信すること ができるプラットフォーム https://mirail.video/
23 Google I/O 報告会 in 仙台 • Google社開催の世界的技術カンファレンス「Google I/O」参加者による報告会 ◦
2019/05/25(土) 10:00 〜 16:00 ◦ 仙都会館(宮城県仙台市青葉区中央2-2-10)
24 Enjoy Logging! 2019/05/23 タガヤス #11 Akira Shimizu /
asmz