Post

Replies

Boosts

Views

Activity

Need help with autolayout solution
Views A and B are equal in width (set up via a constraint). The actual width will vary at runtime. What I want to do is arrange view A such that it is horizontally centered on B but offset to the left by 1/10th of the total width. In other words, if views A and B were 100 units in length, I'd want A to be positioned 10 units to the left of B. If the width were 150 units then the A position would be 15 to the left, etc. I thought I could do this with either a leading constraint or a centerX constraint using a multiplier of 0.9, but it isn't working out the way I want. What's the best solution?
1
0
696
Jul ’22
replacingOccurrences(of:,with:) always returns new string?
Do string functions such as "replacingOccurrences" and "trimmingCharacters" always return a new string, even if the old string did not need to be modified? In other words -- if I'm doing a large number of "replacingOccurrences" in my app but only a small number of the strings actually contain the sequence I want to replace, should I check to see if the sequence exists before calling replacingOccurrences, in order to avoid an unnecessary string allocation? I would guess that Swift would return the same string if it didn't require any modifications, but the documentation just says "Returns a new string". Thanks, Frank
1
0
736
Sep ’22
How are referral codes handled today?
Hi, My customer wants to do the thing where an app store URL is advertised which contains a referral code. When a user follows the link, it should take them to the app store to install the app, and then when the app is installed, it should be able to get access to the referral code in the original URL. I know such a thing was possible at one time because I remember talking to some of my colleagues about it, but I have never done it myself and whatever my coworkers did 8 years ago in Objective-C probably doesn't work anymore. Can someone let me know how to do this, or at least, let me know what the correct name for this procedure is so I can look it up? Thanks.
2
0
6.9k
Dec ’22
Auto resize UITextView in table cell
I have a table cell containing a UITextView. The table is using automaticDimension for the cell height and the cell itself is formatted in a way that the UITextView can be a variable height. The intention is that the textview and the cell should reisize as the user types and the text flows into additional lines. If I do nothing else, this doesn't happen. If I add a UITextViewDelegate and call sizeToFit() on the textview whenever the text changes, and then reload the table cell, it does resize, but it does so in an extremely sloppy and unusable way. Specifically, the textview loses focus, the cursor disappears, and the text starts to render in odd ways with overlapping characters or graphics from surrounding elements. What is the correct way to accomplish this? Thanks, Frank
Topic: UI Frameworks SubTopic: UIKit Tags:
0
0
664
Mar ’23
"Encryption is insufficient" message with BLE
I'm working on a BLE app with a hardware partner using samples of their device, which I am able to erase and re-flash when needed. When I try to use the device it initially works fine. I can connect to it, make requests, and get back responses. However, after a short time and a few successful runs, I start getting the error "Encryption is insufficient". The error is seen in the "didUpdateValueFor" function. I can still connect to the device, and enumerate all of its services and characteristics, but I can't read any data. If at this point I re-flash the device and also go into the iOS setting app and "forget" it, then I can use the device normally again, at least for a while. What causes this? Is there a way I can fix it in my app? Thanks, Frank
3
0
2k
Aug ’23
Unable to issue an app identifier or access the Certificates page
I manage several different apps for different customers, who have invited me as a user to their Apple Developer accounts. This week a new customer invited me and I accepted the invitation. If I go to App Store Connect, I can select that customer, view the Users screen and see that he has given me Admin access which is what I requested. However, when I go to developer.apple.com/account, I cannot access the "Certificates, IDs & Profiles" section. In fact, I do not even see the new customer in the pick list underneath my name. This customer is non-technical and needs me to do everything involved with publishing his app, starting with creating the App Store listing and certificates. In App Store Connect I can "Add App" but there are no bundle IDs in the pick list. If I click the link that says "Register a new bundle ID" it takes me to the Certificates page but with a different customer's account selected. Why am I unable to do this given that I have Admin access? Is there some other way I can set up this app? Frank
0
0
559
May ’23
Interpreting crash logs
I often get crash logs where nothing in the stack trace is my code, other than an entry point in main. I don't know how to use these to figure out where the problem is. For example this one, Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Triggered by Thread: 0 Last Exception Backtrace: 0 CoreFoundation 0x1c21cf180 __exceptionPreprocess + 228 (NSException.m:172) 1 libobjc.A.dylib 0x1c13a79f8 objc_exception_throw + 56 (objc-exception.mm:557) 2 UIKitCore 0x1ee572b1c -[UINavigationController pushViewController:transition:forceImmediate:] + 2312 (UINavigationController.m:7317) 3 UIKitCore 0x1ee5720b0 -[UINavigationController pushViewController:animated:] + 664 (UINavigationController.m:7272) 4 UIKitCore 0x1ee62ae9c -[_UIViewControllerTransitionCoordinator _applyBlocks:releaseBlocks:] + 264 (UIViewControllerTransitioning.m:1121) 5 UIKitCore 0x1ee62725c -[_UIViewControllerTransitionContext _runAlongsideCompletions] + 140 (UIViewControllerTransitioning.m:374) 6 UIKitCore 0x1ee626f34 -[_UIViewControllerTransitionContext completeTransition:] + 132 (UIViewControllerTransitioning.m:286) 7 UIKitCore 0x1ee6371f4 __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke.118 + 740 (_UINavigationParallaxTransition.m:393) 8 UIKitCore 0x1ef032d1c -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 752 (UIView.m:12852) 9 UIKitCore 0x1ef009a74 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 312 (UIView.m:0) 10 UIKitCore 0x1ef00a048 -[UIViewAnimationState animationDidStop:finished:] + 296 (UIView.m:2111) 11 UIKitCore 0x1ef00a0e8 -[UIViewAnimationState animationDidStop:finished:] + 456 (UIView.m:2130) 12 QuartzCore 0x1c671f3c8 CA::Layer::run_animation_callbacks(void*) + 284 (CALayer.mm:6680) 13 libdispatch.dylib 0x1c1c0d7d4 _dispatch_client_callout + 16 (object.m:511) 14 libdispatch.dylib 0x1c1bbb008 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1068 (inline_internal.h:2441) 15 CoreFoundation 0x1c2160b20 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1813) 16 CoreFoundation 0x1c215ba58 __CFRunLoopRun + 1924 (CFRunLoop.c:3113) 17 CoreFoundation 0x1c215afb4 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3247) 18 GraphicsServices 0x1c435d79c GSEventRunModal + 104 (GSEvent.c:2245) 19 UIKitCore 0x1eeba7c38 UIApplicationMain + 212 (UIApplication.m:4353) 20 therapeutic-listening 0x100b83380 main + 88 (main.m:16) 21 libdyld.dylib 0x1c1c1e8e0 start + 4 (:-1) Thread 0 name: Thread 0 Crashed: 0 libsystem_kernel.dylib 0x00000001c1d6b0dc __pthread_kill + 8 (:-1) 1 libsystem_pthread.dylib 0x00000001c1de4094 pthread_kill$VARIANT$mp + 380 (pthread.c:1492) 2 libsystem_c.dylib 0x00000001c1cc3ea8 abort + 140 (abort.c:94) 3 libc++abi.dylib 0x00000001c1390788 abort_message + 132 (abort_message.cpp:75) 4 libc++abi.dylib 0x00000001c1390934 default_terminate_handler() + 308 (cxa_default_handlers.cpp:68) 5 libobjc.A.dylib 0x00000001c13a7e00 _objc_terminate() + 124 (objc-exception.mm:693) 6 libc++abi.dylib 0x00000001c139c838 std::__terminate(void (*)()) + 16 (cxa_handlers.cpp:66) 7 libc++abi.dylib 0x00000001c139c8c4 std::terminate() + 84 (cxa_handlers.cpp:97) 8 libdispatch.dylib 0x00000001c1c0d7e8 _dispatch_client_callout + 36 (object.m:514) 9 libdispatch.dylib 0x00000001c1bbb008 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1068 (inline_internal.h:2441) 10 CoreFoundation 0x00000001c2160b20 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1813) 11 CoreFoundation 0x00000001c215ba58 __CFRunLoopRun + 1924 (CFRunLoop.c:3113) 12 CoreFoundation 0x00000001c215afb4 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3247) 13 GraphicsServices 0x00000001c435d79c GSEventRunModal + 104 (GSEvent.c:2245) 14 UIKitCore 0x00000001eeba7c38 UIApplicationMain + 212 (UIApplication.m:4353) 15 therapeutic-listening 0x0000000100b83380 main + 88 (main.m:16) 16 libdyld.dylib 0x00000001c1c1e8e0 start + 4 (:-1)
1
0
659
Jan ’24
I need some general Core Motion advice
I'm building a physical therapy app and as part of it, I want the app to oversee and measure certain exercises that the user will do. I'm not sure if I should use Core Motion, location services, or something else. These are the specific things we want to measure: The user walks for 6 minutes. At the end of it, we tell them how far they walked. The user runs for 30 seconds. We tell them their average speed and peak speed. The user does a broad jump: basically just jumping forward as far as they can. We want to measure the distance jumped. I'm thinking location services might work for #1 but I doubt it will be accurate enough for #2. For #3 I thought I could do this with the accelerometer if I took readings at short intervals and combined them with something like the trapezoidal rule, but I can't get this to produce a reliable result. Let me know what you think, thanks.
0
0
710
Feb ’24
Testing in-app purchases
I need to test my app's in-app purchases and I am having a very difficult time with it. I created a "Sandbox" account in App Store connect. Doing so was very frustrating. It told me multiple times that my password was "too simple", without ever explaining what the password rules are. Then it emailed me something so I could "validate" the account. Luckily I used an actual email address that I can receive mail on. I was expecting I could use any fake address since this is a Sandbox account. After that I started an iOS simulator and tried to log in. It immediately asked me to turn on two-factor authentication. I declined, and then it just said "User name or password is incorrect". I tried a couple more times, then I went back and actually turned on the two factor auth. But that didn't solve the problem. I still cannot log in. Can someone explain what I'm doing wrong here?
0
0
820
Mar ’24
CMMotionActivityManager.startActivityUpdates() is not working
I cannot get CMMotionActivityManager.startActivityUpdates() to work. I have given my app permission to use core motion and also put the required description key into my Info.plist file. I am expecting my user to walk. I call startActivityUpdates() and then stand up and start walking. I typically get about 3 callbacks within a couple of seconds, all of which have "false" set for all of the activity flags, even "unknown". Then after that I get nothing. I can't figure out what I could possibly be doing wrong here. The code is really simple. I looked at doezens of examples and my code is doing the exact same things.
0
0
798
Mar ’24
My background task needs more time
I'm working on a screen where the goal is for the user to walk for 6 minutes while the app times them and measures the distance walked. I'm using CMPedometer to track the walking distance and a repeating 1-second Timer to count down the time. This works fine as long as the app is in the foreground, but I'd like my user to be able to lock their phone and put it away while they walk. I used UIApplication.shared.beginBackgroundTask, but it doesn't provide enough time. It usually only gives me around 30 seconds. I also tried calling UIApplication.shared.beginBackgroundTask again or calling it once every time the timer ticks, with no better result. How can I accomplish my goal here?
1
0
1k
Mar ’24
Need help with autolayout solution
Views A and B are equal in width (set up via a constraint). The actual width will vary at runtime. What I want to do is arrange view A such that it is horizontally centered on B but offset to the left by 1/10th of the total width. In other words, if views A and B were 100 units in length, I'd want A to be positioned 10 units to the left of B. If the width were 150 units then the A position would be 15 to the left, etc. I thought I could do this with either a leading constraint or a centerX constraint using a multiplier of 0.9, but it isn't working out the way I want. What's the best solution?
Replies
1
Boosts
0
Views
696
Activity
Jul ’22
Customize typing suggestions?
I want to customize or limit the typing suggestions for a UISearchBar input to a list of known words that exist within the material that is being searched. How is this done? Thanks, Frank
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
0
Boosts
0
Views
526
Activity
Sep ’22
Disable predictive text with UISearchBar?
How do I disable the predictive text feature (word suggestions) of the keyboard when used with a UISearchBar?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
0
Boosts
0
Views
623
Activity
Sep ’22
replacingOccurrences(of:,with:) always returns new string?
Do string functions such as "replacingOccurrences" and "trimmingCharacters" always return a new string, even if the old string did not need to be modified? In other words -- if I'm doing a large number of "replacingOccurrences" in my app but only a small number of the strings actually contain the sequence I want to replace, should I check to see if the sequence exists before calling replacingOccurrences, in order to avoid an unnecessary string allocation? I would guess that Swift would return the same string if it didn't require any modifications, but the documentation just says "Returns a new string". Thanks, Frank
Replies
1
Boosts
0
Views
736
Activity
Sep ’22
Xcode 14 not working with iOS 15 device
I'm getting the dreaded "Failed to prepare the device for development" error when I connect my iPhone running iOS 15 to the latest version of Xcode. I've tried rebooting both devices. How do I fix this?
Replies
1
Boosts
0
Views
1.8k
Activity
Sep ’22
Saving Dictionary with Data into UserDefaults doesn't work
I'm trying to save a Dictionary to UserDefaults. My Dictionary is defined as [String:Data]. Since both String and Data are property objects, I expected this to work, but it doesn't: my app blows up with a "this class is not key-value coding compliant" error. Is this a bug, or am I doing something wrong?
Replies
3
Boosts
0
Views
1k
Activity
Oct ’22
How are referral codes handled today?
Hi, My customer wants to do the thing where an app store URL is advertised which contains a referral code. When a user follows the link, it should take them to the app store to install the app, and then when the app is installed, it should be able to get access to the referral code in the original URL. I know such a thing was possible at one time because I remember talking to some of my colleagues about it, but I have never done it myself and whatever my coworkers did 8 years ago in Objective-C probably doesn't work anymore. Can someone let me know how to do this, or at least, let me know what the correct name for this procedure is so I can look it up? Thanks.
Replies
2
Boosts
0
Views
6.9k
Activity
Dec ’22
Auto resize UITextView in table cell
I have a table cell containing a UITextView. The table is using automaticDimension for the cell height and the cell itself is formatted in a way that the UITextView can be a variable height. The intention is that the textview and the cell should reisize as the user types and the text flows into additional lines. If I do nothing else, this doesn't happen. If I add a UITextViewDelegate and call sizeToFit() on the textview whenever the text changes, and then reload the table cell, it does resize, but it does so in an extremely sloppy and unusable way. Specifically, the textview loses focus, the cursor disappears, and the text starts to render in odd ways with overlapping characters or graphics from surrounding elements. What is the correct way to accomplish this? Thanks, Frank
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
0
Boosts
0
Views
664
Activity
Mar ’23
"Encryption is insufficient" message with BLE
I'm working on a BLE app with a hardware partner using samples of their device, which I am able to erase and re-flash when needed. When I try to use the device it initially works fine. I can connect to it, make requests, and get back responses. However, after a short time and a few successful runs, I start getting the error "Encryption is insufficient". The error is seen in the "didUpdateValueFor" function. I can still connect to the device, and enumerate all of its services and characteristics, but I can't read any data. If at this point I re-flash the device and also go into the iOS setting app and "forget" it, then I can use the device normally again, at least for a while. What causes this? Is there a way I can fix it in my app? Thanks, Frank
Replies
3
Boosts
0
Views
2k
Activity
Aug ’23
Unable to issue an app identifier or access the Certificates page
I manage several different apps for different customers, who have invited me as a user to their Apple Developer accounts. This week a new customer invited me and I accepted the invitation. If I go to App Store Connect, I can select that customer, view the Users screen and see that he has given me Admin access which is what I requested. However, when I go to developer.apple.com/account, I cannot access the "Certificates, IDs & Profiles" section. In fact, I do not even see the new customer in the pick list underneath my name. This customer is non-technical and needs me to do everything involved with publishing his app, starting with creating the App Store listing and certificates. In App Store Connect I can "Add App" but there are no bundle IDs in the pick list. If I click the link that says "Register a new bundle ID" it takes me to the Certificates page but with a different customer's account selected. Why am I unable to do this given that I have Admin access? Is there some other way I can set up this app? Frank
Replies
0
Boosts
0
Views
559
Activity
May ’23
Interpreting crash logs
I often get crash logs where nothing in the stack trace is my code, other than an entry point in main. I don't know how to use these to figure out where the problem is. For example this one, Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Triggered by Thread: 0 Last Exception Backtrace: 0 CoreFoundation 0x1c21cf180 __exceptionPreprocess + 228 (NSException.m:172) 1 libobjc.A.dylib 0x1c13a79f8 objc_exception_throw + 56 (objc-exception.mm:557) 2 UIKitCore 0x1ee572b1c -[UINavigationController pushViewController:transition:forceImmediate:] + 2312 (UINavigationController.m:7317) 3 UIKitCore 0x1ee5720b0 -[UINavigationController pushViewController:animated:] + 664 (UINavigationController.m:7272) 4 UIKitCore 0x1ee62ae9c -[_UIViewControllerTransitionCoordinator _applyBlocks:releaseBlocks:] + 264 (UIViewControllerTransitioning.m:1121) 5 UIKitCore 0x1ee62725c -[_UIViewControllerTransitionContext _runAlongsideCompletions] + 140 (UIViewControllerTransitioning.m:374) 6 UIKitCore 0x1ee626f34 -[_UIViewControllerTransitionContext completeTransition:] + 132 (UIViewControllerTransitioning.m:286) 7 UIKitCore 0x1ee6371f4 __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke.118 + 740 (_UINavigationParallaxTransition.m:393) 8 UIKitCore 0x1ef032d1c -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 752 (UIView.m:12852) 9 UIKitCore 0x1ef009a74 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 312 (UIView.m:0) 10 UIKitCore 0x1ef00a048 -[UIViewAnimationState animationDidStop:finished:] + 296 (UIView.m:2111) 11 UIKitCore 0x1ef00a0e8 -[UIViewAnimationState animationDidStop:finished:] + 456 (UIView.m:2130) 12 QuartzCore 0x1c671f3c8 CA::Layer::run_animation_callbacks(void*) + 284 (CALayer.mm:6680) 13 libdispatch.dylib 0x1c1c0d7d4 _dispatch_client_callout + 16 (object.m:511) 14 libdispatch.dylib 0x1c1bbb008 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1068 (inline_internal.h:2441) 15 CoreFoundation 0x1c2160b20 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1813) 16 CoreFoundation 0x1c215ba58 __CFRunLoopRun + 1924 (CFRunLoop.c:3113) 17 CoreFoundation 0x1c215afb4 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3247) 18 GraphicsServices 0x1c435d79c GSEventRunModal + 104 (GSEvent.c:2245) 19 UIKitCore 0x1eeba7c38 UIApplicationMain + 212 (UIApplication.m:4353) 20 therapeutic-listening 0x100b83380 main + 88 (main.m:16) 21 libdyld.dylib 0x1c1c1e8e0 start + 4 (:-1) Thread 0 name: Thread 0 Crashed: 0 libsystem_kernel.dylib 0x00000001c1d6b0dc __pthread_kill + 8 (:-1) 1 libsystem_pthread.dylib 0x00000001c1de4094 pthread_kill$VARIANT$mp + 380 (pthread.c:1492) 2 libsystem_c.dylib 0x00000001c1cc3ea8 abort + 140 (abort.c:94) 3 libc++abi.dylib 0x00000001c1390788 abort_message + 132 (abort_message.cpp:75) 4 libc++abi.dylib 0x00000001c1390934 default_terminate_handler() + 308 (cxa_default_handlers.cpp:68) 5 libobjc.A.dylib 0x00000001c13a7e00 _objc_terminate() + 124 (objc-exception.mm:693) 6 libc++abi.dylib 0x00000001c139c838 std::__terminate(void (*)()) + 16 (cxa_handlers.cpp:66) 7 libc++abi.dylib 0x00000001c139c8c4 std::terminate() + 84 (cxa_handlers.cpp:97) 8 libdispatch.dylib 0x00000001c1c0d7e8 _dispatch_client_callout + 36 (object.m:514) 9 libdispatch.dylib 0x00000001c1bbb008 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1068 (inline_internal.h:2441) 10 CoreFoundation 0x00000001c2160b20 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1813) 11 CoreFoundation 0x00000001c215ba58 __CFRunLoopRun + 1924 (CFRunLoop.c:3113) 12 CoreFoundation 0x00000001c215afb4 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3247) 13 GraphicsServices 0x00000001c435d79c GSEventRunModal + 104 (GSEvent.c:2245) 14 UIKitCore 0x00000001eeba7c38 UIApplicationMain + 212 (UIApplication.m:4353) 15 therapeutic-listening 0x0000000100b83380 main + 88 (main.m:16) 16 libdyld.dylib 0x00000001c1c1e8e0 start + 4 (:-1)
Replies
1
Boosts
0
Views
659
Activity
Jan ’24
I need some general Core Motion advice
I'm building a physical therapy app and as part of it, I want the app to oversee and measure certain exercises that the user will do. I'm not sure if I should use Core Motion, location services, or something else. These are the specific things we want to measure: The user walks for 6 minutes. At the end of it, we tell them how far they walked. The user runs for 30 seconds. We tell them their average speed and peak speed. The user does a broad jump: basically just jumping forward as far as they can. We want to measure the distance jumped. I'm thinking location services might work for #1 but I doubt it will be accurate enough for #2. For #3 I thought I could do this with the accelerometer if I took readings at short intervals and combined them with something like the trapezoidal rule, but I can't get this to produce a reliable result. Let me know what you think, thanks.
Replies
0
Boosts
0
Views
710
Activity
Feb ’24
Testing in-app purchases
I need to test my app's in-app purchases and I am having a very difficult time with it. I created a "Sandbox" account in App Store connect. Doing so was very frustrating. It told me multiple times that my password was "too simple", without ever explaining what the password rules are. Then it emailed me something so I could "validate" the account. Luckily I used an actual email address that I can receive mail on. I was expecting I could use any fake address since this is a Sandbox account. After that I started an iOS simulator and tried to log in. It immediately asked me to turn on two-factor authentication. I declined, and then it just said "User name or password is incorrect". I tried a couple more times, then I went back and actually turned on the two factor auth. But that didn't solve the problem. I still cannot log in. Can someone explain what I'm doing wrong here?
Replies
0
Boosts
0
Views
820
Activity
Mar ’24
CMMotionActivityManager.startActivityUpdates() is not working
I cannot get CMMotionActivityManager.startActivityUpdates() to work. I have given my app permission to use core motion and also put the required description key into my Info.plist file. I am expecting my user to walk. I call startActivityUpdates() and then stand up and start walking. I typically get about 3 callbacks within a couple of seconds, all of which have "false" set for all of the activity flags, even "unknown". Then after that I get nothing. I can't figure out what I could possibly be doing wrong here. The code is really simple. I looked at doezens of examples and my code is doing the exact same things.
Replies
0
Boosts
0
Views
798
Activity
Mar ’24
My background task needs more time
I'm working on a screen where the goal is for the user to walk for 6 minutes while the app times them and measures the distance walked. I'm using CMPedometer to track the walking distance and a repeating 1-second Timer to count down the time. This works fine as long as the app is in the foreground, but I'd like my user to be able to lock their phone and put it away while they walk. I used UIApplication.shared.beginBackgroundTask, but it doesn't provide enough time. It usually only gives me around 30 seconds. I also tried calling UIApplication.shared.beginBackgroundTask again or calling it once every time the timer ticks, with no better result. How can I accomplish my goal here?
Replies
1
Boosts
0
Views
1k
Activity
Mar ’24