iOS is the operating system for iPhone.

Posts under iOS tag

200 Posts

Post

Replies

Boosts

Views

Activity

AVAudioRecorder loses earlier audio after Siri with iOS 27 lifecycle notifications
I’m migrating to the new notifications described in Handling audio interruptions. On an iPhone 14 running iOS 27.0.1 (24A446), I call pause() when the system deactivates the session. On .shouldResume, I await successful session.activate() and call record() on the same recorder. It returns true, but the saved file contains only the audio recorded after Siri. To reproduce: record for five seconds, invoke and dismiss Siri, record for another five seconds, then stop and play. The earlier five seconds are missing. A legacy-notification control preserved both portions on the same phone. Is another step required to preserve the recording with the new notifications, or is this a known issue? I found this similar report, although it uses the legacy API. Minimal reproduction Built with Xcode 27.1. Create a SwiftUI iOS app targeting iOS 27, replace its generated App.swift with the code below, and add these Info.plist entries: NSMicrophoneUsageDescription: Test audio recording UIBackgroundModes: an array containing audio import SwiftUI import AVFoundation @main struct RecorderReproApp: App { var body: some Scene { WindowGroup { RecorderReproView() } } } @MainActor struct RecorderReproView: View { private let session = AVAudioSession.sharedInstance() private let file = URL.documentsDirectory.appendingPathComponent("recording.m4a") @State private var recorder: AVAudioRecorder? @State private var player: AVAudioPlayer? @State private var running = false @State private var interrupted = false @State private var status = "Ready" var body: some View { VStack(spacing: 24) { Button("Start") { Task { await start() } }.disabled(running) Button("Stop") { running = false interrupted = false recorder?.stop() status = file.path }.disabled(!running) Button("Play") { do { player = try AVAudioPlayer(contentsOf: file) status = "Saved duration: \(player!.duration) seconds" player?.play() } catch { status = error.localizedDescription } }.disabled(running) Text(status) } .padding() .task { for await notification in NotificationCenter.default.notifications( named: AVAudioSession.didBecomeInactiveNotification, object: session ) { guard running, let context = notification.userInfo?[AVAudioSession.deactivationContextKey] as? AVAudioSession.DeactivationContext, context.source == .system else { continue } recorder?.pause() interrupted = true status = "Interrupted" } } .task { for await notification in NotificationCenter.default.notifications( named: AVAudioSession.resumptionRecommendationNotification, object: session ) { guard running, interrupted, let context = notification.userInfo?[AVAudioSession.resumptionContextKey] as? AVAudioSession.ResumptionContext else { continue } guard context.recommendation == .shouldResume else { interrupted = false continue } do { guard try await session.activate(), running, interrupted else { continue } status = "Resumed: \(recorder!.record())" interrupted = false } catch { status = error.localizedDescription } } } } private func start() async { guard await AVAudioApplication.requestRecordPermission() else { return } do { try session.setCategory(.playAndRecord) guard try await session.activate() else { return } recorder = try AVAudioRecorder(url: file, settings: [ AVFormatIDKey: kAudioFormatMPEG4AAC_HE, AVSampleRateKey: 44_100, AVEncoderBitRateKey: 32_000, AVNumberOfChannelsKey: 2 ]) running = recorder!.record() status = "Recording: \(running)" } catch { status = error.localizedDescription } } }
0
0
428
1w
App Review Delayed Again After Addressing All Rejection Issues — Waiting for Review for 7+ Days
Hi everyone, I'm looking for advice from developers who have experienced prolonged App Review delays, and hopefully some help from someone at Apple who can look into this situation. My app, Parozo: Restaurant POS & KOT (iOS version 1.0.0), was initially reviewed by Apple, and I received feedback regarding several guidelines: Guidelines 2.3.10 and 2.3.3: App Store screenshots and accurate representation of the app. Guideline 3.1.1: In-app purchases and business subscription functionality. Guideline 4.5.4: Push notification permissions. I carefully reviewed Apple's feedback and made the requested changes. I replaced the screenshots with actual iOS app screenshots, made push notifications optional, and removed plan, pricing, registration, and renewal screens and purchase links from the iOS app to address the subscription-related concerns. I then submitted the updated build 1.0.0 (7) for review on October 16, 2026. However, the submission is still showing “Waiting for Review,” and more than seven days have now passed without the new review process starting or any further communication. I've also contacted Apple Developer Support multiple times regarding these delays. Unfortunately, I haven't received a meaningful response to my previous requests. I submitted another support request yesterday, but the issue remains unresolved. My latest App Review support case is 103003613618. I completely understand that app reviews take time and that Apple must carefully evaluate every submission. I'm not asking for the review guidelines to be bypassed or for special treatment. I have addressed the issues identified in the previous review and simply want to understand why the corrected submission is still waiting and whether any further action is needed from my side. As an independent developer, these repeated delays and the lack of communication make it difficult to plan a product launch, particularly after spending time addressing the feedback provided by App Review. Has anyone experienced a similar situation after fixing all the issues identified by Apple? Did your resubmission eventually move into review, and is there an effective way to get a status update when repeated support requests receive no response? I'd especially appreciate guidance from anyone who has successfully escalated a similar case, or from an Apple representative who can direct me to the appropriate team. Thank you for your time and help.
1
0
82
1w
How do I upload iPhone Duo screenshots in App Store Connect?
The Screenshot specifications page lists iPhone Duo as an iPhone screenshot size: Outer display: 1398 × 2034 and 2034 × 1398 Inner display: 2007 × 2853 and 2853 × 2007 https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications I cannot find a way to upload them. In App Store Connect, the App Previews and Screenshots device selector on my app's version page does not list iPhone Duo. The only iPhone options are the existing display sizes. In the App Store Connect API, ScreenshotDisplayType has no Duo case. The largest iPhone case is still APP_IPHONE_67. I checked the current reference: https://developer.apple.com/documentation/appstoreconnectapi/screenshotdisplaytype My questions: Where in App Store Connect do I upload iPhone Duo screenshots? If the option is not open yet, is there a ScreenshotDisplayType case for Duo that I should use through the API instead? Thanks.
5
0
1.6k
1w
Why does CloudKit data field (bytes) take up more (~10 times) iCloud storage than asset field?
I export a small image with size of 100 kilobytes (or less) via CoreData+CloudKit. The image data is then stored in a data field in user's private database. In CloudKit dashboard, it shows that the data size is 100 kilobytes - as it should. The device's local storage increase by 100 kilobytes - as expected. However, I check the user's iCloud storage (in Settings>Apple ID>iCloud>Manage Storage). The app's storage in crease by approximately 1 megabytes. Larger by a factor of 10! I try uploading the same image to a test asset field via CloudKit Dashboard. The user's iCloud storage increase by 100 kilobytes - as expected. Why the data (bytes) field take up more of user's iCloud quota than asset field? I really prefer to directly store as data rather than as a CKAsset. Is this just the way it is... or a bug?
14
5
3.5k
1w
AlarmKit — system-owned alert timeout and unattended repeat behavior
I am testing a native AlarmKit prototype on a physical iPhone running iOS 27.0.1. The current build uses Xcode 26.6 / iPhoneOS SDK 26.5; a separate successful CI inspection of Xcode 27.0 / iPhoneOS SDK 27.0 found no alerting-timeout or expiry parameter. I use public APIs only. Normal scheduled alarms, manual Stop, and user-triggered countdown snooze work while the phone is locked. A bundled 10-second custom WAV plays, but audible alerting continued beyond 15 seconds until manually stopped. I understand that preAlert/postAlert are countdown intervals and that a sound file's length is not an alert timeout. Is there a supported system-owned setting or architecture to end audible alerting after a configurable duration (for example 10 or 11 seconds), without user interaction, while the app is suspended or not running? If supported, can that timeout transition into another alarm/countdown after a configurable interval, with a bounded repeat count, while Stop cancels the remaining opportunities for the same occurrence? I have not found a documented maximum alerting-duration parameter. I am not seeking a Timer, Task.sleep, background-refresh timing assumption or ongoing background-audio workaround. Preregistering multiple alarms also raises overlap and cleanup issues. If cancellation of preregistered sibling alarms from stopIntent is recommended, what execution guarantees apply when dismissal is via the system Stop UI or a physical button, particularly after reboot before the first unlock? Does AlarmKit provide an atomic system-owned alternative to scheduling the next alarm and then stopping the current one? Please distinguish documented behavior from a best-effort approach. Guidance on whether these requirements need an enhancement request would be helpful.
2
0
146
1w
iOS: tapping a PWA's Now Playing card opens another installed PWA
On iPhone 14 Pro running iOS 26.7.1 (23H30), tapping the system Now Playing card for an installed Home Screen web app opens a different installed web app. Steps to reproduce: Have multiple Home Screen web apps installed. Play a video with sound in PWA A. Background PWA A and open the system Now Playing UI. Confirm that the card displays PWA A's video, then tap it. Expected: PWA A opens. Actual: another installed PWA opens. This also reproduces in a minimal PWA using a native HTML <video controls playsinline> element with an H.264/AAC video. The page makes no Media Session API calls and has no player SDK or Service Worker. The card was confirmed to show the test video before tapping it. Reported to Apple as FB25262874, with a portable reproduction. The exact cause within iOS has not been established. Is this a known issue with Home Screen web-app launch routing from Now Playing? Is there a supported workaround?
1
0
1.3k
1w
iPhone Duo bug: Popovers presented with their arrow restricted to left/right appear partially offscreen
The following has been reported as FB25281446 I've come across a serious user interface issue on the iPhone Duo when you show a popover with the permitted arrow direction set to only left or right. Here's a screenshot from a test app of a correct popover shown from a form sheet on a fully open iPhone Duo: Here's the same UI after switching the Duo from fully open to partially open: Note how the popover is now partially offscreen. Oddly the toolbar is still kept onscreen. You are unable to scroll to the last rows of the table view. You can replicate this problem by taking the following steps: 1) Create a new Storyboard/Swift app with Xcode 27.2 RC 2) Edit the Main storyboard by removing the default view controller 3) Add a navigation controller (and its default root view controller) 4) Set the navigation controller as the initial view controller 5) Replace the contents of the default ViewController.swift file with the following code: ```swift import UIKit class ViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() let showPopover = UIBarButtonItem() // Show the view controller as a popover let action = UIAction(title: "Popover", handler: { _ in let vc = ViewController() let nc = UINavigationController(rootViewController: vc) nc.modalPresentationStyle = .popover nc.popoverPresentationController?.sourceItem = showPopover nc.popoverPresentationController?.permittedArrowDirections = .any self.present(nc, animated: true) }) showPopover.primaryAction = action self.navigationItem.rightBarButtonItem = showPopover // Show the view controller in a form sheet let showFormSheet = UIBarButtonItem() let action2 = UIAction(title: "FormSheet", handler: { _ in let vc = ViewController() // Applying a preferred content size affects the results in one // case - the popover works correctly when the Duo is fully open // in portrait and you show a popover from a form sheet. //vc.preferredContentSize = .init(width: 540, height: 620) let nc = UINavigationController(rootViewController: vc) nc.modalPresentationStyle = .formSheet self.present(nc, animated: true) }) showFormSheet.primaryAction = action2 self.navigationItem.leftBarButtonItem = showFormSheet // Show some dummy toolbar items to help demonstrate the issue self.navigationController?.isToolbarHidden = false self.toolbarItems = [ UIBarButtonItem(systemItem: .add), UIBarButtonItem.flexibleSpace(), UIBarButtonItem(systemItem: .action), ] } } extension ViewController { override func numberOfSections(in tableView: UITableView) -> Int { return 1 } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 20 } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell") ?? UITableViewCell(style: .subtitle, reuseIdentifier: "cell") cell.textLabel?.text = "Row \(indexPath.row)" cell.detailTextLabel?.text = "Tap me to show popover" return cell } // Show a popover from a selected cell. The popover will appear partially // offscreen under the following conditions: // - When the Duo is fully open and landscape: // - A row near the bottom of the root view controller is selected. // - When the Duo is fully open and portrait: // - A row near the bottom of the root view controller is selected. // - A row near the bottom of a form sheet is selected (unless the form // sheet has a preferredContentSize set). // - When the Duo is partially open and landscape or portrait: // - A row near the bottom of the root view controller is selected. // - A row near the bottom of a form sheet is selected. // - If you then fully open the Duo, the partially offscreen popover // moves into the correct, fully visible position. // Note that the toolbar of the partially offscreen popover stays on screen. // // There are no issues when the Duo is closed. override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { if let cell = tableView.cellForRow(at: indexPath) { let vc = ViewController() let nc = UINavigationController(rootViewController: vc) nc.modalPresentationStyle = .popover nc.popoverPresentationController?.sourceItem = cell // The problem only happens if the arrow is limited to left or right nc.popoverPresentationController?.permittedArrowDirections = [ .left, .right ] self.present(nc, animated: true) } } } ``` 6) In the Main storyboard, change the root view controller's class to ViewController 7) Build and run the app against an iPhone Duo running iOS 27.2 RC You can now replicate the two screenshots by fully opening the Duo and putting it in landscape. Then do the following: 1) Tap the FormSheet button 2) In the form sheet table, select a row near the bottom of the form sheet 3) Note the popover appears correctly with an arrow on the right side pointing to the selected row 4) Now put the iPhone Duo in the partially open mode (still landscape) 5) Note the problem. The popover moves partially offscreen. You can’t even scroll to the last row. The popover show remain fully onscreen and of reasonable height just like it was when the Duo was fully open. As noted in the ViewController.swift file, the issue appears under the following conditions: - When the Duo is fully open and landscape: - A row near the bottom of the root view controller is selected. - When the Duo is fully open and portrait: - A row near the bottom of the root view controller is selected. - A row near the bottom of a presented form sheet is selected (unless the form sheet has a preferredContentSize set). - When the Duo is partially open and landscape or portrait: - A row near the bottom of the root view controller is selected. - A row near the bottom of a presented form sheet is selected. - If you then fully open the Duo, the partially offscreen popover moves into the correct, fully visible position.
1
0
333
1w
iPhone Duo Simulator is missing the usual apps
Using Xcode 27.1 RC, the iPhone Duo simulator (Device Hub) only comes with the Settings and Safari apps. Am I missing something? Are there plans to have the usual simulator apps such as Photos, Calendar, Reminders, Maps, etc.? In these early stages it would be really nice to have some real apps to look at for examples of how some things should work/appear on the Duo in different layouts.
5
2
1.2k
1w
Day 14 - "in review" state
So it seems there are others experiencing delays with app submissions and I wanted to add my experience so far. I've been waiting 14 days now while the app submitted is "in review". Has anyone actually gotten an app successfully reviewed in the past 1-2 weeks for iOS? We were trying to meet a launch date, but it doesn't seem like this will happen...Apple states that 90% of reviews are completed within 24 hours, this seems to be a far stretch at the moment.
11
3
798
1w
Is it no longer possible in Xcode 27.1 to run/debug Apps on an iPhone X?
I've still an old iPhone X (running iOS 16.7.16) and like to also use this to test/debug my Apps, but it seems that XCode 27.1 does no longer support it. The device simply does not show up in the new Device Hub. I still have some App-specific data on this device, which I would like to use for the tests, but as XCode now ignores this device, I can't even copy the data over to the newer devices. Is it somhoe possible to add the device to the device Hub, or make it available to XCode so I can actually test on this device as well?
2
0
174
1w
iOS and Android
I currently have a iOS app live on the App Store but I also want to release it on Android, the whole code is in Swift so would that be possible or would I have to rewrite my whole apps code in a different coding language.
3
0
3.9k
1w
Dora - AI Video Generator (Apple ID 1604739131) stuck in review
Hi Apple team, Our latest version of Dora - AI Video Generator (Apple ID: 1604739131) has been sitting in “In Review” for a while now, and I wanted to check if something’s wrong with the submission. We submitted it on Oct 14, 2026 at 10:32 AM, and it’s still not done. Our updates usually get through in a day or two, so this is way out of the ordinary for us. If there’s an issue on our end, just let us know and we’ll fix it right away. If not, we’d really appreciate any help moving the review along. Thanks so much for your help! Best, Smart Widget Labs Team
0
0
64
1w
iOS 27: PDFDocument.dataRepresentation() writes corrupt 16-bpc annotation images (half the data missing)
Since iOS/iPadOS 27.0, saving a PDF with PDFDocument.dataRepresentation() produces a corrupt file when a page contains a PDFAnnotation subclass that overrides draw(with:in:) and draws a 16-bits-per-component image. The same code works correctly on iOS 26.4. Filed as FBxxxxxxxx. What happens: The annotation is written with /AAPL:AKExtras, and its appearance (/AP) references an image XObject declared as /BitsPerComponent 16 (RGB). The image stream contains only half of the required data (8-bpc worth). Example: 1429 x 2021 image. Required: 17,328,054 bytes. Actual: 8,664,027 bytes. Adobe Acrobat reports "Insufficient data for an image". Other viewers read the 8-bpc data as 16-bpc, so the drawing is squeezed into the upper half of the page and the lower half is empty. In PDFKit, colors may turn black. The problem is in the writing step: a PDF written on iOS 27.0 is broken everywhere, while a PDF written on iOS 26.4 opens correctly on iOS 27.0. How to reproduce: Create a 16-bpc image with UIGraphicsImageRenderer (preferredRange = .extended, or the default format on a wide-color device). Add a PDFAnnotation subclass whose draw(with:in:) draws that image with context.draw(cgImage, in: bounds). Call dataRepresentation() and reopen the result. Current workaround: Create the image with an 8-bpc standard-range format before drawing it in the annotation: let format = UIGraphicsImageRendererFormat.preferred() format.preferredRange = .standard // 8 bpc, sRGB let renderer = UIGraphicsImageRenderer(size: size, format: format) With this, the declared bit depth and the data length match, and the PDF is valid on iOS 27.0. However, this gives up 16-bpc / wide-color output, so I would prefer a solution that keeps the original image quality. Possibly related: FB24882188 / FB24843022 (iOS 27 regression in PDFAnnotation subclasses that override draw(with:in:)). Questions: Does anyone know a way to avoid this issue without downgrading the image to 8 bpc? For example, a different way to create or attach the annotation appearance so that PDFKit on iOS 27 writes the 16-bpc data correctly. Has anyone else seen this, or confirmed whether it is fixed in a later iOS 27 release?
2
0
253
1w
Swipe to go back still broken with Zoom navigation transition.
When you use .navigationTransition(.zoom(sourceID: "placeholder", in: placehoder)) for navigation animation, going back using the swipe gesture is still very buggy on IOS26. I know it has been mentioned in other places like here: https://developer.apple.com/forums/thread/796805?answerId=856846022#856846022 but nothing seems to have been done to fix this issue. Here is a video showing the bug comparing when the back button is used vs swipe to go back: https://imgur.com/a/JgEusRH I wish there was a way to at least disable the swipe back gesture until this bug is fixed.
12
4
3.5k
1w
Approved versions show “Ready for Distribution” for 7 days but App Store still serves the old version
My last two approved versions of my app are showing "Ready for Distribution" in App Store Connect, but none of the storefronts lets the user gets the latest update. Here's what happened 0.13.1 (build 49) was approved on 13 October. The release type was “Automatically release after approval”. The state is READY_FOR_SALE with downloadable = true, and no phased release is set. 0.13.2 (build 50) was approved on 18 October with the same release type. It is also Ready for Distribution. The App Store and Apple’s public lookup API (itunes.apple.com/lookup?bundleId=…) still return 0.11.0 (released 3 October, minimum iOS 17.6). I checked the US, IN, GB, CA, AU, DE, SG and AE storefronts. It is not a device issue. iPhones on iOS 18.2 and iOS 27 also show 0.11.0 as the latest version. Impact Our iOS users cannot get the new version. The in-app update prompt sends them to a store page that offers only 0.11.0. We had to turn off open challenge events that need the new version, so users cannot join them. This release introduces new in-app purchases, including an annual plan with a free trial, so the delay also affects our revenue. The app ID is 6760958527. I opened Apple Developer Support case 102996444113 and have not had a reply yet. Has anyone seen a release stay stuck like this for days? Is there anything on the developer side that I should check or try? I would be grateful for any pointers.
0
0
98
1w
Is per-app network blocking possible for a consumer iOS App Store app?
Hi Apple engineers and developers, I am developing a consumer digital-wellbeing app called Ghostie and am trying to determine the correct Apple-supported architecture for its iOS version before continuing implementation. Ghostie's core functionality is to let the user temporarily disconnect selected third-party apps from the Internet while keeping the rest of the device online. For example: WhatsApp: blocked Instagram: blocked Slack: blocked Maps: remains online Banking: remains online Music: remains online On Android, this is implemented using VpnService with per-app traffic handling. For iOS, I have been researching Network Extension, including: NEFilterDataProvider / NEFilterControlProvider content-filter-provider NETunnelProvider / packet-tunnel-provider per-app VPN configurations Apple's current documentation appears to indicate restrictions around per-app configurations and content filtering on iOS, including managed/supervised-device requirements in certain cases. My question is specifically about a normal consumer application distributed through the App Store, where the user owns and controls their personal device and Ghostie is not an MDM/enterprise product. Is there currently an Apple-supported API, entitlement, or Network Extension architecture that would allow Ghostie to: identify selected installed third-party apps; prevent those selected apps from establishing network connections; leave all other apps' network connectivity unaffected; and allow the user to turn this blocking on and off from Ghostie? If this is not possible for an ordinary consumer App Store application, could an Apple engineer please confirm which specific iOS restriction prevents it and whether there is any alternative supported architecture? I am trying to establish the technically and commercially viable architecture before implementing the iOS version. Thank you!
2
0
157
1w
Moonbase stuck "In Review" since Sep 30, Case ID 102991282893 unanswered
Our app submission has stayed in "In Review" for 13 days. App Store Connect shows no messages or information requests. App: Moonbase Apple ID: 6749696944 Version: iOS 01.72 Submission ID: 07aa173f-9001-4368-9d57-168d4d3c6027 Submitted: Sep 30, 2026 Support case 102991282893, opened Oct 9, no reply yet We've provided a demo account and review notes in App Review Information. Can App Review confirm the submission is progressing, or tell us what you need from us? Thank you.
1
0
526
1w
AVAudioRecorder loses earlier audio after Siri with iOS 27 lifecycle notifications
I’m migrating to the new notifications described in Handling audio interruptions. On an iPhone 14 running iOS 27.0.1 (24A446), I call pause() when the system deactivates the session. On .shouldResume, I await successful session.activate() and call record() on the same recorder. It returns true, but the saved file contains only the audio recorded after Siri. To reproduce: record for five seconds, invoke and dismiss Siri, record for another five seconds, then stop and play. The earlier five seconds are missing. A legacy-notification control preserved both portions on the same phone. Is another step required to preserve the recording with the new notifications, or is this a known issue? I found this similar report, although it uses the legacy API. Minimal reproduction Built with Xcode 27.1. Create a SwiftUI iOS app targeting iOS 27, replace its generated App.swift with the code below, and add these Info.plist entries: NSMicrophoneUsageDescription: Test audio recording UIBackgroundModes: an array containing audio import SwiftUI import AVFoundation @main struct RecorderReproApp: App { var body: some Scene { WindowGroup { RecorderReproView() } } } @MainActor struct RecorderReproView: View { private let session = AVAudioSession.sharedInstance() private let file = URL.documentsDirectory.appendingPathComponent("recording.m4a") @State private var recorder: AVAudioRecorder? @State private var player: AVAudioPlayer? @State private var running = false @State private var interrupted = false @State private var status = "Ready" var body: some View { VStack(spacing: 24) { Button("Start") { Task { await start() } }.disabled(running) Button("Stop") { running = false interrupted = false recorder?.stop() status = file.path }.disabled(!running) Button("Play") { do { player = try AVAudioPlayer(contentsOf: file) status = "Saved duration: \(player!.duration) seconds" player?.play() } catch { status = error.localizedDescription } }.disabled(running) Text(status) } .padding() .task { for await notification in NotificationCenter.default.notifications( named: AVAudioSession.didBecomeInactiveNotification, object: session ) { guard running, let context = notification.userInfo?[AVAudioSession.deactivationContextKey] as? AVAudioSession.DeactivationContext, context.source == .system else { continue } recorder?.pause() interrupted = true status = "Interrupted" } } .task { for await notification in NotificationCenter.default.notifications( named: AVAudioSession.resumptionRecommendationNotification, object: session ) { guard running, interrupted, let context = notification.userInfo?[AVAudioSession.resumptionContextKey] as? AVAudioSession.ResumptionContext else { continue } guard context.recommendation == .shouldResume else { interrupted = false continue } do { guard try await session.activate(), running, interrupted else { continue } status = "Resumed: \(recorder!.record())" interrupted = false } catch { status = error.localizedDescription } } } } private func start() async { guard await AVAudioApplication.requestRecordPermission() else { return } do { try session.setCategory(.playAndRecord) guard try await session.activate() else { return } recorder = try AVAudioRecorder(url: file, settings: [ AVFormatIDKey: kAudioFormatMPEG4AAC_HE, AVSampleRateKey: 44_100, AVEncoderBitRateKey: 32_000, AVNumberOfChannelsKey: 2 ]) running = recorder!.record() status = "Recording: \(running)" } catch { status = error.localizedDescription } } }
Replies
0
Boosts
0
Views
428
Activity
1w
App Review Delayed Again After Addressing All Rejection Issues — Waiting for Review for 7+ Days
Hi everyone, I'm looking for advice from developers who have experienced prolonged App Review delays, and hopefully some help from someone at Apple who can look into this situation. My app, Parozo: Restaurant POS & KOT (iOS version 1.0.0), was initially reviewed by Apple, and I received feedback regarding several guidelines: Guidelines 2.3.10 and 2.3.3: App Store screenshots and accurate representation of the app. Guideline 3.1.1: In-app purchases and business subscription functionality. Guideline 4.5.4: Push notification permissions. I carefully reviewed Apple's feedback and made the requested changes. I replaced the screenshots with actual iOS app screenshots, made push notifications optional, and removed plan, pricing, registration, and renewal screens and purchase links from the iOS app to address the subscription-related concerns. I then submitted the updated build 1.0.0 (7) for review on October 16, 2026. However, the submission is still showing “Waiting for Review,” and more than seven days have now passed without the new review process starting or any further communication. I've also contacted Apple Developer Support multiple times regarding these delays. Unfortunately, I haven't received a meaningful response to my previous requests. I submitted another support request yesterday, but the issue remains unresolved. My latest App Review support case is 103003613618. I completely understand that app reviews take time and that Apple must carefully evaluate every submission. I'm not asking for the review guidelines to be bypassed or for special treatment. I have addressed the issues identified in the previous review and simply want to understand why the corrected submission is still waiting and whether any further action is needed from my side. As an independent developer, these repeated delays and the lack of communication make it difficult to plan a product launch, particularly after spending time addressing the feedback provided by App Review. Has anyone experienced a similar situation after fixing all the issues identified by Apple? Did your resubmission eventually move into review, and is there an effective way to get a status update when repeated support requests receive no response? I'd especially appreciate guidance from anyone who has successfully escalated a similar case, or from an Apple representative who can direct me to the appropriate team. Thank you for your time and help.
Replies
1
Boosts
0
Views
82
Activity
1w
How do I upload iPhone Duo screenshots in App Store Connect?
The Screenshot specifications page lists iPhone Duo as an iPhone screenshot size: Outer display: 1398 × 2034 and 2034 × 1398 Inner display: 2007 × 2853 and 2853 × 2007 https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications I cannot find a way to upload them. In App Store Connect, the App Previews and Screenshots device selector on my app's version page does not list iPhone Duo. The only iPhone options are the existing display sizes. In the App Store Connect API, ScreenshotDisplayType has no Duo case. The largest iPhone case is still APP_IPHONE_67. I checked the current reference: https://developer.apple.com/documentation/appstoreconnectapi/screenshotdisplaytype My questions: Where in App Store Connect do I upload iPhone Duo screenshots? If the option is not open yet, is there a ScreenshotDisplayType case for Duo that I should use through the API instead? Thanks.
Replies
5
Boosts
0
Views
1.6k
Activity
1w
Why does CloudKit data field (bytes) take up more (~10 times) iCloud storage than asset field?
I export a small image with size of 100 kilobytes (or less) via CoreData+CloudKit. The image data is then stored in a data field in user's private database. In CloudKit dashboard, it shows that the data size is 100 kilobytes - as it should. The device's local storage increase by 100 kilobytes - as expected. However, I check the user's iCloud storage (in Settings>Apple ID>iCloud>Manage Storage). The app's storage in crease by approximately 1 megabytes. Larger by a factor of 10! I try uploading the same image to a test asset field via CloudKit Dashboard. The user's iCloud storage increase by 100 kilobytes - as expected. Why the data (bytes) field take up more of user's iCloud quota than asset field? I really prefer to directly store as data rather than as a CKAsset. Is this just the way it is... or a bug?
Replies
14
Boosts
5
Views
3.5k
Activity
1w
AlarmKit — system-owned alert timeout and unattended repeat behavior
I am testing a native AlarmKit prototype on a physical iPhone running iOS 27.0.1. The current build uses Xcode 26.6 / iPhoneOS SDK 26.5; a separate successful CI inspection of Xcode 27.0 / iPhoneOS SDK 27.0 found no alerting-timeout or expiry parameter. I use public APIs only. Normal scheduled alarms, manual Stop, and user-triggered countdown snooze work while the phone is locked. A bundled 10-second custom WAV plays, but audible alerting continued beyond 15 seconds until manually stopped. I understand that preAlert/postAlert are countdown intervals and that a sound file's length is not an alert timeout. Is there a supported system-owned setting or architecture to end audible alerting after a configurable duration (for example 10 or 11 seconds), without user interaction, while the app is suspended or not running? If supported, can that timeout transition into another alarm/countdown after a configurable interval, with a bounded repeat count, while Stop cancels the remaining opportunities for the same occurrence? I have not found a documented maximum alerting-duration parameter. I am not seeking a Timer, Task.sleep, background-refresh timing assumption or ongoing background-audio workaround. Preregistering multiple alarms also raises overlap and cleanup issues. If cancellation of preregistered sibling alarms from stopIntent is recommended, what execution guarantees apply when dismissal is via the system Stop UI or a physical button, particularly after reboot before the first unlock? Does AlarmKit provide an atomic system-owned alternative to scheduling the next alarm and then stopping the current one? Please distinguish documented behavior from a best-effort approach. Guidance on whether these requirements need an enhancement request would be helpful.
Replies
2
Boosts
0
Views
146
Activity
1w
iOS: tapping a PWA's Now Playing card opens another installed PWA
On iPhone 14 Pro running iOS 26.7.1 (23H30), tapping the system Now Playing card for an installed Home Screen web app opens a different installed web app. Steps to reproduce: Have multiple Home Screen web apps installed. Play a video with sound in PWA A. Background PWA A and open the system Now Playing UI. Confirm that the card displays PWA A's video, then tap it. Expected: PWA A opens. Actual: another installed PWA opens. This also reproduces in a minimal PWA using a native HTML <video controls playsinline> element with an H.264/AAC video. The page makes no Media Session API calls and has no player SDK or Service Worker. The card was confirmed to show the test video before tapping it. Reported to Apple as FB25262874, with a portable reproduction. The exact cause within iOS has not been established. Is this a known issue with Home Screen web-app launch routing from Now Playing? Is there a supported workaround?
Replies
1
Boosts
0
Views
1.3k
Activity
1w
App waiting for review for 12 days
Hi everyone, We submitted Yutori Kids for review on October 10, and it has been in “Waiting for Review” for 12 days. We also requested an expedited review three days ago but haven’t received an update. Has anyone experienced a similar delay recently? Is there a recommended way to follow up with App Review? Thank you!
Replies
1
Boosts
0
Views
103
Activity
1w
iPhone Duo bug: Popovers presented with their arrow restricted to left/right appear partially offscreen
The following has been reported as FB25281446 I've come across a serious user interface issue on the iPhone Duo when you show a popover with the permitted arrow direction set to only left or right. Here's a screenshot from a test app of a correct popover shown from a form sheet on a fully open iPhone Duo: Here's the same UI after switching the Duo from fully open to partially open: Note how the popover is now partially offscreen. Oddly the toolbar is still kept onscreen. You are unable to scroll to the last rows of the table view. You can replicate this problem by taking the following steps: 1) Create a new Storyboard/Swift app with Xcode 27.2 RC 2) Edit the Main storyboard by removing the default view controller 3) Add a navigation controller (and its default root view controller) 4) Set the navigation controller as the initial view controller 5) Replace the contents of the default ViewController.swift file with the following code: ```swift import UIKit class ViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() let showPopover = UIBarButtonItem() // Show the view controller as a popover let action = UIAction(title: "Popover", handler: { _ in let vc = ViewController() let nc = UINavigationController(rootViewController: vc) nc.modalPresentationStyle = .popover nc.popoverPresentationController?.sourceItem = showPopover nc.popoverPresentationController?.permittedArrowDirections = .any self.present(nc, animated: true) }) showPopover.primaryAction = action self.navigationItem.rightBarButtonItem = showPopover // Show the view controller in a form sheet let showFormSheet = UIBarButtonItem() let action2 = UIAction(title: "FormSheet", handler: { _ in let vc = ViewController() // Applying a preferred content size affects the results in one // case - the popover works correctly when the Duo is fully open // in portrait and you show a popover from a form sheet. //vc.preferredContentSize = .init(width: 540, height: 620) let nc = UINavigationController(rootViewController: vc) nc.modalPresentationStyle = .formSheet self.present(nc, animated: true) }) showFormSheet.primaryAction = action2 self.navigationItem.leftBarButtonItem = showFormSheet // Show some dummy toolbar items to help demonstrate the issue self.navigationController?.isToolbarHidden = false self.toolbarItems = [ UIBarButtonItem(systemItem: .add), UIBarButtonItem.flexibleSpace(), UIBarButtonItem(systemItem: .action), ] } } extension ViewController { override func numberOfSections(in tableView: UITableView) -> Int { return 1 } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 20 } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell") ?? UITableViewCell(style: .subtitle, reuseIdentifier: "cell") cell.textLabel?.text = "Row \(indexPath.row)" cell.detailTextLabel?.text = "Tap me to show popover" return cell } // Show a popover from a selected cell. The popover will appear partially // offscreen under the following conditions: // - When the Duo is fully open and landscape: // - A row near the bottom of the root view controller is selected. // - When the Duo is fully open and portrait: // - A row near the bottom of the root view controller is selected. // - A row near the bottom of a form sheet is selected (unless the form // sheet has a preferredContentSize set). // - When the Duo is partially open and landscape or portrait: // - A row near the bottom of the root view controller is selected. // - A row near the bottom of a form sheet is selected. // - If you then fully open the Duo, the partially offscreen popover // moves into the correct, fully visible position. // Note that the toolbar of the partially offscreen popover stays on screen. // // There are no issues when the Duo is closed. override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { if let cell = tableView.cellForRow(at: indexPath) { let vc = ViewController() let nc = UINavigationController(rootViewController: vc) nc.modalPresentationStyle = .popover nc.popoverPresentationController?.sourceItem = cell // The problem only happens if the arrow is limited to left or right nc.popoverPresentationController?.permittedArrowDirections = [ .left, .right ] self.present(nc, animated: true) } } } ``` 6) In the Main storyboard, change the root view controller's class to ViewController 7) Build and run the app against an iPhone Duo running iOS 27.2 RC You can now replicate the two screenshots by fully opening the Duo and putting it in landscape. Then do the following: 1) Tap the FormSheet button 2) In the form sheet table, select a row near the bottom of the form sheet 3) Note the popover appears correctly with an arrow on the right side pointing to the selected row 4) Now put the iPhone Duo in the partially open mode (still landscape) 5) Note the problem. The popover moves partially offscreen. You can’t even scroll to the last row. The popover show remain fully onscreen and of reasonable height just like it was when the Duo was fully open. As noted in the ViewController.swift file, the issue appears under the following conditions: - When the Duo is fully open and landscape: - A row near the bottom of the root view controller is selected. - When the Duo is fully open and portrait: - A row near the bottom of the root view controller is selected. - A row near the bottom of a presented form sheet is selected (unless the form sheet has a preferredContentSize set). - When the Duo is partially open and landscape or portrait: - A row near the bottom of the root view controller is selected. - A row near the bottom of a presented form sheet is selected. - If you then fully open the Duo, the partially offscreen popover moves into the correct, fully visible position.
Replies
1
Boosts
0
Views
333
Activity
1w
iPhone Duo Simulator is missing the usual apps
Using Xcode 27.1 RC, the iPhone Duo simulator (Device Hub) only comes with the Settings and Safari apps. Am I missing something? Are there plans to have the usual simulator apps such as Photos, Calendar, Reminders, Maps, etc.? In these early stages it would be really nice to have some real apps to look at for examples of how some things should work/appear on the Duo in different layouts.
Replies
5
Boosts
2
Views
1.2k
Activity
1w
Day 14 - "in review" state
So it seems there are others experiencing delays with app submissions and I wanted to add my experience so far. I've been waiting 14 days now while the app submitted is "in review". Has anyone actually gotten an app successfully reviewed in the past 1-2 weeks for iOS? We were trying to meet a launch date, but it doesn't seem like this will happen...Apple states that 90% of reviews are completed within 24 hours, this seems to be a far stretch at the moment.
Replies
11
Boosts
3
Views
798
Activity
1w
Is it no longer possible in Xcode 27.1 to run/debug Apps on an iPhone X?
I've still an old iPhone X (running iOS 16.7.16) and like to also use this to test/debug my Apps, but it seems that XCode 27.1 does no longer support it. The device simply does not show up in the new Device Hub. I still have some App-specific data on this device, which I would like to use for the tests, but as XCode now ignores this device, I can't even copy the data over to the newer devices. Is it somhoe possible to add the device to the device Hub, or make it available to XCode so I can actually test on this device as well?
Replies
2
Boosts
0
Views
174
Activity
1w
iOS and Android
I currently have a iOS app live on the App Store but I also want to release it on Android, the whole code is in Swift so would that be possible or would I have to rewrite my whole apps code in a different coding language.
Replies
3
Boosts
0
Views
3.9k
Activity
1w
Dora - AI Video Generator (Apple ID 1604739131) stuck in review
Hi Apple team, Our latest version of Dora - AI Video Generator (Apple ID: 1604739131) has been sitting in “In Review” for a while now, and I wanted to check if something’s wrong with the submission. We submitted it on Oct 14, 2026 at 10:32 AM, and it’s still not done. Our updates usually get through in a day or two, so this is way out of the ordinary for us. If there’s an issue on our end, just let us know and we’ll fix it right away. If not, we’d really appreciate any help moving the review along. Thanks so much for your help! Best, Smart Widget Labs Team
Replies
0
Boosts
0
Views
64
Activity
1w
iOS 27: PDFDocument.dataRepresentation() writes corrupt 16-bpc annotation images (half the data missing)
Since iOS/iPadOS 27.0, saving a PDF with PDFDocument.dataRepresentation() produces a corrupt file when a page contains a PDFAnnotation subclass that overrides draw(with:in:) and draws a 16-bits-per-component image. The same code works correctly on iOS 26.4. Filed as FBxxxxxxxx. What happens: The annotation is written with /AAPL:AKExtras, and its appearance (/AP) references an image XObject declared as /BitsPerComponent 16 (RGB). The image stream contains only half of the required data (8-bpc worth). Example: 1429 x 2021 image. Required: 17,328,054 bytes. Actual: 8,664,027 bytes. Adobe Acrobat reports "Insufficient data for an image". Other viewers read the 8-bpc data as 16-bpc, so the drawing is squeezed into the upper half of the page and the lower half is empty. In PDFKit, colors may turn black. The problem is in the writing step: a PDF written on iOS 27.0 is broken everywhere, while a PDF written on iOS 26.4 opens correctly on iOS 27.0. How to reproduce: Create a 16-bpc image with UIGraphicsImageRenderer (preferredRange = .extended, or the default format on a wide-color device). Add a PDFAnnotation subclass whose draw(with:in:) draws that image with context.draw(cgImage, in: bounds). Call dataRepresentation() and reopen the result. Current workaround: Create the image with an 8-bpc standard-range format before drawing it in the annotation: let format = UIGraphicsImageRendererFormat.preferred() format.preferredRange = .standard // 8 bpc, sRGB let renderer = UIGraphicsImageRenderer(size: size, format: format) With this, the declared bit depth and the data length match, and the PDF is valid on iOS 27.0. However, this gives up 16-bpc / wide-color output, so I would prefer a solution that keeps the original image quality. Possibly related: FB24882188 / FB24843022 (iOS 27 regression in PDFAnnotation subclasses that override draw(with:in:)). Questions: Does anyone know a way to avoid this issue without downgrading the image to 8 bpc? For example, a different way to create or attach the annotation appearance so that PDFKit on iOS 27 writes the 16-bpc data correctly. Has anyone else seen this, or confirmed whether it is fixed in a later iOS 27 release?
Replies
2
Boosts
0
Views
253
Activity
1w
Swipe to go back still broken with Zoom navigation transition.
When you use .navigationTransition(.zoom(sourceID: "placeholder", in: placehoder)) for navigation animation, going back using the swipe gesture is still very buggy on IOS26. I know it has been mentioned in other places like here: https://developer.apple.com/forums/thread/796805?answerId=856846022#856846022 but nothing seems to have been done to fix this issue. Here is a video showing the bug comparing when the back button is used vs swipe to go back: https://imgur.com/a/JgEusRH I wish there was a way to at least disable the swipe back gesture until this bug is fixed.
Replies
12
Boosts
4
Views
3.5k
Activity
1w
Approved versions show “Ready for Distribution” for 7 days but App Store still serves the old version
My last two approved versions of my app are showing "Ready for Distribution" in App Store Connect, but none of the storefronts lets the user gets the latest update. Here's what happened 0.13.1 (build 49) was approved on 13 October. The release type was “Automatically release after approval”. The state is READY_FOR_SALE with downloadable = true, and no phased release is set. 0.13.2 (build 50) was approved on 18 October with the same release type. It is also Ready for Distribution. The App Store and Apple’s public lookup API (itunes.apple.com/lookup?bundleId=…) still return 0.11.0 (released 3 October, minimum iOS 17.6). I checked the US, IN, GB, CA, AU, DE, SG and AE storefronts. It is not a device issue. iPhones on iOS 18.2 and iOS 27 also show 0.11.0 as the latest version. Impact Our iOS users cannot get the new version. The in-app update prompt sends them to a store page that offers only 0.11.0. We had to turn off open challenge events that need the new version, so users cannot join them. This release introduces new in-app purchases, including an annual plan with a free trial, so the delay also affects our revenue. The app ID is 6760958527. I opened Apple Developer Support case 102996444113 and have not had a reply yet. Has anyone seen a release stay stuck like this for days? Is there anything on the developer side that I should check or try? I would be grateful for any pointers.
Replies
0
Boosts
0
Views
98
Activity
1w
Is per-app network blocking possible for a consumer iOS App Store app?
Hi Apple engineers and developers, I am developing a consumer digital-wellbeing app called Ghostie and am trying to determine the correct Apple-supported architecture for its iOS version before continuing implementation. Ghostie's core functionality is to let the user temporarily disconnect selected third-party apps from the Internet while keeping the rest of the device online. For example: WhatsApp: blocked Instagram: blocked Slack: blocked Maps: remains online Banking: remains online Music: remains online On Android, this is implemented using VpnService with per-app traffic handling. For iOS, I have been researching Network Extension, including: NEFilterDataProvider / NEFilterControlProvider content-filter-provider NETunnelProvider / packet-tunnel-provider per-app VPN configurations Apple's current documentation appears to indicate restrictions around per-app configurations and content filtering on iOS, including managed/supervised-device requirements in certain cases. My question is specifically about a normal consumer application distributed through the App Store, where the user owns and controls their personal device and Ghostie is not an MDM/enterprise product. Is there currently an Apple-supported API, entitlement, or Network Extension architecture that would allow Ghostie to: identify selected installed third-party apps; prevent those selected apps from establishing network connections; leave all other apps' network connectivity unaffected; and allow the user to turn this blocking on and off from Ghostie? If this is not possible for an ordinary consumer App Store application, could an Apple engineer please confirm which specific iOS restriction prevents it and whether there is any alternative supported architecture? I am trying to establish the technically and commercially viable architecture before implementing the iOS version. Thank you!
Replies
2
Boosts
0
Views
157
Activity
1w
Moonbase stuck "In Review" since Sep 30, Case ID 102991282893 unanswered
Our app submission has stayed in "In Review" for 13 days. App Store Connect shows no messages or information requests. App: Moonbase Apple ID: 6749696944 Version: iOS 01.72 Submission ID: 07aa173f-9001-4368-9d57-168d4d3c6027 Submitted: Sep 30, 2026 Support case 102991282893, opened Oct 9, no reply yet We've provided a demo account and review notes in App Review Information. Can App Review confirm the submission is progressing, or tell us what you need from us? Thank you.
Replies
1
Boosts
0
Views
526
Activity
1w