CLLocationManager monitoredRegions, вызывающий сбои на iOS 12 - PullRequest
0 голосов
/ 21 ноября 2018

Мы используем CLLocationManager monitoredRegions в нашем коде с помощью функции

public func getMonitoredRegions() -> Set<CLRegion> {
        return locationManager.monitoredRegions
    }

И мы используем эту функцию таким образом

for region in locationManager.getMonitoredRegions() where condition(region) {
   ...
}

Мы заметили, что наше приложение падает при вызове CLLocationManagermonitoredRegions со следующим журналом Crashlytics:

#12. Crashed: our.queue.name.here
EXC_BAD_ACCESS KERN_PROTECTION_FAILURE 0x000000016aecffe0

0  libsystem_malloc.dylib         0x191d9bfb4 nanov2_malloc$VARIANT$armv81 + 138
1  libsystem_malloc.dylib         0x191d9c540 nanov2_calloc$VARIANT$armv81 + 136
2  libsystem_malloc.dylib         0x191da9b74 malloc_zone_calloc + 140
3  libsystem_malloc.dylib         0x191daa3fc calloc + 40
4  libobjc.A.dylib                0x1913ac554 class_createInstance + 72
5  libdispatch.dylib              0x191c05ad8 _os_object_alloc_realized + 40
6  libdispatch.dylib              0x191bd9594 <redacted> + 108
7  libdispatch.dylib              0x191bd78ac <redacted> + 1164
8  libdispatch.dylib              0x191bd7ab4 <redacted> + 56
9  libxpc.dylib                   0x191e1eeb4 xpc_connection_send_message_with_reply_sync + 204
10 Foundation                     0x192d8fa28 <redacted> + 12
11 Foundation                     0x192b574dc <redacted> + 3632
12 Foundation                     0x192b86eac <redacted> + 144
13 Foundation                     0x192d95a28 <redacted> + 72
14 CoreLocation                   0x1990cfee8 CLClientCreateIso6709Notation + 53660
15 CoreLocation                   0x19907d98c CLClientRetrieveLocationWithDynamicAccuracyReductionAndAlteredAccessoryLocations + 3712
16 CoreLocation                   0x19908cda8 CLClientStopVehicleHeadingUpdates + 53876
17 OurCustomLib                   0x108e2220c $S18OurCustomLib019LocationManagerCoreD0CAA0dE0A2aDP19getMonitoredRegionsShySo8CLRegionCSo8NSObjectCSH10ObjectiveCg_GyFTWTm + 56

или

#13. Crashed: our.queue.name.here
EXC_BAD_ACCESS KERN_PROTECTION_FAILURE 0x000000016fc93fe0
0  libsystem_malloc.dylib         0x18d659fb0 nanov2_allocate$VARIANT$armv81 + 138
1  libsystem_malloc.dylib         0x18d65a53c nanov2_calloc$VARIANT$armv81 + 136
2  libsystem_malloc.dylib         0x18d667b70 malloc_zone_calloc + 140
3  libsystem_malloc.dylib         0x18d6683f8 calloc + 40
4  libobjc.A.dylib                0x18cc68554 class_createInstance + 72
5  libdispatch.dylib              0x18d4c3ad8 _os_object_alloc_realized + 40
6  libdispatch.dylib              0x18d497594 dispatch_mach_msg_create$VARIANT$armv81 + 108
7  libdispatch.dylib              0x18d4958c8 _dispatch_mach_send_and_wait_for_reply + 1164
8  libdispatch.dylib              0x18d495ad0 dispatch_mach_send_with_result_and_wait_for_reply$VARIANT$armv81 + 56
9  libxpc.dylib                   0x18d6dceb4 xpc_connection_send_message_with_reply_sync + 204
10 Foundation                     0x18e64cc28 __NSXPCCONNECTION_IS_WAITING_FOR_A_SYNCHRONOUS_REPLY__ + 12
11 Foundation                     0x18e41477c -[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:] + 3632
12 Foundation                     0x18e44414c -[NSXPCConnection _sendSelector:withProxy:arg1:arg2:arg3:] + 144
13 Foundation                     0x18e652c28 _NSXPCDistantObjectSimpleMessageSend3 + 72
14 CoreLocation                   0x194955f18 CLClientCreateIso6709Notation + 53660
15 CoreLocation                   0x194903a38 CLClientRetrieveLocationWithDynamicAccuracyReductionAndAlteredAccessoryLocations + 3712
16 CoreLocation                   0x194912e54 CLClientStopVehicleHeadingUpdates + 53876
17 OurCustomLib                   0x108e2220c $S18OurCustomLib019LocationManagerCoreD0CAA0dE0A2aDP19getMonitoredRegionsShySo8CLRegionCSo8NSObjectCSH10ObjectiveCg_GyFTWTm + 56

Код находится внутри Framework, и Framework используется приложением.

Код Frameworkесть в Swift 4.0.Все устройства, имеющие этот сбой, работают на iOS 12.

Кто-нибудь еще испытывает проблемы при использовании CLLocationManager monitoredRegions на iOS 12?

Пожалуйста, сообщите

...