Post

Replies

Boosts

Views

Activity

WidgetKit Crash
On the crash reports, I am getting a lot of crashes with this crash report for two iOS 14 Widgets: Foundation&#9;&#9;_NSFileHandleRaiseOperationException .... SwiftUI&#9;&#9;&#9; FileArchiveWriter.AppendByes(_size:) .... My Widget&#9;&#9;&#9; closure #1 in MyTimelineProver.getTimeline(in:completion:) When checked within the project, this happens in: func getTimeline(in context: Self.Context, completion: @escaping (Timeline<Self.Entry>) -> Void) I have one timeline that asked to update every 5 mins.
7
0
3.5k
Nov ’21
Stop viewSafeAreaInsetsDidChange() being called
I have a child view controller added and its view gets viewSafeAreaInsetsDidChange() called every time a frame change happens. how do I avoid this? So far I am using these: self.viewRespectsSystemMinimumLayoutMargins = false self.view.insetsLayoutMarginsFromSafeArea = false self.view.preservesSuperviewLayoutMargins. = false However, viewSafeAreaInsetsDidChange() is till being called. Is there a way to stop that?
3
0
999
Jul ’23
Launch The Main App from LockedCameraCapture
If the app is launched from LockedCameraCapture and if the settings button is tapped, I need to launch the main app. CameraViewController: func settingsButtonTapped() { #if isLockedCameraCaptureExtension //App is launched from Lock Screen //Launch main app here... #else //App is launched from Home Screen self.showSettings(animated: true) #endif } In this document: https://developer.apple.com/documentation/lockedcameracapture/creating-a-camera-experience-for-the-lock-screen Apple asks you to use: func launchApp(with session: LockedCameraCaptureSession, info: String) { Task { do { let activity = NSUserActivityTypeLockedCameraCapture activity.userInfo = [UserInfoKey: info] try await session.openApplication(for: activity) } catch { StatusManager.displayError("Unable to open app - \(error.localizedDescription)") } } } However, the documentation states that this should be placed within the extension code - LockedCameraCapture. If I do that, how can I call that all the way down from the main app's CameraViewController?
3
0
576
Nov ’25
Burst Mode Using Bracketed Capture?
Eventhough some apps out there figured out how to do proper burst capture that is equal to stock iOS Camera App, there is no official API to do so.Currently I have it where it wil call capturePhoto over and over, which is not fast enough. I've seen some hints floating around that the proper way to do this is using bracketed capture any input on this?Thanks in advance.
1
1
3.4k
Apr ’23
App Privacy Listing and Crash Reports
Currently, I have an app that does not collect any user data. So the App privacy listing on the App Store is listed as "Does not collect any data." However, it still receives app crashes and other reports that are available via Xcode Organizer. I believe the user enables this via the prompt "Share analytics, diagnostics, and usage information with Apple" at the system level. So given above, do I need to change the listing to say it explicitly collects crash data?
1
0
2k
Jan ’23
API to use New SF Pro Condensed/Compressed/Expanded
New variants of SF Pro were introduced for iOS 16, but I do not see an update to UIFont API to use them. https://developer.apple.com/documentation/uikit/uifont Another thread on here specified that it could be done through UIFontDescriptor, but it doesn't seem like thee that is the official way. I really wish there is more information on this. I am wanting to use Expanded for my iOS update.
1
1
2.1k
Aug ’22
UIImageView preferredImageDynamicRange not working
I am trying to display HDR Images (ProRAW) within UIImageView using preferredImageDynamicRange. This was shown in a 2023 WWDC Video let imageView = UIImageView() if #available(iOS 17.0, *) { self.imageView.preferredImageDynamicRange = UIImage.DynamicRange.high } self.imageView.clipsToBounds = true self.imageView.isMultipleTouchEnabled = true self.imageView.contentMode = .scaleAspectFit self.photoScrollView.addSubview(self.imageView) I pull the image from PHImageManager: let options = PHImageRequestOptions() options.deliveryMode = .highQualityFormat options.isNetworkAccessAllowed = true PHImageManager.default().requestImage(for: asset, targetSize: self.targetSize(), contentMode: .aspectFit, options: options, resultHandler: { image, info in guard let image = image else { return } DispatchQueue.main.async { self.imageView.image =image if #available(iOS 17.0, *) { self.imageView.preferredImageDynamicRange = UIImage.DynamicRange.high } } } Issue The image shows successfully, yet not in HDR mode (no bright specular highlights, as seen when the same image ((ProRAW) is pulled on the native camera app. What am I missing here?
1
0
1.2k
Sep ’23
iOS 18 Control Widget that opens a URL
I already have an iOS 17 App Intent that works with a URL: @available(iOS 16, *) struct MyAppIntent: AppIntent { static let title : LocalizedStringResource = "My App Inent" static let openAppWhenRun : Bool = true @MainActor func perform() async throws -> some IntentResult{ await UIApplication.shared.open(URL(string: "myapp://myappintent")!) return .result() } } Now, with iOS 18 and Control Widgets, I want to create a Control Widget button that smply opens the app with the same URL. However UIApplication code is not allowed within extensions. For this, Apple says to use OpenIntent which is shown here: Link Apple Sample Code from the link: import AppIntents struct LaunchAppIntent: OpenIntent { static var title: LocalizedStringResource = "Launch App" @Parameter(title: "Target") var target: LaunchAppEnum } enum LaunchAppEnum: String, AppEnum { case timer case history static var typeDisplayRepresentation = TypeDisplayRepresentation("Productivity Timer's app screens") static var caseDisplayRepresentations = [ LaunchAppEnum.timer : DisplayRepresentation("Timer"), LaunchAppEnum.history : DisplayRepresentation("History") ] } WWDC session video about this does not cover this particular method in detail and also this sample code is a bit confusing. So how can I alter this code to just open the app with a URL?
1
2
1.7k
Sep ’24
LockedCameraCapture - Lock Screen Camera Capture UI Question
After the session video, "Build a great Lock Screen camera capture experience", was unclear about the UI. So do developers need to provide a whole new UI in the extension? The main UI cannot be repurposed?
Replies
27
Boosts
1
Views
3.5k
Activity
Sep ’24
Volume Shutter Buttons for Camera Capture
WWDC23 Platform State of the Union mentioned that Volume shutter buttons to trigger the camera shutter is coming later this year. This was mentioned at 0:30:15. Would anyone know when this will be available?
Replies
8
Boosts
1
Views
2.6k
Activity
Jan ’24
WidgetKit Crash
On the crash reports, I am getting a lot of crashes with this crash report for two iOS 14 Widgets: Foundation&#9;&#9;_NSFileHandleRaiseOperationException .... SwiftUI&#9;&#9;&#9; FileArchiveWriter.AppendByes(_size:) .... My Widget&#9;&#9;&#9; closure #1 in MyTimelineProver.getTimeline(in:completion:) When checked within the project, this happens in: func getTimeline(in context: Self.Context, completion: @escaping (Timeline<Self.Entry>) -> Void) I have one timeline that asked to update every 5 mins.
Replies
7
Boosts
0
Views
3.5k
Activity
Nov ’21
Apple Pencil 2 Double Tap Gesture
Using Apple Pencil's Double Tap Gesture within your app, which is not a drawing app, allowed? For example, trigger an action within the app?After reading Apple's Human Interface Guidelines, it still seems to be somewhat ambiguous. Thanks in advance.
Replies
5
Boosts
0
Views
1.8k
Activity
Feb ’22
Stop viewSafeAreaInsetsDidChange() being called
I have a child view controller added and its view gets viewSafeAreaInsetsDidChange() called every time a frame change happens. how do I avoid this? So far I am using these: self.viewRespectsSystemMinimumLayoutMargins = false self.view.insetsLayoutMarginsFromSafeArea = false self.view.preservesSuperviewLayoutMargins. = false However, viewSafeAreaInsetsDidChange() is till being called. Is there a way to stop that?
Replies
3
Boosts
0
Views
999
Activity
Jul ’23
iOS 18 Widget Tint Detection
With iOS 18, when you tint Home Screen, the widgets also need to pick up the tint. How do you detect this within SwiftUI? I didn't see WWDC24 sessions addressing this.
Replies
3
Boosts
0
Views
3.8k
Activity
Sep ’24
Launch The Main App from LockedCameraCapture
If the app is launched from LockedCameraCapture and if the settings button is tapped, I need to launch the main app. CameraViewController: func settingsButtonTapped() { #if isLockedCameraCaptureExtension //App is launched from Lock Screen //Launch main app here... #else //App is launched from Home Screen self.showSettings(animated: true) #endif } In this document: https://developer.apple.com/documentation/lockedcameracapture/creating-a-camera-experience-for-the-lock-screen Apple asks you to use: func launchApp(with session: LockedCameraCaptureSession, info: String) { Task { do { let activity = NSUserActivityTypeLockedCameraCapture activity.userInfo = [UserInfoKey: info] try await session.openApplication(for: activity) } catch { StatusManager.displayError("Unable to open app - \(error.localizedDescription)") } } } However, the documentation states that this should be placed within the extension code - LockedCameraCapture. If I do that, how can I call that all the way down from the main app's CameraViewController?
Replies
3
Boosts
0
Views
576
Activity
Nov ’25
24MP Capture for iPhone 15 and iPhone 15 Pro Models
With AVFoundation, how do you set up the new 24MP capture on new iPhone 15 models? I strongly believed it was in videodevice.activeFormat.supportedMaxPhotoDimensions array, but not.
Replies
2
Boosts
4
Views
1.5k
Activity
Sep ’23
Burst Mode Using Bracketed Capture?
Eventhough some apps out there figured out how to do proper burst capture that is equal to stock iOS Camera App, there is no official API to do so.Currently I have it where it wil call capturePhoto over and over, which is not fast enough. I've seen some hints floating around that the proper way to do this is using bracketed capture any input on this?Thanks in advance.
Replies
1
Boosts
1
Views
3.4k
Activity
Apr ’23
App Keywords and Spaces
I've been using keywords separated by commas WITHOUT spaces.What is the recommended method? WITH or WITHOUT spaces? Or there is no difference?
Replies
1
Boosts
0
Views
3.9k
Activity
Aug ’21
Reload Widget when Photo Library changes
Is it possible for a widget to be reloaded when the photo library changes? Outside of Widgets, there is PHPhotoLibraryChangeObserver Is it possible to use something similar to update the timeline whenever there is a change in the photo library? TimelineProvider.getTimeline(in:completion:)
Replies
1
Boosts
0
Views
1.3k
Activity
Jun ’21
App Privacy Listing and Crash Reports
Currently, I have an app that does not collect any user data. So the App privacy listing on the App Store is listed as "Does not collect any data." However, it still receives app crashes and other reports that are available via Xcode Organizer. I believe the user enables this via the prompt "Share analytics, diagnostics, and usage information with Apple" at the system level. So given above, do I need to change the listing to say it explicitly collects crash data?
Replies
1
Boosts
0
Views
2k
Activity
Jan ’23
API to use New SF Pro Condensed/Compressed/Expanded
New variants of SF Pro were introduced for iOS 16, but I do not see an update to UIFont API to use them. https://developer.apple.com/documentation/uikit/uifont Another thread on here specified that it could be done through UIFontDescriptor, but it doesn't seem like thee that is the official way. I really wish there is more information on this. I am wanting to use Expanded for my iOS update.
Replies
1
Boosts
1
Views
2.1k
Activity
Aug ’22
UIImageView preferredImageDynamicRange not working
I am trying to display HDR Images (ProRAW) within UIImageView using preferredImageDynamicRange. This was shown in a 2023 WWDC Video let imageView = UIImageView() if #available(iOS 17.0, *) { self.imageView.preferredImageDynamicRange = UIImage.DynamicRange.high } self.imageView.clipsToBounds = true self.imageView.isMultipleTouchEnabled = true self.imageView.contentMode = .scaleAspectFit self.photoScrollView.addSubview(self.imageView) I pull the image from PHImageManager: let options = PHImageRequestOptions() options.deliveryMode = .highQualityFormat options.isNetworkAccessAllowed = true PHImageManager.default().requestImage(for: asset, targetSize: self.targetSize(), contentMode: .aspectFit, options: options, resultHandler: { image, info in guard let image = image else { return } DispatchQueue.main.async { self.imageView.image =image if #available(iOS 17.0, *) { self.imageView.preferredImageDynamicRange = UIImage.DynamicRange.high } } } Issue The image shows successfully, yet not in HDR mode (no bright specular highlights, as seen when the same image ((ProRAW) is pulled on the native camera app. What am I missing here?
Replies
1
Boosts
0
Views
1.2k
Activity
Sep ’23
iOS 18 Control Widget that opens a URL
I already have an iOS 17 App Intent that works with a URL: @available(iOS 16, *) struct MyAppIntent: AppIntent { static let title : LocalizedStringResource = "My App Inent" static let openAppWhenRun : Bool = true @MainActor func perform() async throws -> some IntentResult{ await UIApplication.shared.open(URL(string: "myapp://myappintent")!) return .result() } } Now, with iOS 18 and Control Widgets, I want to create a Control Widget button that smply opens the app with the same URL. However UIApplication code is not allowed within extensions. For this, Apple says to use OpenIntent which is shown here: Link Apple Sample Code from the link: import AppIntents struct LaunchAppIntent: OpenIntent { static var title: LocalizedStringResource = "Launch App" @Parameter(title: "Target") var target: LaunchAppEnum } enum LaunchAppEnum: String, AppEnum { case timer case history static var typeDisplayRepresentation = TypeDisplayRepresentation("Productivity Timer's app screens") static var caseDisplayRepresentations = [ LaunchAppEnum.timer : DisplayRepresentation("Timer"), LaunchAppEnum.history : DisplayRepresentation("History") ] } WWDC session video about this does not cover this particular method in detail and also this sample code is a bit confusing. So how can I alter this code to just open the app with a URL?
Replies
1
Boosts
2
Views
1.7k
Activity
Sep ’24