Crashes with iOS SDK Over The Air CustomBundle.swift and

Hello,

since we are using the Over the air tool for our iOS apps using the iOS Crowdin SKD we were suffering for crashes in an early access in the app.

Is there any issue open related to those crashes?

The crashes happens a lot and the logs points to the CustomBundle.swift and the LocalizationDataSource.swift.
Here are some logs related:

CustomBundle.swift crash

rashed: NSOperationQueue 0x101d5b2b0 (QOS: UNSPECIFIED)
0  CrowdinSDK                     0x22b28 specialized FolderBundle.init(path:) + 33 (CustomBundle.swift:33)
1  CrowdinSDK                     0x22ec8 specialized DictionaryBundle.init(path:fileName:dictionary:) + 4381142728 (CustomBundle.swift:4381142728)
2  CrowdinSDK                     0x3e6f0 LocalizationProvider.setupPluralsBundle() + 4381255408 (LocalizationProvider.swift:4381255408)
3  CrowdinSDK                     0x3e2a0 LocalizationProvider.setupPlurals() + 143 (LocalizationProvider.swift:143)
4  CrowdinSDK                     0x3f344 specialized LocalizationProvider.setup(with:strings:plurals:) + 136 (LocalizationProvider.swift:136)
5  CrowdinSDK                     0x3e11c closure #1 in LocalizationProvider.fetchRemoteLocalization(completion:) + 4381253916 (<compiler-generated>:4381253916)
6  CrowdinSDK                     0x3de1c thunk for @escaping @callee_guaranteed (@guaranteed [String]?, @guaranteed String, @guaranteed [String : String]?, @guaranteed [AnyHashable : Any]?) -> () + 4381253148 (<compiler-generated>:4381253148)
7  CrowdinSDK                     0x31d20 thunk for @escaping @callee_unowned @convention(block) (@unowned NSArray?, @unowned NSString, @unowned NSDictionary?, @unowned NSDictionary?) -> () + 4381203744 (<compiler-generated>:4381203744)
8  CrowdinSDK                     0x12278 closure #1 in CrowdinRemoteLocalizationStorage.fetchData(completion:errorHandler:) + 78 (CrowdinRemoteLocalizationStorage.swift:78)
9  CrowdinSDK                     0xcee4 closure #1 in CrowdinLocalizationDownloader.download(strings:plurals:xliffs:jsons:with:timestamp:for:) + 52 (CrowdinLocalizationDownloader.swift:52)
10 CrowdinSDK                     0x16194 thunk for @escaping @callee_guaranteed () -> () + 4381090196 (<compiler-generated>:4381090196)
11 Foundation                     0x51c1c __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 24
12 Foundation                     0x63f94 -[NSBlockOperation main] + 104
13 Foundation                     0x3c214 __NSOPERATION_IS_INVOKING_MAIN__ + 24
14 Foundation                     0x4d5dc -[NSOperation start] + 788
15 Foundation                     0x50c68 __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 24
16 Foundation                     0x5ee10 __NSOQSchedule_f + 184
17 libdispatch.dylib              0x12830 _dispatch_block_async_invoke2 + 148
18 libdispatch.dylib              0x3a30 _dispatch_client_callout + 20
19 libdispatch.dylib              0x6eec _dispatch_continuation_pop + 500
20 libdispatch.dylib              0x6558 _dispatch_async_redirect_invoke + 584
21 libdispatch.dylib              0x15164 _dispatch_root_queue_drain + 396
22 libdispatch.dylib              0x1596c _dispatch_worker_thread2 + 164
23 libsystem_pthread.dylib        0x1080 _pthread_wqthread + 228
24 libsystem_pthread.dylib        0xe5c start_wqthread + 8

LocalizationDataSource.swift crash

Crashed: NSOperationQueue 0x1027073d0 (QOS: UNSPECIFIED)
0  libobjc.A.dylib                0x3110 objc_release + 16
1  libswiftCore.dylib             0x38f0dc swift_arrayDestroy + 124
2  libswiftCore.dylib             0xc8438 _DictionaryStorage.deinit + 624
3  libswiftCore.dylib             0xc8460 _DictionaryStorage.__deallocating_deinit + 16
4  libswiftCore.dylib             0x39c424 _swift_release_dealloc + 56
5  CrowdinSDK                     0x3c394 PluralsLocalizationDataSource.__deallocating_deinit + 48 (LocalizationDataSource.swift:48)
6  libswiftCore.dylib             0x39c424 _swift_release_dealloc + 56
7  CrowdinSDK                     0x3e874 LocalizationProvider.setupStrings() + 4382910580 (LocalizationProvider.swift:4382910580)
8  CrowdinSDK                     0x3f340 specialized LocalizationProvider.setup(with:strings:plurals:) + 135 (LocalizationProvider.swift:135)
9  CrowdinSDK                     0x3e11c closure #1 in LocalizationProvider.fetchRemoteLocalization(completion:) + 4382908700 (<compiler-generated>:4382908700)
10 CrowdinSDK                     0x3de1c thunk for @escaping @callee_guaranteed (@guaranteed [String]?, @guaranteed String, @guaranteed [String : String]?, @guaranteed [AnyHashable : Any]?) -> () + 4382907932 (<compiler-generated>:4382907932)
11 CrowdinSDK                     0x31d20 thunk for @escaping @callee_unowned @convention(block) (@unowned NSArray?, @unowned NSString, @unowned NSDictionary?, @unowned NSDictionary?) -> () + 4382858528 (<compiler-generated>:4382858528)
12 CrowdinSDK                     0x12278 closure #1 in CrowdinRemoteLocalizationStorage.fetchData(completion:errorHandler:) + 78 (CrowdinRemoteLocalizationStorage.swift:78)
13 CrowdinSDK                     0xcee4 closure #1 in CrowdinLocalizationDownloader.download(strings:plurals:xliffs:jsons:with:timestamp:for:) + 52 (CrowdinLocalizationDownloader.swift:52)
14 CrowdinSDK                     0x16194 thunk for @escaping @callee_guaranteed () -> () + 4382744980 (<compiler-generated>:4382744980)
15 Foundation                     0x50a9c __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 24
16 Foundation                     0x62e14 -[NSBlockOperation main] + 104
17 Foundation                     0x3b1c4 __NSOPERATION_IS_INVOKING_MAIN__ + 24
18 Foundation                     0x4c4e0 -[NSOperation start] + 788
19 Foundation                     0x4fae8 __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 24
20 Foundation                     0x5dc90 __NSOQSchedule_f + 184
21 libdispatch.dylib              0x12830 _dispatch_block_async_invoke2 + 148
22 libdispatch.dylib              0x3a2c _dispatch_client_callout + 20
23 libdispatch.dylib              0x6eec _dispatch_continuation_pop + 500
24 libdispatch.dylib              0x65f0 _dispatch_async_redirect_invoke + 740
25 libdispatch.dylib              0x15164 _dispatch_root_queue_drain + 396
26 libdispatch.dylib              0x1596c _dispatch_worker_thread2 + 164
27 libsystem_pthread.dylib        0x1080 _pthread_wqthread + 228
28 libsystem_pthread.dylib        0xe5c start_wqthread + 8

Hi, it’s strange, mine SDK works well. Did you follow this guide step by step?

Did this crash started after you change something? Or they started just after you set up the SDK?

The crash happens since we set the SDK and enabled the OTA feature.

Hello @sunwebgroup @robert.rodriguez

Can you provide me with the project id or name? I’d like to check some logs and settings from my side.

Thanks in advance.

By the way, can you try to reproduce this crash with our sample project?

Hello,
The project id
ID: 446422

1 Like

Hello all, just wondering if this a common issue. I’m also plan to set up iOS SDK, did tests and it works nice with sample project that is shared here.

Now will try with mine, hope it also will work :sweat_smile::partying_face:

The sad thing is that the crash not happens always, we have the crash in our monitoring system we have never been able to reproduce it.

We are considering to disable the Over the air feature for our projects due to the number of crashes in our customers, while we try to identify the problem.

Would you have some time to investigate the possible reason for this crash? Maybe it is somehow related to specific settings you may use? Please message me directly or continue this tread as well. Any additional details on which I can build my internal tests would be greatly appreciated.

Hello Dima,
we will try to look in depth by the end to this week. I will keep you posted.
Thanks in advance

1 Like

Sure, take your time. You can continue this topic or message me directly.