我的应用程序在我的设备上完美运行,但苹果报告我应用程序在启动时崩溃,他们提供了一个崩溃日志,这是一个不可读的形式,我已尝试象征它但不能。如果有人帮我解决这个问题,我将非常感激。
{"app_name":"ApplicationName","timestamp":"2017-11-19 17:17:40.98 -0800","app_version":"1.0","slice_uuid":"119ebd01-6d77-30c1-bd7e-e247c4f549b4","adam_id":1312796230,"build_version":"1.0","bundleID":"Logicunit.AnalyzeQuran","share_with_app_devs":false,"is_first_party":false,"bug_type":"109","os_version":"iPhone OS 11.1.2 (15B202)","incident_id":"DFC7AEE6-1BD7-45AC-B192-45B93C179CA3","name":"AnalyzeQuranIOS"}
Incident Identifier: DFC7AEE6-1BD7-45AC-B192-45B93C179CA3
CrashReporter Key: 357841d912f2df927b24861ec18fb870765ae9bd
Hardware Model: xxx1
Process: ApplicationName [857]
Path: /private/var/containers/Bundle/Application/595A5C4D-0E0E-462D-88FD-38BF3399A298/ApplicationName.app/ApplicationName
Identifier: Logicunit.ApplicationName
Version: 1.0 (1.0)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: ApplicationName [765]
Date/Time: 2017-11-19 17:17:40.9170 -0800
Launch Time: 2017-11-19 17:17:40.8317 -0800
OS Version: iPhone OS 11.1.2 (15B202)
Baseband Version: n/a
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0
Application Specific Information:
abort() called
Filtered syslog:
None found
Thread 0 name: tid_303 Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x0000000184a59348 0x184a38000 + 136008
1 libsystem_pthread.dylib 0x0000000184b6d344 0x184b6a000 + 13124
2 libsystem_c.dylib 0x00000001849c905c 0x184966000 + 405596
3 libsystem_c.dylib 0x00000001849c8fc4 0x184966000 + 405444
4 ApplicationName 0x0000000105758158 0x104e48000 + 9503064
5 ApplicationName 0x0000000105753238 0x104e48000 + 9482808
6 ApplicationName 0x000000010562a990 0x104e48000 + 8268176
7 ApplicationName 0x00000001056759d8 0x104e48000 + 8575448
8 ApplicationName 0x0000000105675554 0x104e48000 + 8574292
9 ApplicationName 0x0000000105758250 0x104e48000 + 9503312
10 ApplicationName 0x000000010575bf1c 0x104e48000 + 9518876
11 ApplicationName 0x0000000104e69e04 0x104e48000 + 138756
12 libdyld.dylib 0x000000018492a56c 0x184929000 + 5484
Thread 1:
0 libsystem_pthread.dylib 0x0000000184b6ac1c 0x184b6a000 + 3100
Thread 2:
0 libsystem_pthread.dylib 0x0000000184b6ac1c 0x184b6a000 + 3100
Thread 3:
0 libsystem_kernel.dylib 0x0000000184a59dbc 0x184a38000 + 138684
1 libsystem_pthread.dylib 0x0000000184b763f8 0x184b6a000 + 50168
2 libdispatch.dylib 0x00000001848cea78 0x1848c4000 + 43640
3 libdispatch.dylib 0x00000001848d0f40 0x1848c4000 + 53056
4 libdispatch.dylib 0x00000001848f2c34 0x1848c4000 + 191540
5 CoreFoundation 0x0000000184ee95e4 0x184e00000 + 955876
6 CoreFoundation 0x0000000184eebad4 0x184e00000 + 965332
7 CoreFoundation 0x0000000184f7551c 0x184e00000 + 1529116
8 CoreFoundation 0x0000000184eebad4 0x184e00000 + 965332
9 CoreFoundation 0x0000000184ee8e8c 0x184e00000 + 953996
10 CoreFoundation 0x0000000184eebad4 0x184e00000 + 965332
11 CoreFoundation 0x0000000184edacac 0x184e00000 + 896172
12 libsystem_pthread.dylib 0x0000000184b6b680 0x184b6a000 + 5760
13 libsystem_pthread.dylib 0x0000000184b6b3d0 0x184b6a000 + 5072
14 libsystem_pthread.dylib 0x0000000184b6bc0c 0x184b6a000 + 7180
15 Foundation 0x0000000185847d98 0x185825000 + 142744
16 Foundation 0x0000000185932874 0x185825000 + 1103988
17 libsystem_pthread.dylib 0x0000000184b6c31c 0x184b6a000 + 8988
18 libsystem_pthread.dylib 0x0000000184b6c1e8 0x184b6a000 + 8680
19 libsystem_pthread.dylib 0x0000000184b6ac28 0x184b6a000 + 3112
Thread 4:
0 libsystem_pthread.dylib 0x0000000184b6ac24 0x184b6a000 + 3108
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000001
x4: 0x0000000000000000 x5: 0x0000000000989680 x6: 0x0000000000000038 x7: 0xffffffffffffffec
x8: 0x0000000008000000 x9: 0x0000000004000000 x10: 0x00000000000003e8 x11: 0x00000001b7875c3c
x12: 0x00000001b7875c3c x13: 0x0000000000000018 x14: 0x0000000000000001 x15: 0x0000000000000881
x16: 0x0000000000000148 x17: 0x0000000000000000 x18: 0x0000000000000000 x19: 0x0000000000000006
x20: 0x00000001b5545b80 x21: 0x0000000105930000 x22: 0x0000000000000303 x23: 0x00000001b5545c60
x24: 0x0000000105b80b73 x25: 0x00000001057aedfb x26: 0x0000000000000000 x27: 0x00000001058b1c90
x28: 0x00000001058b1c70 fp: 0x000000016afb6980 lr: 0x0000000184b6d344
sp: 0x000000016afb6950 pc: 0x0000000184a59348 cpsr: 0x00000000
此应用程序基于Xamarin.iOS平台构建
答案 0 :(得分:2)
根据您在评论中提供的完整崩溃报告,二元图像部分的第一行是:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class JSON_Reader
{
public static void main(String args[])
{
JSONParser parser = new JSONParser();
try
{
String text = new String(Files.readAllBytes(Paths.get("C:\\Users\\arathi.variar\\workspace\\Customizable_Rule_UI\\src\\Rule_File.json")), StandardCharsets.UTF_8);
Object object = parser.parse(text);
//convert Object to JSONObject
JSONObject jsonObject = (JSONObject) object;
//Reading the String
String tech = (String) jsonObject.get("Technology");
String vul = (String) jsonObject.get("Vulnerability");
String sev = (String) jsonObject.get("Severity");
String regex = (String) jsonObject.get("RegEx");
//Printing all the values
System.out.println("Technology: " + tech);
System.out.println("Vulnerability: " + vul);
System.out.println("Severity: " + sev);
System.out.println("RegEx: " + regex);
}
catch(FileNotFoundException fe)
{
fe.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
因此,我们可以看到应用二进制文件的 UUID 为 {
"Angular2": [
{
"Technology": "Angular 2.0",
"Vulnerability": "angular/timeout-service",
"Severity": 1,
"RegEx": "(?=.*(setTimeout))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "angular/interval-service",
"Severity": 1,
"RegEx": "(?=.*(setInterval))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "angular/Deferred",
"Severity": 1,
"RegEx": "(?=.*(\\$q\\.defer|\\$q\\_\\.defer))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "Cross Site Scripting",
"Severity": 1,
"RegEx": "(?=.*(body.*ng-app.*|\\$sceProvider\\.enabled\\(\\s*false\\)))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "angular/Angular Element",
"Severity": 1,
"RegEx": "(?=.*(\\$\\('.*'\\)|jQuery\\('.*'\\)))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "Module Setter",
"Severity": 1,
"RegEx": "(?=.*(var\\s*[a-zA-Z0-9_]+\\s*=\\s*angular.module\\(.*\\)))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "Sensitive Data",
"Severity": 1,
"RegEx": "(?=.*(store\\.set\\())"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "no-cookiestore",
"Severity": 3,
"RegEx": "(?=.*(\\$cookieStore\\s*\\.))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "no-directive-replace",
"Severity": 3,
"RegEx": "(?=.*((replace\\s*\\:\\s*true)|(\\.replace\\s*\\=\\s*true)))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "no-http-callback",
"Severity": 3,
"RegEx": "(?=.*(\\$http\\..*\\.(success|error)))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "defined/undefined",
"Severity": 3,
"RegEx": "(?=.*((value\\s*(\\!|\\=)\\=\\=\\s*undefined)|(\\!angular\\.is(Defined|Undefined))))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "json functions",
"Severity": 3,
"RegEx": "(?=.*(JSON\\.))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "Console Log",
"Severity": 3,
"RegEx": "(?=.*(console\\.))"
},
{
"Technology": "Angular 2.0",
"Vulnerability": "no-angular-mock",
"Severity": 3,
"RegEx": "(?=.*(angular\\.mock))"
}
],
"reactJS": [
{
"Technology": "React JS",
"Vulnerability": "Cross Site Scripting",
"Severity": 1,
"RegEx": "(?=.*(window.\\_\\_PRELOADED\\_STATE\\_\\_\\s*=\\s*\\$\\{JSON.Stringify\\(preloadedState\\)}))"
}
],
"javascript": [
{
"Technology": "JAVA/JAVAScript",
"Vulnerability": "URL Injection",
"Severity": 1,
"RegEx": "(?=.*(Request.QueryString[\"[a-zA-Z]+\"];))"
},
{
"Technology": "JAVA/JAVAScript",
"Vulnerability": "Weak Credentials",
"Severity": 1,
"RegEx": "(?=.*((user(name|id)?|logon(id)?)\\s*=\\s*((\\\"|\\').+(\\\"|\\'))))"
}
]
}
。您必须找到具有相同UUID的匹配dSYM文件。只有找到匹配的dSYM文件时,才能表示不可读的崩溃报告。
<强>解决方案:强>
在终端中使用以下命令在Mac上查找构建应用程序的dSYM:
Binary Images:
0x104e48000 - 0x105847fff AnalyzeQuranIOS arm64 <119ebd016d7730c1bd7ee247c4f549b4> /var/containers/Bundle/Application/595A5C4D-0E0E-462D-88FD-38BF3399A298/AnalyzeQuranIOS.app/AnalyzeQuranIOS
字符串&#34; 12345678-90AB-CDEF-1234-567890ABCDEF&#34;是崩溃报告中重新格式化为大写和8-4-4-4-12组的UUID字符串。
Symobolicate崩溃报告。在符号化之前执行以下行。
119ebd016d7730c1bd7ee247c4f549b4
将您的 mdfind "com_apple_xcode_dsym_uuids == 12345678-90AB-CDEF-1234-567890ABCDEF"
,export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
和.crash
文件放在同一目录中并运行:
.app
Xcode 9.1中.dSYM
工具的路径为:/path/symbolicatecrash /path/mycrash.crash /path/MyAppName.app.dSYM > symbolicatedcrash.crash
,您可以根据Xcode版本进行检查。
<强>更新强>
如果您在通过Xcode导出ipa时启用了 Bitcode ,Apple将重新编译二进制文件并为其创建新的dSYM。您可以从iTunes Connect或Xcode-&gt; Window-&gt; Organizer下载新的dSYM文件,关于此问题,您可以参考此How to solve symbolication problems。
<强>参考:强>