How to obtain crash logs from users running iOS 9

2019-02-27 22:16发布

While we used to be able to obtain crash logs when users sync'd with iTunes Connect at ~/Library/Logs/CrashReporter/MobileDevice/, now most users don't do this. Thus, the new process for obtaining crash logs on iOS9 is outlined here by Apple.

Specifically:

  1. Open Settings app
  2. Go to Privacy, then Diagnostics & Usage
  3. Select Diagnostics & Usage Data
  4. Locate the log for the crashed app. The logs will be named in the format:
  5. Select the desired log. Then, using the text selection UI select the entire text of the log. Once the text is selected, tap Copy
  6. Paste the copied text to Mail and send to an email address as desired

However, this is what most my users end up sending to me, below. I see nothing useful pertaining to a stack:

{"bug_type":"179","os_version":"iPhone OS 9.2 (13C75)"}
{
"scheduled" : true,
"machine_config" : "iPhone7,1",
"log_version" : 2,
"region_format" : "US",
"os_version" : "iPhone OS 9.2 (13C75)",
"language" : "en-US",
"sessions_data" : [
{
"app_arch" : "arm-64bit",
"app_build_version" : "0018",
"app_version" : "5.0001",
"app_adamid" : 00000000,
"app_sessionreporter_key" : "FFFFFFFF-1C4B-40E5-B631-BF9AE48B775D",
"app_storefront" : 143441,
"app_bundleid" : "com.myapp",
"app_events" : [
{
"date" : "2015-12-29T07:21:17-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 390
},
{
"date" : "2015-12-29T07:28:46-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 2
},
{
"date" : "2015-12-29T07:52:30-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 8
},
{
"date" : "2015-12-29T09:11:23-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 29
},
{
"date" : "2015-12-29T09:45:41-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 830
},
{
"date" : "2015-12-29T10:13:13-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 227
},
{
"date" : "2015-12-29T12:15:17-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 228
},
{
"date" : "2015-12-29T12:20:55-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 439
},
{
"date" : "2015-12-29T13:33:47-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 59
},
{
"date" : "2015-12-29T14:51:18-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 128
},
{
"date" : "2015-12-29T15:19:31-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 428
},
{
"date" : "2015-12-29T15:31:50-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 93
}
],
"app_is_beta" : false,
"slice_uuid" : "98293BB1-C91D-386F-825E-771AB68D9BE4",
"app_cohort" : "3|date=1310628600000&sf=143441"
},
{
"app_arch" : "arm-64bit",
"app_build_version" : "18972819",
"app_version" : "46.0",
"app_adamid" : 284882215,
"app_sessionreporter_key" : "B5155ABF-327F-4CCE-AEFB-8C733DC6EC96",
"app_storefront" : 143441,
"app_bundleid" : "com.facebook.Facebook",
"app_events" : [
{
"date" : "2015-12-29T10:00:55-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 473
}
],
"app_is_beta" : false,
"slice_uuid" : "F5D785A1-9DAF-32F7-A6DB-9738AF007735",
"app_cohort" : "3|date=1254358800000&sf=143441"
},
{
"app_arch" : "arm-64bit",
"app_build_version" : "20150927.114236",
"app_version" : "7.1.1",
"app_adamid" : 329670577,
"app_sessionreporter_key" : "D69640D5-7389-4148-B3DF-2093F1C486A4",
"app_storefront" : 143441,
"app_bundleid" : "com.taptaptap.CameraPlus",
"app_events" : [
{
"date" : "2015-12-29T15:04:40-0800",
"state" : "foregroundRunning",
"type" : "app_session",
"duration" : 685
}
],
"app_is_beta" : false,
"slice_uuid" : "327F314B-C34D-3015-A41C-0DB1374A0095",
"app_cohort" : "3|date=1301902200000&sf=143441"
}
],
"log_timestamp" : "2015-12-29T15:48:31-0800"

Does the process described on Apple's website above actually work? If so, any speculation on why all my users are able to provide is the truncated form below? And if not, what is the process by which I may obtain on-device crash logs from my users that does not involve trying to get them to install XCode?

2条回答
ら.Afraid
2楼-- · 2019-02-27 22:37

Have you ever try Crashlytics yet? It send crash log automatically and report call stack for you and other useful details.

1) Install library using your Podfile

# Crashlytics
pod 'Fabric'
pod 'Crashlytics'

2) Import in AppDelegate

Objective C

#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>

Swift

import Fabric
import Crashlytics

3) Initial crashlytics in didFinishLaunchingWithOptions

Objective C

[Fabric with:@[[Crashlytics class]]];

Swift

Fabric.with([Crashlytics.self])
查看更多
ゆ 、 Hurt°
3楼-- · 2019-02-27 22:50

For Mac Users:

  1. Open Finder (found in the Dock)
  2. Click on the 'Go' menu at the top of your screen, and select 'Go to Folder'
  3. Type (or paste): ~/Library/Logs/CrashReporter/MobileDevice/
  4. Open the folder with the same 'name' as your device. (Note: your device name appears in iTunes on the left side, under 'Devices').
  5. Select Relevant Logs

Courtesy link: https://help.getpocket.com/customer/portal/articles/500338-how-to-find-the-iphone-ipad-app-crash-logs

查看更多
登录 后发表回答