I have submitted my App for review, and I am unable to replicate the crash that they are getting. The feedback says "Your app crashed intermittently on iPad running iOS 13.5.1 on WiFi when we were navigating around your app.
We have attached detailed crash logs to help troubleshoot this issue."
Here are the crash logs:
Date/Time: 2020-06-12 17:27:32.8720 -0700
Launch Time: 2020-06-12 16:25:42.0646 -0700
OS Version: iPhone OS 13.5.1 (17F80)
Release Type: User
Baseband Version: n/a
Report Version: 104
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000100a476f8
Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [6054]
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 WayPoint 0x0000000100a476f8 MapViewController.updateMap() + 63224 (MapViewController.swift:321)
1 WayPoint 0x0000000100a47cb4 @objc MapViewController.searchBar(_:textDidChange:) + 64692 (<compiler-generated>:0)
2 UIKitCore 0x00000001c1b91f30 0x1c1a24000 + 1498928
3 UIKitCore 0x00000001c245378c 0x1c1a24000 + 10680204
4 UIKitCore 0x00000001c1e63fc8 0x1c1a24000 + 4456392
5 UIKitCore 0x00000001c1e64320 0x1c1a24000 + 4457248
6 UIKitCore 0x00000001c2738534 0x1c1a24000 + 13714740
7 UIKitCore 0x00000001c271df94 0x1c1a24000 + 13606804
8 UIKitCore 0x00000001c274915c 0x1c1a24000 + 13783388
9 UIKitCore 0x00000001c274b7d0 0x1c1a24000 + 13793232
10 UIKitCore 0x00000001c274c2ac 0x1c1a24000 + 13796012
11 UIKitCore 0x00000001c272166c 0x1c1a24000 + 13620844
12 UIKitCore 0x00000001c273e594 0x1c1a24000 + 13739412
13 UIKitCore 0x00000001c1b9acc8 0x1c1a24000 + 1535176
14 UIKitCore 0x00000001c2277680 0x1c1a24000 + 8730240
15 UIKitCore 0x00000001c22719d4 0x1c1a24000 + 8706516
16 UIKitCore 0x00000001c2270600 0x1c1a24000 + 8701440
17 UIKitCore 0x00000001c22a0568 0x1c1a24000 + 8897896
18 UIKitCore 0x00000001c229ef9c 0x1c1a24000 + 8892316
19 Foundation 0x00000001be795f78 0x1be65f000 + 1273720
20 CoreFoundation 0x00000001be329c18 0x1be281000 + 691224
21 CoreFoundation 0x00000001be329b70 0x1be281000 + 691056
22 CoreFoundation 0x00000001be3292f8 0x1be281000 + 688888
23 CoreFoundation 0x00000001be324328 0x1be281000 + 668456
24 CoreFoundation 0x00000001be323ce8 0x1be281000 + 666856
25 GraphicsServices 0x00000001c846e38c 0x1c846b000 + 13196
26 UIKitCore 0x00000001c2452444 0x1c1a24000 + 10675268
27 WayPoint 0x0000000100a411d8 main + 37336 (ViewController.swift:14)
28 libdyld.dylib 0x00000001be1ab8f0 0x1be1aa000 + 6384
Thread 1 name: com.apple.uikit.eventfetch-thread
Thread 1:
0 libsystem_kernel.dylib 0x00000001be17f198 0x1be17b000 + 16792
1 libsystem_kernel.dylib 0x00000001be17e60c 0x1be17b000 + 13836
2 CoreFoundation 0x00000001be329468 0x1be281000 + 689256
3 CoreFoundation 0x00000001be32449c 0x1be281000 + 668828
4 CoreFoundation 0x00000001be323ce8 0x1be281000 + 666856
5 Foundation 0x00000001be66701c 0x1be65f000 + 32796
6 Foundation 0x00000001be666efc 0x1be65f000 + 32508
7 UIKitCore 0x00000001c24f55dc 0x1c1a24000 + 11343324
8 Foundation 0x00000001be795e20 0x1be65f000 + 1273376
9 libsystem_pthread.dylib 0x00000001be0c1d98 0x1be0b7000 + 44440
10 libsystem_pthread.dylib 0x00000001be0c574c 0x1be0b7000 + 59212
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000102089c00 x1: 0x00000001f809dc3c x2: 0x0000000000000000 x3: 0x00000001be08cd84
x4: 0x0000000282f92000 x5: 0x0000000000000010 x6: 0x000000000000005f x7: 0x0000000000000000
x8: 0x000000010148f000 x9: 0x00000001f809dc3c x10: 0x0000000102931600 x11: 0x007f000102931600
x12: 0x00000001029319c0 x13: 0x00000002095270c0 x14: 0x0000000000000000 x15: 0x000000000000004f
x16: 0x00000002095270c0 x17: 0x00000001be29fd14 x18: 0x0000000000000000 x19: 0x00000000000003c8
x20: 0x00000001019c7ca0 x21: 0x00000001fda87548 x22: 0x0000000102089c00 x23: 0x00000001fda87548
x24: 0x40000001fda87548 x25: 0x0000000000000358 x26: 0x00000001f809f105 x27: 0x0000000101adefb0
x28: 0x0000000280fc95f0 fp: 0x000000016f3c64a0 lr: 0x0000000100a47684
sp: 0x000000016f3c6460 pc: 0x0000000100a476f8 cpsr: 0x60000000
esr: 0xf2000001 Address size fault
Binary Images:
0x100a38000 - 0x10126ffff WayPoint arm64 <f1ced8645a553f72a9ab74ce2eef6f5a> /var/containers/Bundle/Application/08A1E8CF-27BC-48F7-9168-AEE9F1E80DE1/WayPoint.app/WayPoint
0x1015c8000 - 0x1015dbfff FBLPromises arm64 <2776fe10453430d2885b7e7a134a8194> /var/containers/Bundle/Application/08A1E8CF-27BC-48F7-9168-AEE9F1E80DE1/WayPoint.app/Frameworks/FBLPromises.framework/FBLPromises
0x101648000 - 0x101663fff GoogleUtilities arm64 <ac79608dd1a0396c8ae2ea36ab9a208b> /var/containers/Bundle/Application/08A1E8CF-27BC-48F7-9168-AEE9F1E80DE1/WayPoint.app/Frameworks/GoogleUtilities.framework/GoogleUtilities
0x101678000 - 0x101687fff PureLayout arm64 <30c5c49aa9b033c182690a26591a8a0c> /var/containers/Bundle/Application/08A1E8CF-27BC-48F7-9168-AEE9F1E80DE1/WayPoint.app/Frameworks/PureLayout.framework/PureLayout
0x101694000 - 0x10169ffff nanopb arm64 <cf0524b8df6e3443b29665991467bc84> /var/containers/Bundle/Application/08A1E8CF-27BC-48F7-9168-AEE9F1E80DE1/WayPoint.app/Frameworks/nanopb.framework/nanopb
0x10175c000 - 0x101767fff libobjc-trampolines.dylib arm64 <927690b4ce6e3dbb8d54d00bd46e211c> /usr/lib/libobjc-trampolines.dylib
0x101784000 - 0x1017e7fff dyld arm64 <c9d0dd090ebd3364b6b6d3baeb788dbf> /usr/lib/dyld
0x1bdf50000 - 0x1bdf66fff libsystem_trace.dylib arm64 <c70a923b37ad3f8a8e0873a3157620b1> /usr/lib/system/libsystem_trace.dylib
0x1bdf67000 - 0x1bdf98fff libxpc.dylib arm64 <d54676d1b91b309b8f35ed171eff1612> /usr/lib/system/libxpc.dylib
...
0x1f47f3000 - 0x1f482cfff CryptoTokenKit arm64 <372cbaac3f983cdaa76b4ef549ab6782> /System/Library/Frameworks/CryptoTokenKit.framework/CryptoTokenKit
0x1f482d000 - 0x1f4845fff ExposureNotification arm64 <8690d585e715374f81f32cb141ca5913> /System/Library/Frameworks/ExposureNotification.framework/ExposureNotification
0x1f506f000 - 0x1f508dfff AppSSO arm64 <eb1e0057fc123367a346cdce1045d087> /System/Library/PrivateFrameworks/AppSSO.framework/AppSSO
0x1f508e000 - 0x1f50a2fff AppSSOCore arm64 <f2c320f1a8bb334b80decfdad5091d02> /System/Library/PrivateFrameworks/AppSSOCore.framework/AppSSOCore
0x1f54ae000 - 0x1f54b8fff PointerUIServices arm64 <10ec5cd78b4232c798a290e3a51a4385> /System/Library/PrivateFrameworks/PointerUIServices.framework/PointerUIServices
0x1f54b9000 - 0x1f553dfff SafariSharedUI arm64 <44563ecd6ffc38dfb63fa4927ead6de4> /System/Library/PrivateFrameworks/SafariSharedUI.framework/SafariSharedUI
EOF
I figure it is a Memory issue in the SceneDelegate or in the way I push to different view controllers. Can anyone see anything wrong with these functions?
SceneDelegate function:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
GMSPlacesClient.provideAPIKey("AIzaSyAJ97vEitxVOdTg9tcDCRIIqmLuN6KfN80")
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
let nav1 = UINavigationController()
let mainView = ViewController(nibName: nil, bundle: nil) //ViewController = Name of your controller
nav1.viewControllers = [mainView]
self.window!.rootViewController = nav1
window?.makeKeyAndVisible()
}
ViewController Navigation Functions
func buttonPressed() {
if(button.isEnabled) {
// On press - redirect to MapViewController and pass in the mean of latitude and longitude
var sumLat = 0.0
var sumLon = 0.0
for spots in spotList {
sumLat += spots.coordinate.latitude
sumLon += spots.coordinate.longitude
}
let vc = MapViewController()
vc.midLat = sumLat/Double(spotList.count)
vc.midLon = sumLon/Double(spotList.count)
self.navigationController?.pushViewController(vc, animated: true)
}
}
print(self.locations[indexPath.row])
print(self.spotList[indexPath.row])
let vc = DirectionsViewController()
vc.spot = self.spotList[indexPath.row]
self.navigationController?.pushViewController(vc, animated: true)
}
func updateMap() {
mapView.removeAnnotations(mapView.annotations)
mapView.addAnnotation(spot)
mapView.setCenter(spot.coordinate, animated: true)
}