디버그 모드에서 아무 문제없이 내 IOS 애플 리케이션 작업, 애플 검토 팀 (IPV6 연결 .... 등) 제출 후 거부되었습니다. 릴리스 모드에 대한 .ipa 파일을 생성 내 애플 리케이션이 있다면 진짜 충돌 문제와 나는 그것이 그들이 언급했던 것에 정말로 부딪치게되는 것을 알았다.IOS 앱 충돌은 출시 모드에서만 발생합니까?
참고 : 그뿐만 아니라 IPV4에
우선이 충돌 디버그 모드에서 발생하지 않는 이유를 알고 싶어 충돌하기 때문에 충돌 문제는 IPV6에 의해 발생되지 ?? 두 번째로 2 일 동안 파기 한 후 지금까지 내 앱 충돌 문제의 주요 원인을 파악하지 못했습니다.
import UIKit
import SDWebImage
class Codingtbl: UITableViewController {
@IBOutlet var imgtbl: UITableView!
var imgarray = [Images]()
let backendless = Backendless()
override func viewDidLoad() {
super.viewDidLoad()
imgtbl.delegate=self
imgtbl.dataSource=self
}
override func viewDidAppear(_ animated: Bool) {
loaddatawithquery()
}
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return imgarray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = self.imgtbl.dequeueReusableCell(withIdentifier: "csmcell") as! csmcell{
let imgurl = URL(string : self.imgarray [(indexPath as NSIndexPath).row].imgurl!)
cell.imgiv.sd_setImage(with: imgurl)
return cell
}else{
let cell = csmcell()
let imgurl = URL(string : self.imgarray [(indexPath as NSIndexPath).row].imgurl!)
cell.imgiv.sd_setImage(with: imgurl)
return cell
}
}
func loaddatawithquery(){
let whereClause = "catogary ='telecom'"
let dataQuery = BackendlessDataQuery()
dataQuery.queryOptions.pageSize=50
dataQuery.whereClause = whereClause
backendless.data.of(Images.ofClass()).find(dataQuery,response: {(result: BackendlessCollection?) -> Void in
let data = result?.getCurrentPage() as! [Images]
for obj in data {
self.imgarray.append(obj)
}
self.imgtbl.reloadData()
},
error: { (fault: Fault?) -> Void in
let alert = UIAlertController(title: "info", message:"Please connect to the internet", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default) { _ in
let viewController = self.storyboard?.instantiateViewController(withIdentifier: "mainmenu") as! Main_Menu
self.navigationController?.pushViewController(viewController, animated: true)
})
self.present(alert, animated: true){}
})
}
}
및 충돌 보고서 :
이
내 코드입니다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: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x000000018d83a014 __pthread_kill + 8
1 libsystem_pthread.dylib 0x000000018d901460 pthread_kill + 112
2 libsystem_c.dylib 0x000000018d7ae3f4 abort + 140
3 libswiftCore.dylib 0x00000001004e7570 swift_deletedMethodError (__hidden#17462_:282)
4 libswiftCore.dylib 0x00000001004ccfdc _hidden#16819_ (__hidden#16861_:392)
5 libswiftCore.dylib 0x00000001004cd06c swift_dynamicCastClass (__hidden#16861_:478)
6 libswiftCore.dylib 0x00000001004cdbd0 swift_dynamicCastUnknownClassUnconditional (__hidden#16793_:49)
7 libswiftCore.dylib 0x00000001004d00a4 _hidden#16825_ (__hidden#16861_:1637)
8 libswiftCore.dylib 0x00000001004cec6c swift_dynamicCast (__hidden#16861_:1676)
9 libswiftCore.dylib 0x00000001004cefb8 swift_dynamicCast (__hidden#16861_:1684)
10 Horizon Wave 0x00000001000ca15c _hidden#659_ (__hidden#722_:0)
11 Horizon Wave 0x00000001000caaf8 _hidden#664_ (__hidden#722_:0)
12 Horizon Wave 0x00000001000cafb4 _hidden#667_ (__hidden#722_:0)
13 Horizon Wave 0x00000001000cb868 _hidden#672_ (__hidden#722_:0)
14 Horizon Wave 0x00000001000f88c4 _hidden#3021_ (__hidden#3052_:302)
15 Horizon Wave 0x00000001000f8364 _hidden#3011_ (__hidden#3052_:208)
16 Horizon Wave 0x00000001000f8388 _hidden#3011_ (__hidden#3052_:214)
17 Horizon Wave 0x00000001000cdbb4 _hidden#1017_ (__hidden#1060_:290)
18 libdispatch.dylib 0x000000018d6f5200 _dispatch_call_block_and_release + 24
19 libdispatch.dylib 0x000000018d6f51c0 _dispatch_client_callout + 16
20 libdispatch.dylib 0x000000018d6f9d6c _dispatch_main_queue_callback_4CF + 1000
21 CoreFoundation 0x000000018e819f2c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
22 CoreFoundation 0x000000018e817b18 __CFRunLoopRun + 1660
23 CoreFoundation 0x000000018e746048 CFRunLoopRunSpecific + 444
24 GraphicsServices 0x00000001901c9198 GSEventRunModal + 180
25 UIKit 0x0000000194720628 -[UIApplication _run] + 684
26 UIKit 0x000000019471b360 UIApplicationMain + 208
27 Horizon Wave 0x00000001000c4768 main (__hidden#180_:12)
28 libdyld.dylib 0x000000018d7285b8 start + 4
업데이트 내가에만
func loaddata2() {
let whereClause = "catogary ='telecom'"
let dataQuery = BackendlessDataQuery()
dataQuery.whereClause = whereClause
var error: Fault?
let bc = Backendless.sharedInstance().data.of(Images.ofClass()).find(dataQuery, fault: &error)
if error == nil {
for obj in bc?.data as! [Images]{
imgarray.append(obj)
print("%%%%%%%%%%%%%%%%%%%\(obj.imgurl!)")
}
self.imgtbl.reloadData()
}
else {
print("Server reported an error: \(error)")
}
에 loaddata 기능과 충돌 보고서가 변경되면 변경 아래 !!
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: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x000000018d83a014 __pthread_kill + 8
1 libsystem_pthread.dylib 0x000000018d901460 pthread_kill + 112
2 libsystem_c.dylib 0x000000018d7ae3f4 abort + 140
3 libswiftCore.dylib 0x000000010045b570 swift_deletedMethodError (__hidden#17462_:282)
4 libswiftCore.dylib 0x0000000100440fdc _hidden#16819_ (__hidden#16861_:392)
5 libswiftCore.dylib 0x000000010044106c swift_dynamicCastClass (__hidden#16861_:478)
6 libswiftCore.dylib 0x0000000100441bd0 swift_dynamicCastUnknownClassUnconditional (__hidden#16793_:49)
7 libswiftCore.dylib 0x00000001004440a4 _hidden#16825_ (__hidden#16861_:1637)
8 libswiftCore.dylib 0x0000000100442c6c swift_dynamicCast (__hidden#16861_:1676)
9 libswiftCore.dylib 0x0000000100442fb8 swift_dynamicCast (__hidden#16861_:1684)
10 Horizon Wave 0x00000001000be1d0 _hidden#661_ (__hidden#728_:0)
11 Horizon Wave 0x00000001000be5fc _hidden#664_ (__hidden#728_:0)
12 Horizon Wave 0x00000001000bd084 _hidden#636_ (__hidden#728_:0)
13 Horizon Wave 0x00000001000bc704 _hidden#625_ (__hidden#728_:0)
14 UIKit 0x00000001946cd2f0 -[UIViewController _setViewAppearState:isAnimating:] + 848
15 UIKit 0x00000001946cd854 -[UIViewController _endAppearanceTransition:] + 220
16 UIKit 0x0000000194785e48 -[UINavigationController navigationTransitionView:didEndTransition:fromView:toView:] + 1236
17 UIKit 0x0000000194856fa8 __49-[UINavigationController _startCustomTransition:]_block_invoke + 232
18 UIKit 0x00000001947dcad4 -[_UIViewControllerTransitionContext completeTransition:] + 116
19 UIKit 0x000000019492cffc __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke.97 + 712
20 UIKit 0x00000001946ee024 -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 492
21 UIKit 0x00000001946edb48 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 312
22 UIKit 0x00000001946ed988 -[UIViewAnimationState animationDidStop:finished:] + 160
23 QuartzCore 0x0000000191b76404 CA::Layer::run_animation_callbacks(void*) + 260
24 libdispatch.dylib 0x000000018d6f51c0 _dispatch_client_callout + 16
25 libdispatch.dylib 0x000000018d6f9d6c _dispatch_main_queue_callback_4CF + 1000
26 CoreFoundation 0x000000018e819f2c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
27 CoreFoundation 0x000000018e817b18 __CFRunLoopRun + 1660
28 CoreFoundation 0x000000018e746048 CFRunLoopRunSpecific + 444
29 GraphicsServices 0x00000001901c9198 GSEventRunModal + 180
30 UIKit 0x0000000194720628 -[UIApplication _run] + 684
31 UIKit 0x000000019471b360 UIApplicationMain + 208
32 Horizon Wave 0x00000001000b7e84 main (__hidden#180_:12)
33 libdyld.dylib 0x000000018d7285b8 start + 4
어떤 아이디어는 많은 디버그 및 릴리스 사이의 다른 설정에 대한
충돌 로그를 symblicate해야하지만 강제 다운 캐스트가 실패하고 코드가 닫혀있는 것처럼 보입니다. 'let data = result? .getCurrentPage()를! [이미지]'는 문제의 후보자처럼 보입니다. – Paulw11
@ Paulw11 plz 더 설명 할 수 있을까요? 유선 후보라면이 줄은 내가 조언 할 수있는 모든 것을 조언 할 수있다. –
'result.getCurrentPage()'*가 이미지 배열을 반환하지 않으면 앱이 다운된다. 방어해야합니다. 'if let data = result? .getCurrentPage()를?로 사용 하시겠습니까? [이미지]'그리고 데이터가 검색되지 않거나 이미지 배열이 아닌 경우를 처리합니다. – Paulw11