Невозможно прочитать iOS Crash Log - это символ?

Символизирует ли этот журнал аварий iOS? Оно было получено из обзора бета-приложений, поэтому не использовало автоматическую символику, но я импортировал его в журналы сбоев устройства, которые, по словам Apple, будут использовать файл dsym для символизации.

Если это так, то как мне это интерпретировать и где проблема? Он не падает ни на одном из моих устройств или симуляторов, ни на наших внутренних тестерах...

Apple заявила, что вылетает при запуске и при нажатии кнопки на домашнем экране, чтобы начать.

Date/Time:           2018-04-04 08:46:45.5260 -0700
Launch Time:         2018-04-04 08:46:42.5743 -0700
OS Version:          iPhone OS 11.2.6 (15D100)
Baseband Version:    6.30.04
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

Last Exception Backtrace:
0   CoreFoundation                  0x18502b164 __exceptionPreprocess + 124
1   libobjc.A.dylib                 0x184274528 objc_exception_throw + 55
2   UIKit                           0x18f22cfdc -[UIPopoverPresentationController presentationTransitionWillBegin] + 2775
3   UIKit                           0x18e933b84 __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 2247
4   UIKit                           0x18e931648 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 467
5   UIKit                           0x18e853aa8 _runAfterCACommitDeferredBlocks + 291
6   UIKit                           0x18e846e5c _cleanUpAfterCAFlushAndRunDeferredBlocks + 287
7   UIKit                           0x18e5d8464 _afterCACommitHandler + 131
8   CoreFoundation                  0x184fd2cdc __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 31
9   CoreFoundation                  0x184fd0694 __CFRunLoopDoObservers + 411
10  CoreFoundation                  0x184fd0c50 __CFRunLoopRun + 1291
11  CoreFoundation                  0x184ef0c58 CFRunLoopRunSpecific + 435
12  GraphicsServices                0x186d9cf84 GSEventRunModal + 99
13  UIKit                           0x18e6495c4 UIApplicationMain + 235
14  FriendlyEats                    0x1003c196c 0x1003bc000 + 22892
15  libdyld.dylib                   0x184a1056c start + 3


Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x0000000184b402e8 __pthread_kill + 8
1   libsystem_pthread.dylib         0x0000000184c552f8 pthread_kill$VARIANT$mp + 396
2   libsystem_c.dylib               0x0000000184aaefbc abort + 140
3   libc++abi.dylib                 0x000000018424b068 __cxa_bad_cast + 0
4   libc++abi.dylib                 0x000000018424b210 default_unexpected_handler+ 8720 () + 0
5   libobjc.A.dylib                 0x0000000184274810 _objc_terminate+ 34832 () + 124
6   libc++abi.dylib                 0x000000018426354c std::__terminate(void (*)+ 107852 ()) + 16
7   libc++abi.dylib                 0x0000000184263158 __cxa_rethrow + 144
8   libobjc.A.dylib                 0x00000001842746e8 objc_exception_rethrow + 44
9   CoreFoundation                  0x0000000184ef0cc4 CFRunLoopRunSpecific + 544
10  GraphicsServices                0x0000000186d9cf84 GSEventRunModal + 100
11  UIKit                           0x000000018e6495c4 UIApplicationMain + 236
12  FriendlyEats                    0x00000001003c196c 0x1003bc000 + 22892
13  libdyld.dylib                   0x0000000184a1056c start + 4

Файл для домашнего экрана (в отчете Apple говорится, что он завис при запуске приложения и нажатии кнопки на домашнем экране, которая появляется из этого файла).

import UIKit


class HomeViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate  {

    var image = UIImage()

    @IBAction func unwindToThisHomeController(_ segue: UIStoryboardSegue) {
    }


    @IBOutlet weak var backgroundButton: UIButton!

    @IBAction func startButton(_ sender: Any) {
        startButtonTapped()
    }

    let imagePicker = UIImagePickerController()

    func startButtonTapped(){
        let alertController = UIAlertController(title: nil, message: "Select from where you would like to import your landscape photo.", preferredStyle: .actionSheet)

        let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { action in
            // ...
        }
        alertController.addAction(cancelAction)

        let OKAction = UIAlertAction(title: "Photo Library", style: .default) { action in
            self.imagePicker.allowsEditing = false
            self.imagePicker.sourceType = .photoLibrary
            self.imagePicker.delegate = self;

            self.present(self.imagePicker, animated: true, completion: nil)        }
        alertController.addAction(OKAction)

        let destroyAction = UIAlertAction(title: "Camera", style: .default) { action in
//            print(action)
            self.imagePicker.allowsEditing = false
            self.imagePicker.sourceType = .camera
            self.imagePicker.delegate = self;

            self.present(self.imagePicker, animated: true, completion: nil)
        }
        alertController.addAction(destroyAction)

        self.present(alertController, animated: true) {
        // ...
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
        backgroundImage.image = UIImage(named: "background.jpg")
        backgroundImage.contentMode = UIViewContentMode.scaleAspectFill
        self.view.backgroundColor = UIColor.black
        backgroundImage.alpha = 0.4
        self.view.insertSubview(backgroundImage, at: 0)

        imagePicker.delegate = self


        backgroundButton.layer.cornerRadius = 15
    }




    //MARK: image picker delegate method

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

        if let img = info[UIImagePickerControllerEditedImage] as? UIImage
        {
            self.image = img
        }
        else if let img = info[UIImagePickerControllerOriginalImage] as? UIImage
        {
            self.image = img
        }


        picker.dismiss(animated: true,completion: {self.performSegue(withIdentifier: "ImageLoaded",
                                                                      sender: self)})

    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "ImageLoaded" {
            if let navController = segue.destination as? UINavigationController {
                if let destinationController = navController.topViewController as? LandscapeDesignViewController {
                    destinationController.backgroundImageHolder.image = self.image
                }
                else {
                    print("inner failure")
                }
            }
            else {
                print("failed")
                print(segue.destination)
            }
        }

    }


    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        dismiss(animated: true, completion: nil)
    }



}

0 ответов

Другие вопросы по тегам