Post not yet marked as solved
As a follow-up to a Networking lab conversation I had on Tuesday I have the following question:
Is there a way to use nscurl to connect to a server that requires client authentication by providing a client certificate? None of the documented options seem to allow that, but maybe there is an undocumented one...
Hi,
I have a log to file function that as part of the logline inserts the current datetime as below:
class func logToFile(message: String, logInfo: LogInfo = appLogInfo, type: OSLogType = .default) {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
formatter.timeZone = TimeZone(secondsFromGMT: TimeZone.current.secondsFromGMT())
formatter.locale = Locale(identifier: "en_US_POSIX")
let localDate = formatter.string(from: Date())
let logMessage = "\(localDate) [\(logInfo.category)] \(message)\n"
let documentDirPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let filePath = "\(documentDirPath)/\(logFileName)"
if let fileHandle = FileHandle.init(forWritingAtPath: filePath), let data = logMessage.data(using: .utf8) {
fileHandle.seekToEndOfFile()
fileHandle.write(data)
}
}
and it is always called from a serial queue:
Log.serialQueue.async {
logToFile(message: message, logInfo: logInfo, type: type)
}
Lately however, I am getting some crashes and I managed to catch one in the debugger. It happens when deallocating the local DateFormatter when exiting the logToFile function.
Xcode stops at the end of the function:
And the thread indicates that it is inside NSDateFormatter dealloc
and clicking on the ici::Dataformat destructor, the assembly code shows this:
And in the inspector, we can see that localDate is half-baked, it only contains the year and day:
I have found some posts on DateFormatter not being thread safe but that was way in the past. In my case I only want to convert a Date() to String.
Something is not working as expected and suggestions on how to improve it would be very welcome.
Thanks in advance
Post not yet marked as solved
I am using the URLSessionDownloadTask to download files and want the ability to pause the downloads. I want to use downloadTask.cancel(byProducingResumeData:) to achieve this and get the partially downloaded data.
I want to get the actual file data from this plist but there is no straightforward way to do this. I see that we have a string with .tmp file extension in the plist (For e.g: CFNetworkDownload_yBD90c.tmp) and want to use that value to construct the path in tmp folder. I have seen in few discussions that the structure of this plist is not a constant and has gone though revisions in the past.
Can I rely on this way to get the actual data from the plist?
Alternatively, can anyone suggest other approach for this? (as I can not use the resume data directly since the request gets modified and this will be rejected by the server due to security reasons)
Post not yet marked as solved
I've been trying to use the Xcode 14 beta and the -warn-concurrency flag to make some of our library code concurrency-safe, and I've hit just… too many problems to manage.
A smattering of random data points:
Foundation types that I think should be Sendable, are not:
URL
Notification
...
UIKit constants that should not be @MainActor, are:
UIApplication.willEnterForegroundNotification (it's just a string constant, and NotificationCenter itself is thread-safe)
UIKit types and methods that I think should not be @MainActor, are:
UIDevice, or at least I should be able to do UIDevice.current.systemVersion from any actor
Dispatch is completely concurrency-unaware — I kinda expected it to be unavailable, but instead it's available but doesn't understand swift concurrency
It'd at least be nice if DispatchQueue.main.[a]sync understood that its closure can be @MainActor (perhaps main could return a subclass of DispatchQueue with stronger guarantees?)
SwiftUI Button etc. callbacks aren't marked @MainActor, even though (AFAIK) they are — certainly it's always been legal to update @State vars from them — so it's not legal to call UIKit from them (eg. to present a UIViewController in response to a button press)
When can we expect Apple's SDKs to actually be usable with concurrency checking?
Post not yet marked as solved
General:
Networking Overview document — Despite the fact that this is in the archive, this is still really useful.
TLS for App Developers DevForums post
Choosing a Network Debugging Tool documentation
Low-Level Networking on watchOS DevForums post
Foundation networking:
DevForums tags: Foundation, CFNetwork
URL Loading System documentation — NSURLSession, or URLSession in Swift, is the recommended API for HTTP[S] on Apple platforms.
Network framework:
DevForums tag: Network
Network framework documentation — Network framework is the recommended API for TCP, UDP, and QUIC on Apple platforms.
Network Extension (including Wi-Fi on iOS):
See Network Extension Resources
Wi-Fi on macOS:
DevForums tag: Core WLAN
Core WLAN framework documentation
Secure networking:
DevForums tags: Security
Apple Platform Security support document
Preventing Insecure Network Connections documentation — This is all about App Transport Security.
Available trusted root certificates for Apple operating systems support article
Requirements for trusted certificates in iOS 13 and macOS 10.15 support article
About upcoming limits on trusted certificates support article
Technote 2232 HTTPS Server Trust Evaluation
Technote 2326 Creating Certificates for TLS Testing
QA1948 HTTPS and Test Servers
Miscellaneous:
More network-related DevForums tags: 5G, QUIC, Bonjour
On FTP DevForums post
Using the Multicast Networking Additional Capability DevForums post
Investigating Network Latency Problems DevForums post
Local Network Privacy FAQ DevForums post
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
Post not yet marked as solved
I'm evaluating switching an application device from windows10 to macOS but one of the key features needed that I'm unsure of is kiosk mode in macOS. Does something like that exist? The application would need to be the only app running (in full screen) and nothing else should show up. Even keyboard shortcuts should be disabled. Is that configuration possible? Is it something to be done in the app program or does it need UWP kind of stuff?
Thanks
Attached is an entire project (4 files) that mirrors my actual project including the failure to save to file.
Am I:
missing some syntax in this code?
failing to config a defaults file?
not set the necessary parameters in " "Build Settings" or "Build Rules etc.?
I was writing to JSON files, but now that I must append to files directly, and JSON doesn't do that easily, I am trying to write using native macOS tools.
WELL, IT SEEMS I CAN'T SEND YOU THE CODE, TOO MANY CHARS. I CAN'T ATTACH ANY FILE EITHER. WHY OFFER IT IF IT IS NOT ALLOWED?
ANYWAY, CAN YOU GLEAN ANYTHING FROM THIS... Thanks.
My debugger area:
2022-05-28 12:03:11.827372-0500 exampleClassInClassSecureCoding[1508:29981] Metal API Validation Enabled
2022-05-28 12:03:11.940123-0500 exampleClassInClassSecureCoding[1508:29981] *** NSForwarding: warning: object 0x600003cf7090 of class 'exampleClassInClassSecureCoding.classOne' does not implement methodSignatureForSelector: -- trouble ahead
Unrecognized selector -[exampleClassInClassSecureCoding.classOne replacementObjectForKeyedArchiver:]
2022-05-28 12:03:11.940416-0500 exampleClassInClassSecureCoding[1508:29981] Unrecognized selector -[exampleClassInClassSecureCoding.classOne replacementObjectForKeyedArchiver:]
Unrecognized selector -[exampleClassInClassSecureCoding.classOne replacementObjectForKeyedArchiver:]
Performing @selector(didPressButton:) from sender _TtC7SwiftUIP33_9FEBA96B0BC70E1682E82D239F242E7319SwiftUIAppKitButton 0x7ff08ab06480
My program is shown in following.
I want to get the dataTask session's error code working in background, but I haven't achieved it.
let config:URLSessionConfiguration = URLSessionConfiguration.background(withIdentifier: "abcd")
self.session = URLSession(configuration: config, delegate: nil, delegateQueue: nil)
let task: URLSessionDataTask = session!.dataTask(with: myRequest as URLRequest)
task.resume()
In the program above, there isn't any parameter with error information, so I rewrite it as following.
But when I run the following program, the exception error happens.
By the way, about the following program, it can be run successfully when URLSession is configured as normal session, but when URLSession is configured as background session as following, the exception error happens when it's run.
Anyone can give me some advice?
Thanks a lot!
let config:URLSessionConfiguration = URLSessionConfiguration.background(withIdentifier: "abcd")
self.session = URLSession(configuration: config, delegate: nil, delegateQueue: nil)
let task: URLSessionDataTask = session!.dataTask(with: myRequest as URLRequest) { (data, response, error) in
if let response = response as? HTTPURLResponse {
NSLog("response.statusCode = \(response.statusCode)")
}
}
task.resume()
Post not yet marked as solved
Hi Apple Team,
I have to do some such functionality in my applications that when application is in background, I have to upload the entire gallery assets of the iphone to a server (if the user has given permission to upload). I have come to a point where my background processing is not running for more than 28-30 seconds. And my process is such that I pick up the asset one by one from the gallery and process it and put it in a single task for uploading to the background thread. All this happens in a loop and photos are uploaded one after the other untill 28-30 seconds(in background). As I have also got my app registered for background processing and also coding is running from all standard process according to apple documentation.
So I have to ask you something about background processing, my questions are as follows:
1: What is the maximum duration for background processing and background uploading? What if I want to increase the duration of background processing in my app?
2: Does Apple extend the background processing time for certain category of apps, if it does, then please mention those categories(Or share some links).
3: As my application is built for a particular organization(they upload their all photos), I need maximum background upload limit, is there any way Apple provides for that? if yes, could you please share sample code base or links.
4: Some applications like Google Photos etc. upload in the background for more than 30 seconds, is there a standard procedure that I can achieve as well?
5: If there is any framework provided by Apple to do this work then please mention it.
Thanks, I am waiting for your kind reply.
I am working on some study in sending the data from iphone to server, and I want to keep the communication even when my program is working on the background mode.
For the details, when my program monitors the beacon' signal with special UUID by Corelocation( in other words, the iphone is taken into the beacon'region), then in Corelocation's handling function, the dataTask of URLSession will be excuted to forward the BLE signal's information to server.
Because the beacon sends the BLE signal periodically and continuously, I think the data will be sent from iphone to sever with my program continuously.
But now, my experiment result is, when I change the application into background:
-sometimes, the dataTask can be kept for several hours or one or two days without any problem
-sometimes, the dataTask will be stopped and after several minutes, it will be restarted automatically (really confusing). And in this case, I find the BLE monitoring program is kept to work, only the dataTask communication has been stopped
I want to know the reason and the dataTask's action condition of the above phenomenon such as keeping or stoping or restarting the communication.
Is there any method to keep the communication between the iphone and server without any interruption?
Thanks a lot!
Post not yet marked as solved
finished with error [-1001] Error Domain=NSURLErrorDomain Code=-1001 “The request timed out.” UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x282fbd800 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 “(null)” UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <7060BA29-10BA-40C9-91AB-DCA082E5F038>.<235>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
“LocalDataTask <7060BA29-10BA-40C9-91AB-DCA082E5F038>.<235>”
),NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=<xyz.com>, NSErrorFailingURLKey=<xyz.com>, _kCFStreamErrorDomainKey=4}
getting this issue in some rare scenario, unable to find solution for this? anyone can help to resolve this?
because of this issue some times app stucks with loader screen and unable to work further.
I just replaced our server url with <xyz.com>.
I have checked with iPad 3rd generation.
Getting crash on user side. not able to reproduce it on our side. Please check the crash log.
Xcode version: 13.2.1 (13C100)
plateform: iOS
Crash Item : Foundation
Issue details : Foundation
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x99288 __exceptionPreprocess
1 libobjc.A.dylib 0x16744 objc_exception_throw
2 Foundation 0x132360 _userInfoForFileAndLine
3 UIKitCore 0x32b3d8 -[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:isFocused:notify:]
4 UIKitCore 0x225308 -[UICollectionView _updateVisibleCellsNow:]
5 UIKitCore 0x179a84 -[UICollectionView layoutSubviews]
6 UIKitCore 0x18bfb4 -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
7 QuartzCore 0x40cd0 CA::Layer::layout_if_needed(CA::Transaction*)
8 UIKitCore 0x1efd90 -[UIView(Hierarchy) layoutBelowIfNeeded]
9 UIKitCore 0x1727e0 +[UIView(Animation) performWithoutAnimation:]
10 UIKitCore 0x286914 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:]
11 UIKitCore 0x483af0 -[UITableView _updateVisibleCellsForRanges:createIfNecessary:]
12 UIKitCore 0x2ab8bc -[UITableView _updateVisibleCellsNow:]
13 UIKitCore 0x17bd10 -[UITableView layoutSubviews]
14 UIKitCore 0x18bfb4 -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
15 QuartzCore 0x40cd0 CA::Layer::layout_if_needed(CA::Transaction*)
16 QuartzCore 0x33134 CA::Layer::layout_and_display_if_needed(CA::Transaction*)
17 QuartzCore 0x47a7c CA::Context::commit_transaction(CA::Transaction*, double, double*)
18 QuartzCore 0x50970 CA::Transaction::commit()
19 UIKitCore 0x18e2d4 ___UIUpdateCycleNotifyIdle_block_invoke
20 libdispatch.dylib 0x1e6c _dispatch_call_block_and_release
21 libdispatch.dylib 0x3a30 _dispatch_client_callout
22 libdispatch.dylib 0x11f48 _dispatch_main_queue_drain
23 libdispatch.dylib 0x11b98 _dispatch_main_queue_callback_4CF
24 CoreFoundation 0x51800 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE
25 CoreFoundation 0xb704 __CFRunLoopRun
26 CoreFoundation 0x1ebc8 CFRunLoopRunSpecific
27 GraphicsServices 0x1374 GSEventRunModal
28 UIKitCore 0x514648 -[UIApplication _run]
29 UIKitCore 0x295d90 UIApplicationMain
30 TCPApp 0xa37b54 main + 39 (AppDelegate.swift:39)
31 ??? 0x104625ce4 (Missing)
Post not yet marked as solved
Im making a program and need to get camera data when pressing a button on my pc of the millisecond it was pressed in unity time in swift time, assuming they are synced up with eachother.
i found that they apparently are about 1 second apart because i was requesting camera data from a specific unix epoch time and it was returning the closest available data about 1000 units later (so about one second difference). How do I sync up my unity clock with my ios clock?
This may be a newbie question, but the following seems very strange to me.
My devices (iPhone, iPad) use Dutch ("nl") as language (Configured with Settings / General / Language & Region / iPhone Language). And similarly Netherlands ("NL") as region.
But if I run the following program:
import SwiftUI
struct ContentView: View {
var body: some View {
Text(Locale.current.description)
Text(Locale.current.languageCode!)
}
}
I get the following output:
en_NL (current)
en
I checked the run settings in Xcode. App Language is set to System Language, and App Region is set to System Region.
It seems to me that I should see
nl_NL (current)
nl
Am I right? Do I misunderstand Locale? Am I missing something else? Thanks!
Post not yet marked as solved
I am using URLSessionConfiguration.background and uploadTask to upload a file from an iOS app.
request.httpMethod = "POST"
request.setValue("application/octect-stream", forHTTPHeaderField: "Content-Type")
let task = uploadURLSession.uploadTask(with: request, fromFile: fileURL)
I'd like to understand how to manage the error handling.
How the http errors 4xx or 5xx are handled by the URLSession.uploadTask?
Post not yet marked as solved
I want to use URLCache to make data (e.g. User, Session, Privileges objects) available when offline. I think it is better to manually saving data in file or UserDefaults because it will fit seamlessly with existing code that load stuff from URLs and without extra code.
One of my concern is this. In URLCache documentation - https://developer.apple.com/documentation/foundation/urlcache, it says:
Note
In iOS, the on-disk cache may be purged when the system runs low on disk space, but only when your app is not running. I don't want my on-disk cache to get purged on low disk space.
I browse around and see URLCache has a new initializer in iOS 13 that accepts a directory url for on-disk cache.
convenience init(memoryCapacity: Int, diskCapacity: Int, directory: URL? = nil)
From my understanding, Caches directory gets purged on low disk space.
From File System Programming Guide - https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html:
In iOS 5.0 and later, the system may delete the Caches directory on rare occasions when the system is very low on disk space. This will never occur while an app is running. However, be aware that restoring from backup is not necessarily the only condition under which the Caches directory can be erased. So, my question is, if I pass a URL that is not a Caches directory URL. Will my on-disk cache survive the low memory purge? If not, is there any other way to achieve it?
Post not yet marked as solved
Code that works w/ any iOS and Xcode 12, and also works w/ Xcode 13.3.1 and iOS15.4 and earlier....does not work with Xcode 13.3.1 and iOS15.
NSPredicate *myButtonPredicate = [NSPredicate predicateWithFormat:@"self.accessibilityLabel = %@",@"My Button"]; if ([arrayOfButtons filteredArrayUsingPredicate:myButtonPredicate].count == 0
I get a SIGABRT w/o any other debug info on the 2nd line of that code sample.
Did something change w/ NSPredicate/NSArray/NSPredicateSupport?
Post marked as Apple Recommended
Dateformatter with "dd-MMM-yyyy" for September month returning date as "01-Sept-2022" for new version of iOS and for old its returning as "01-Sep-2022"
Why its returning 4 character abbreviation even after requested for 3 character
Post not yet marked as solved
I get a lot crash reports with backtraces like the one below. It happens when I set something in user defaults. There are a lot bindings to user default in the app but not necessarily with the key that is set.
I very rarely can reproduce it myself but when I can, it never happens with Zombies enabled. Does anyone has an idea how to debug it.
Thread 0 Crashed:
0 libobjc.A.dylib 0x00007ff8190edab8 0x7ff8190e1000 + 51896
1 Foundation 0x00007ff81a1341a1 _NSKVONotifyingOriginalClassForIsa + 20
2 Foundation 0x00007ff81a1557df _NSKeyValueObservationInfoGetObservances + 262
3 Foundation 0x00007ff81a14df16 -[NSObject(NSKeyValueObservingPrivate) _notifyObserversForKeyPath:change:] + 131
4 AppKit 0x00007ff81bd25cba -[NSController _notifyObserversForKeyPath:change:] + 187
5 AppKit 0x00007ff81bd546ca -[NSController observeValueForKeyPath:ofObject:change:context:] + 824
6 Foundation 0x00007ff81a153c0a NSKeyValueNotifyObserver + 305
7 Foundation 0x00007ff81a2177b5 NSKeyValueDidChange + 411
8 Foundation 0x00007ff81a1467bd -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 739
9 Foundation 0x00007ff81a1554ec -[NSObject(NSKeyValueObservingPrivate) _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:] + 997
10 CoreFoundation 0x00007ff8192e03b3 0x7ff81929a000 + 287667
11 CoreFoundation 0x00007ff81931c235 0x7ff81929a000 + 533045
12 CoreFoundation 0x00007ff81931c0d8 0x7ff81929a000 + 532696
13 CoreFoundation 0x00007ff81931bf4e 0x7ff81929a000 + 532302
14 CoreFoundation 0x00007ff8192e4a3e 0x7ff81929a000 + 305726
15 CoreFoundation 0x00007ff8192d775b 0x7ff81929a000 + 251739
16 CoreFoundation 0x00007ff81931bec2 0x7ff81929a000 + 532162
17 CoreFoundation 0x00007ff8192c8495 0x7ff81929a000 + 189589
18 CoreFoundation 0x00007ff8192c8d11 0x7ff81929a000 + 191761
19 CoreFoundation 0x00007ff819423b6f 0x7ff81929a000 + 1612655
20 CoreFoundation 0x00007ff8193203d0 0x7ff81929a000 + 549840
21 CoreFoundation 0x00007ff819320344 0x7ff81929a000 + 549700
22 Foundation 0x00007ff81a190ba0 -[NSUserDefaults(NSUserDefaults) setObject:forKey:] + 72
AppVariant: 1:iPhone12,3:13
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Date/Time: 2022-04-17 12:26:31.2123 +0800
Launch Time: 2022-04-17 12:26:21.7178 +0800
OS Version: iPhone OS 14.2 (18B92)
Release Type: User
Baseband Version: 2.02.04
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 38
Thread 38 name:
Thread 38 Crashed:
0 libsystem_kernel.dylib 0x00000001b884f414 __pthread_kill + 8
1 libsystem_pthread.dylib 0x00000001d4d67b40 pthread_kill + 272 (pthread.c:1388)
2 libsystem_c.dylib 0x0000000194c74b74 abort + 104 (abort.c:110)
3 libsystem_malloc.dylib 0x000000019acfa49c malloc_vreport + 560 (malloc_printf.c:183)
4 libsystem_malloc.dylib 0x000000019acfa740 malloc_zone_error + 104 (malloc_printf.c:219)
5 libsystem_malloc.dylib 0x000000019acdfab0 szone_free + 464 (magazine_malloc.c:0)
6 CoreFoundation 0x000000018b8ed638 __CFStringDeallocate + 192 (CFString.c:1168)
7 CoreFoundation 0x000000018b8ce104 _CFRelease + 248 (CFRuntime.c:2126)
8 CoreFoundation 0x000000018b82f78c -[__NSArrayI dealloc] + 80 (NSCollectionAux.h:70)
9 CoreFoundation 0x000000018b832e60 -[__NSDictionaryI dealloc] + 156 (NSCollectionAux.h:48)
10 CFNetwork 0x000000018bfc5d18 invocation function for block in __CFURLCache::CreateAndStoreCacheNode(__CFURLCacheNode*, _CFCachedURLResponse const*, __CFString const*, _CFURLRequest const*, void const*, bool, bool&) + 928 (AutoTypes.h:36)
11 libdispatch.dylib 0x000000018b552fb8 _dispatch_block_async_invoke2 + 148 (queue.c:527)
12 libdispatch.dylib 0x000000018b544db0 _dispatch_client_callout + 20 (object.m:559)
13 libdispatch.dylib 0x000000018b54c10c _dispatch_lane_serial_drain + 580 (inline_internal.h:2548)
14 libdispatch.dylib 0x000000018b54cc90 _dispatch_lane_invoke + 460 (queue.c:3862)
15 libdispatch.dylib 0x000000018b556d78 _dispatch_workloop_worker_thread + 708 (queue.c:6601)
16 libsystem_pthread.dylib 0x00000001d4d68804 _pthread_wqthread + 276 (pthread.c:2206)
17 libsystem_pthread.dylib 0x00000001d4d6f75c start_wqthread + 8
Thread 38 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0x0000000000000000 x5: 0x0000000000000000 x6: 0x0000000000000001 x7: 0x0000000000000010
x8: 0x00000000000005b9 x9: 0xcde6b451acd55cca x10: 0xcccccccccccccccd x11: 0x000000000000000a
x12: 0x0000000000000000 x13: 0x0000000000000039 x14: 0x0000000086c24000 x15: 0x00000001eb0d1b80
x16: 0x0000000000000148 x17: 0x000000016ce27000 x18: 0x0000000000000000 x19: 0x0000000000000006
x20: 0x000000000000cd03 x21: 0x000000016ce270e0 x22: 0x000000016ce26400 x23: 0x000000012957c000
x24: 0x0000000000000000 x25: 0x0000000000000000 x26: 0x000000016b36bc8a x27: 0x000000016ce27000
x28: 0x00000002825710a0 fp: 0x000000016ce26310 lr: 0x00000001d4d67b40
sp: 0x000000016ce262f0 pc: 0x00000001b884f414 cpsr: 0x40000000
esr: 0x56000080 Address size fault