2016-10-20 6 views
0

디버그 모드에서 아무 문제없이 내 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 

어떤 아이디어는 많은 디버그 및 릴리스 사이의 다른 설정에 대한

+0

충돌 로그를 symblicate해야하지만 강제 다운 캐스트가 실패하고 코드가 닫혀있는 것처럼 보입니다. 'let data = result? .getCurrentPage()를! [이미지]'는 문제의 후보자처럼 보입니다. – Paulw11

+0

@ Paulw11 plz 더 설명 할 수 있을까요? 유선 후보라면이 줄은 내가 조언 할 수있는 모든 것을 조언 할 수있다. –

+0

'result.getCurrentPage()'*가 이미지 배열을 반환하지 않으면 앱이 다운된다. 방어해야합니다. 'if let data = result? .getCurrentPage()를?로 사용 하시겠습니까? [이미지]'그리고 데이터가 검색되지 않거나 이미지 배열이 아닌 경우를 처리합니다. – Paulw11

답변

0

확인을 이해할 수있을 것이다. 최적화를 해제하면 코드를 디버그 할 수 있습니다. 코드를 수정하는 로깅 문이나 어설 션이 있는지 확인하십시오.

+0

어떻게하면 디버깅과 릴리스 사이에 다른 회의를 확인할 수 있습니까? + 최적화를 끄는 방법? –