API에 대한 HTTP 요청이있을 때마다 내 앱 사용자 중 한 명에게 충돌이 발생합니다. 이는 충돌 추적입니다.API 호출이 실행될 때 앱이 항상 중단됩니다.
Incident Identifier: 512C99DF-D432-4BAC-96DF-B32561A51C9B
CrashReporter Key: cdee4dd4d00f061439ba8ee6e2fdf4d5a9c4e889
Hardware Model: iPhone5,3
Process: myapp [312]
Path: /private/var/mobile/Containers/Bundle/Application/42EA0E64-28BB-48D0-9CDF-6F58F1823BDF/myapp.app/myapp
Identifier: com.myapp.myapp
Version: 3 (0.1.2)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2017-01-18 21:30:47.47 -0500
Launch Time: 2017-01-18 21:30:41.41 -0500
OS Version: iOS 9.1 (13B143)
Report Version: 105
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0
Filtered syslog:
None found
Last Exception Backtrace:
(0x24dc5856 0x3673adfa 0x24d58bda 0xfe438 0x29188ae8 0x29188c34 0x295ccf7c 0x290b18d8 0x28fda85c 0x28fda68a 0x290b10cc 0x2880a85a 0x2880a6aa 0x2e897586 0x25e85340 0x24d76b54 0x24d88f76 0x24d8868a 0x24d86a9c 0x24cd90d4 0x24cd8ec8 0x2e04eaf4 0x28f622d8 0xa0288 0x36e8886e)
Global Trace Buffer (reverse chronological seconds):
2.392224 CFNetwork 0x00000000245e4a91 TCP Conn 0x15d78310 SSL Handshake DONE
2.598566 CFNetwork 0x00000000245e49cb TCP Conn 0x15d78310 starting SSL negotiation
2.599330 CFNetwork 0x000000002466479d TCP Conn 0x15d78310 complete. fd: 6, err: 0
2.600883 CFNetwork 0x000000002466589f TCP Conn 0x15d78310 event 1. err: 0
3.702969 CFNetwork 0x000000002466591d TCP Conn 0x15d78310 started
3.710171 CFNetwork 0x00000000246a640f Creating default cookie storage with default identifier
3.710171 CFNetwork 0x00000000246a63eb Faulting in CFHTTPCookieStorage singleton
3.710171 CFNetwork 0x00000000246e878b Faulting in NSHTTPCookieStorage singleton
3.714408 CFNetwork 0x000000002463e141 NSURLSessionTask finished with error - code: -1022
4.907331 libsystem_trace.dylib 0x00000000370086f9 dyld_image_header_containing_address(0x15e505e9) failed
그러나이 앱은 다른 모든 사용자에게 적용되며 API 끝점에 완전히 도달 할 수 있습니다. 이것은 즉,이 관련이 있는지 모르고, 또한 React Native
응용 프로그램입니다,하지만 여기에 요청 만드는 코드이다 :이 충돌의 원인이 될 수있는 것을
export default function api(apiName, paramsObj) {
return new Promise((resolve, reject) => {
let ip = 'xxx.xxx.xx.xxx';
fetch(`http://${ip}/api/${apiName}`, {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: paramsObj ? JSON.stringify(paramsObj) : null
})
.then(response => resolve(response.json()))
.catch(error => reject(error));
});
}
어떤 생각? 여기
2 엑스 코드에서 symbolicated 충돌 보고서의 스크린 샷 (응용 프로그램입니다
[{"id":"584b7fe3e1e982176d5a5b3c","name":"My University","unlocked":true,"totalUsers":1200,"minimumUsers":1000}]
편집 :
편집
이는 API의 JSON 응답의 예입니다 이름이 차단됨) :
EDIT 3
추가 테스트 및 디버깅 후 나는 문제가 아니라 가끔 아이폰 5S 실행 8.x를 발생 있다고 판단 어쨌든 다른 질문에 this answer을 보았습니다.이 항목을 응용 프로그램의 진입 점에 추가하면 React Native
개발자 메뉴에서 "Debug JS Remotely"를 클릭하면 실제로 이라는 문제가 해결되었습니다.
const _XHR = GLOBAL.originalXMLHttpRequest ?
GLOBAL.originalXMLHttpRequest :
GLOBAL.XMLHttpRequest
XMLHttpRequest = _XHR
그래서 본질적으로 시뮬레이터 (아이폰 4S, 아이폰 OS 9.3)이 문제가 중지 기본 크롬 반응 디버거에 연결되어 있고 목록 (더 범위를 벗어날 오류)를 채워하지 않습니다이 위의 라인,. 그러나 디버거에서 시뮬레이터의 연결을 끊거나 release
모드로 앱을 실행해도 오류가 계속 발생합니다.
관련 코드도 함께 표시해야합니다. – Raptor
@Raptor 감사합니다! 요청을하는'React Native' 코드를 추가했습니다. –
코드가 정상적으로 보입니다. 그러나 API의 응답은 무엇입니까? 응답이 잘못된 JSON입니까? – Raptor