We are using Firebase Crashlytics to report any crashes in our iOS app. Recently, we started seeing an error with the following description:
Crashed: com.apple.root.utility-qos.cooperative
0 ArcGIS 0x358ffc specialized URLRequestBuildable.makeURLRequest() + 16324 (<compiler-generated>:16324)
1 ArcGIS 0x359948 CoreRequest.urlRequest.getter + 188 (CoreRequest.swift:188)
2 ArcGIS 0x359dc4 protocol witness for CoreRequestProtocol.urlRequest.getter in conformance CoreRequest + 19852 (<compiler-generated>:19852)
3 ArcGIS 0x357b58 CoreRequestProtocol.send() + 56 (CoreRequest.swift:56)
We are wondering if you have some idea what could be happening?, apparently there is an error related to ArcGIS library with: specialized URLRequestBuildable.makeURLRequest().
Information about our app:
Thanks for reporting this issue. Would it be possible for you to tell which ArcGIS Online portal item, or what is the URL of the online resource that causes this problem?
We have encountered a similar issue with URL encoding in the past, so it would be helpful to see if that is the case here. Thanks!
Hello @Ting, thanks for your response.
Unfortunately, we don't have any more information about the portal item or the URL. All the information we have is the error description I showed you earlier.
Have you encountered this issue before? Do you have any idea which ArcGIS functionality could be causing this problem? So we can research on our app the root of the error.
Yes, the previous issue was with percent-encoding for URL. For instance, when this feature layer https://www.arcgis.com/home/item.html?id=f7a011555feb423397601a47a56665d8#data is shown in a popup, and the popup has external URLs that have special characters (e.g., "+"), it causes the URL request to fail due to invalid conversion. Sometimes the special characters in a URL are already encoded like %28, %29 -> ( ), and sometimes it is a mix. Which means there might be edge cases that we haven't covered in the API.
It would be helpful to see what exact URL is causing this problem and reason about whether the data needs to be fixed or we should handle a different edge case.
We use URLComponents from Apple behind the scenes.