Overview

Post

Replies

Boosts

Views

Activity

iOS 26.2 RC DeviceActivityMonitor.eventDidReachThreshold regression?
Hi there, Starting with iOS 26.2 RC, all my DeviceActivityMonitor.eventDidReachThreshold get activated immediately as I pick up my iPhone for the first time, two nights in a row. Feedback: FB21267341 There's always a chance something odd is happening to my device in particular (although I can't recall making any changes here and the debug logs point to the issue), but just getting this out there ASAP in case others are seeing this (or haven't tried!), and it's critical as this is the RC. DeviceActivityMonitor.eventDidReachThreshold issues also mentioned here: https://developer.apple.com/forums/thread/793747; but I believe they are different and were potentially fixed in iOS 26.1, but it points to this part of the technology having issues and maybe someone from Apple has been tweaking it.
29
8
5.3k
38m
Distinguishing background from user app launches
When adopting the Scene Delegate, the applicationState changes from indicating app state to indicating scene state. I previously used this as a signal to determine whether my iOS app was launched in the background or launched by the user. Given the change, it seems like applicationState should no longer be used in that manner in the App Delegate. Would you recommend using UIApplication.shared.backgroundTimeRemaining to distinguish a background launch from a user launch? assuming this is a very large value for user launches. Are there corner cases that I may not expect?
1
0
19
1h
Previously created workflows migrate to the newest project where I created a workflow...
When I use Xcode to create an Xcode Cloud workflow through Xcode > Integrate > Create Workflow for App A, and later create another workflow for App B, both workflows appear only under App B in App Store Connect, under App B > Xcode Cloud > Builds. I would expect the first workflow to remain associated with and visible only under App A, while the second workflow should be associated with and visible only under App B. This worked as expected previously, but the behavior appears to have changed recently, and it is now causing my builds to fail.
0
0
13
1h
App Review eligibility and account requirement for local domain blocking using NEPacketTunnelProvider
I previously asked in the Network Extension forum about the supported architecture for local, user-controlled domain blocking on unmanaged consumer iPhones. Apple Developer Technical Support explained that using NEPacketTunnelProvider for a purpose other than a VPN is not a DTS-supported use case. DTS also noted that App Review has the final say regarding what may or may not be distributed through the App Store and directed me to App Review for clarification. URL Filters do not provide the intended device-wide domain visibility and user-controlled blocking. At the same time, the deployment restrictions described in TN3134 prevent the use of the relevant content-filtering provider types on unmanaged consumer iPhones. The proposed app is a consumer privacy and security app. It would use NEPacketTunnelProvider to identify destination domains locally and allow the user to block selected domains. The app would not provide a remote VPN service. Network traffic would not be routed to a remote VPN endpoint, and the app would not offer location changing, anonymous browsing, IP address masking, or access to a private network. My questions are: Would this use of NEPacketTunnelProvider be eligible for distribution on the App Store, even though DTS does not support this packet tunnel use case? Would App Review classify this as a VPN service, or could it be classified as a security or content-blocking app under App Store Review Guideline 5.4? If it is classified as a security or content-blocking app rather than a VPN service, may it be submitted by an individual Apple Developer Program member, or is enrollment as an organization required? I understand that a forum response cannot guarantee approval of a future submission. I am trying to clarify the likely classification and account requirement before proceeding with further development.
0
0
23
2h
Apple Developer enrollment stuck for a month — passport upload fails immediately in the app
I’m trying to complete my Apple Developer Program enrollment, and I’ve now been stuck in this process for about a month. The main issue is that the passport upload step in the Apple Developer app fails almost immediately every time with the same error, so I can’t complete identity verification and move forward. I’ve already gone through a very long back-and-forth with Apple Developer Support. At first, my enrollment through the website failed, and I was told to continue through the Apple Developer app instead. Then I ran into the passport upload issue in the app. Support asked me to upload identification documents through secure links, and I uploaded the requested documents, including my passport. I also updated my Apple Account name to match my official identification. During this process, one support representative, James, was helping me and there was a lot of back-and-forth. At one point it seemed like the case was being escalated and moving somewhere, but after that the responses became slower and then basically stopped. Since then I’ve been left waiting without a clear resolution, even though I’ve tried to follow every instruction carefully. This has become really frustrating and exhausting. I’m not trying to do anything unusual — I’m just trying to enroll in the Apple Developer Program so I can publish my app, and instead I’ve been stuck in a loop for weeks. Has anyone here had the passport upload fail immediately in the Apple Developer app, especially after already providing documents directly to Apple Support? Did anything help move the case forward? Thanks a lot.
1
2
70
2h
TestFlight app sorting changed to alphabetical
The new search bar in TestFlight is a welcome addition—thank you! However, apps now appear to be sorted alphabetically instead of by their latest update. This makes it much harder to find newly updated builds, especially when testing many apps (we have >100). Could you please restore sorting by most recently updated, or add an option to choose the sorting method?
1
1
68
2h
Cannot get StoreKit products on watchOS
I'm using Product.products(for:) to get my auto-renewable subscription on watchOS: let products = try await Product.products(for: [<##Identifier##>]) However, it doesn't return any value, and doesn't throw errors. The console shows an error: Could not parse product: missingValue(for: [StoreKit.ProductResponse.Key.billingPlanType], expected: StoreKit.BackingValue) Is this a bug or I did't configure something well? This product has been approved by App Review.
2
1
325
2h
CarPlay: Is vehicle microphone capture without entering communications audio mode supported for third-party apps?
Hello, I am developing a native CarPlay application and would appreciate some clarification regarding AVAudioSession behaviour when using the vehicle microphone. The application is intentionally simple and designed to minimise driver distraction. The user presses a single button on the CarPlay screen, the application performs a brief (approximately five second) audio capture, performs application-specific processing on the captured audio, displays a simple confirmation to the user, and immediately releases the audio session. The goal is to allow the driver to continue their journey with as little interaction as possible. Because the audio being captured is often originating from the vehicle’s native DAB/FM radio rather than from the iPhone itself, preserving the existing listening experience during the brief capture is fundamental to the intended design. To better understand what is supported by CarPlay, I have carried out a number of controlled experiments. Test Environment Native CarPlay application Swift AVFoundation AVAudioSession AVAudioRecorder Vehicle connected via CarPlay Vehicle playing its native DAB radio Experiment 1 Configuration Category: AVAudioSession.Category.playAndRecord Mode: AVAudioSession.Mode.default Observed Route Input: CarPlay — CarAudio Output: CarPlay — CarAudio Result Recording succeeds using the vehicle microphone. Native DAB audio is muted during recording. The vehicle changes from “Audio Volume” to “Voice Volume”. When recording finishes and the AVAudioSession is deactivated, DAB resumes normally. Experiment 2 Changed only the session mode to: AVAudioSession.Mode.measurement Result Behaviour was identical to Experiment 1. Experiment 3 Changed only the session mode to: AVAudioSession.Mode.videoRecording Observed Route Input: iPhone microphone Output: CarPlay — CarAudio Result Input automatically switched from the vehicle microphone to the iPhone microphone. The vehicle remained in normal “Audio Volume”. However, the head unit switched away from its native DAB source to the CarPlay media source. Observation These experiments appear to suggest that the behaviour is specifically related to using the CarPlay “CarAudio” microphone route, rather than audio recording itself. Question Is this the expected behaviour for third-party CarPlay applications? More specifically: Is there any supported AVAudioSession configuration or CarPlay API that allows a third-party CarPlay application to perform a brief, user-initiated audio capture using the vehicle microphone without causing the head unit to enter its communications/voice audio mode or interrupt the vehicle’s native radio playback? If this behaviour is by design and no supported mechanism exists to achieve this, confirmation of that would be extremely valuable, as it would allow us to design the application accordingly. If additional information, sample code, AVAudioSession logs or detailed reproduction steps would be helpful, I would be more than happy to provide them. Thank you very much for your time. Kind regards, Neil Jenner Developer, HearSave
1
0
37
3h
Age related ansers required before review
I have a multi-platform app in the review process. Two versions are in review. When I submitted the third one, for iOS, the system is asking me to answer the age related questions. The answers are the same as for the other platform versions but the 'SAVE' button is grayed out so the only option I have is cancel. That was a few minutes ago. Now there is an edited button and a View button on the App Information page. But, it still won't let me submit for review. I must be missing something but I can't see it.
0
0
28
4h
Storekit, how to change and retrieve current user storefront
I've been struggling to work with the Storekit framework and specifically to find the current Storefront used by the user of the app. Context : My app needs to behave differently depending on the country of the user. For me relying on Locale.current.region?.identifier does not seem very reliable, the user can change it really easily. I'm trying to use the Storekit framework like so : if let storefront = await StoreKit.Storefront.current{ return storefront.countryCode } As per Apple's Storekit documentation : Use current to determine a customer's current storefront region and offer in-app products suitable for that region. You maintain your own list of product identifiers and the storefronts in which you make them available. But I just can't find out what I need to change in my current configuration to get another country. The code keeps returning my original storefront (which is France) I've tried login in with a sandbox user defined on another country. Changed all settings on my device to another country. Changed my Apple's account region as described here. Also tried to logout from everything. The only thing that works is setting a local .storekit file as described here and changing the default storefront. Is Xcode overriding the default storefront when building on debug or TestFlight? does anyone know how can I test different storefronts with sandbox users without the local storekit file ? Thank you in advance.
4
2
786
4h
Device Hub sucks
Or maybe I suck? Is there really no way with the new Xcode to take a simple screenshot from the device you're testing?You have to connect this Device Hub? An entirely separate app. And not only that, then you have to pair it, which maintains a live connection to the phone? Fine. Okay then. But now I can no longer test the microphone functions of my app because that shared session is interfering with it. Oh, well, I'll just disconnect the session then, right? Nope. The button to disconnect the session doesn't work. Device Hub thinks it's disconnected, but my phone still shows the blue sharing session icon in the upper left hand corner. The only way to stop that is to unpair the phone completely. So then every time I want to take a screenshot, I've got to do this pairing crap? I think I'll be running a second copy of Xcode 26 for quite a while just to use the screenshot button.
5
0
222
4h
ProResRAW shooting issue with AVCaptureMovieFileOutput with the first video
On iOS 26, the first ProRes RAW recording after launching the app consistently stalls for the entire take: audio records normally, but video contains only a few frames (for example, an 11.8-second clip at approximately 0.25 fps instead of 30 fps). Every subsequent recording works correctly. Before startRecording, the Bayer format is active, ProRes RAW is available, white balance is locked, and frame duration is pinned to 1/30. Reordering setOutputSettings and reasserting configuration have not resolved it; only discarding the first recording acts as a reliable warm-up. Is this a known one-time ProRes RAW encoder initialisation issue, and is there a supported way to prepare the encoder before the first user takes? I have a full working sample code if anyone needs but here is the setup function: import CoreMedia import CoreVideo @available(iOS 26.0, *) final class ProResRAWRecorder: NSObject, AVCaptureFileOutputRecordingDelegate { let session = AVCaptureSession() private let movieOutput = AVCaptureMovieFileOutput() private var camera: AVCaptureDevice! // Call on a serial capture queue. func configure() throws { session.beginConfiguration() defer { session.commitConfiguration() } session.sessionPreset = .inputPriority session.automaticallyConfiguresCaptureDeviceForWideColor = false guard let device = AVCaptureDevice.default( .builtInWideAngleCamera, for: .video, position: .back ) else { throw SampleError.noCamera } let cameraInput = try AVCaptureDeviceInput(device: device) guard session.canAddInput(cameraInput) else { throw SampleError.cannotAddInput } session.addInput(cameraInput) camera = device // Optional, but reproduces the real topology where audio remains healthy. if let microphone = AVCaptureDevice.default(for: .audio), let microphoneInput = try? AVCaptureDeviceInput(device: microphone), session.canAddInput(microphoneInput) { session.addInput(microphoneInput) } // Find a 12-bit packed Bayer format supporting 30 fps. guard let rawFormat = device.formats .filter({ CMFormatDescriptionGetMediaSubType($0.formatDescription) == kCVPixelFormatType_96VersatileBayerPacked12 && $0.videoSupportedFrameRateRanges.contains { $0.minFrameRate <= 30 && $0.maxFrameRate >= 30 } }) .max(by: { let a = CMVideoFormatDescriptionGetDimensions($0.formatDescription) let b = CMVideoFormatDescriptionGetDimensions($1.formatDescription) return Int(a.width) * Int(a.height) < Int(b.width) * Int(b.height) }) else { throw SampleError.noRAWFormat } try device.lockForConfiguration() device.activeFormat = rawFormat if rawFormat.supportedColorSpaces.contains(.appleLog) { device.activeColorSpace = .appleLog } let frameDuration = CMTime(value: 1, timescale: 30) device.activeVideoMinFrameDuration = frameDuration device.activeVideoMaxFrameDuration = frameDuration if device.isWhiteBalanceModeSupported(.locked) { device.whiteBalanceMode = .locked } device.unlockForConfiguration() guard session.canAddOutput(movieOutput) else { throw SampleError.cannotAddOutput } session.addOutput(movieOutput) session.startRunning() } // Call on the same serial capture queue after startRunning() returns. func record(to url: URL) throws { guard let connection = movieOutput.connection(with: .video) else { throw SampleError.noVideoConnection } // Reassert the required device state at the take boundary. try camera.lockForConfiguration() if camera.isWhiteBalanceModeSupported(.locked) { camera.whiteBalanceMode = .locked } let frameDuration = CMTime(value: 1, timescale: 30) camera.activeVideoMinFrameDuration = frameDuration camera.activeVideoMaxFrameDuration = frameDuration camera.unlockForConfiguration() guard movieOutput.availableVideoCodecTypes.contains(.proResRAW) else { throw SampleError.rawCodecUnavailable } movieOutput.setOutputSettings( [AVVideoCodecKey: AVVideoCodecType.proResRAW], for: connection ) movieOutput.startRecording(to: url, recordingDelegate: self) } func stop() { if movieOutput.isRecording { movieOutput.stopRecording() } } func fileOutput( _ output: AVCaptureFileOutput, didFinishRecordingTo outputFileURL: URL, from connections: [AVCaptureConnection], error: Error? ) { print("Finished:", outputFileURL, "error:", error as Any) } enum SampleError: Error { case noCamera case cannotAddInput case noRAWFormat case cannotAddOutput case noVideoConnection case rawCodecUnavailable } }
1
0
38
5h
Review Delay
Hello community. I have created an app for hunters and the season is just about to start (late August), the app has been seat in Waiting for Review for a whole week. I read about it and Apple says the 90% of the apps gets review on the first 24 hours. Does anybody knows how to speed up this process ? I already paid for the campaign and people is asking when the app is going to be ready. It is a paid service and I was hoping to be fast enough, but I think the unlucky 10% is actually bigger !
1
1
100
5h
Does submitting a new version interrupt the phased release of the currently live version?
We currently have version 1.2.0 live and in the middle of its 7-day phased release (automatic updates), currently around the 5% stage. We now want to submit version 1.3.0. I want to confirm the exact behavior before we submit, because I've heard conflicting claims internally. My understanding is: Submitting 1.3.0 for review does NOT affect 1.2.0's ongoing phased release. 1.2.0 continues ramping (10% -> 20% -> 50% -> 100%) undisturbed while 1.3.0 is in review. If 1.3.0 is set to "Manually release this version," it will sit in "Pending Developer Release" after approval and still not affect 1.2.0's rollout -- nothing changes until I actively release it. Only when I tap "Release" on 1.3.0 does 1.2.0's phased release stop, at which point 1.3.0 begins its own phased release from 1%. If 1.3.0 were instead set to "Automatically release this version," it would go live the moment Apple approves it and would interrupt 1.2.0's rollout at that point. Questions: Is the above correct? Specifically, does the act of submitting/approving a new version have any effect on the currently live version's phased rollout, or is the rollout only ever interrupted by the release action? When 1.3.0 is released and 1.2.0's phased release is interrupted, what happens to the users who had not yet received 1.2.0 via automatic update? Do they get queued for 1.3.0 instead? Thanks in advance for clarifying.
0
0
33
5h
Agents in Xcode: Codex Sign In not working
Hey all, the codex sign in isn't working for me in Agents. I am using the 26.5 release candidate version. It always says "Not Signed In". I have completed the Sign In process multiple times. Anyone else seeing this? I have filed Feedback FB22732574
Replies
37
Boosts
6
Views
2.7k
Activity
2m
iOS 26.2 RC DeviceActivityMonitor.eventDidReachThreshold regression?
Hi there, Starting with iOS 26.2 RC, all my DeviceActivityMonitor.eventDidReachThreshold get activated immediately as I pick up my iPhone for the first time, two nights in a row. Feedback: FB21267341 There's always a chance something odd is happening to my device in particular (although I can't recall making any changes here and the debug logs point to the issue), but just getting this out there ASAP in case others are seeing this (or haven't tried!), and it's critical as this is the RC. DeviceActivityMonitor.eventDidReachThreshold issues also mentioned here: https://developer.apple.com/forums/thread/793747; but I believe they are different and were potentially fixed in iOS 26.1, but it points to this part of the technology having issues and maybe someone from Apple has been tweaking it.
Replies
29
Boosts
8
Views
5.3k
Activity
38m
delete
delete
Replies
0
Boosts
0
Views
16
Activity
1h
Distinguishing background from user app launches
When adopting the Scene Delegate, the applicationState changes from indicating app state to indicating scene state. I previously used this as a signal to determine whether my iOS app was launched in the background or launched by the user. Given the change, it seems like applicationState should no longer be used in that manner in the App Delegate. Would you recommend using UIApplication.shared.backgroundTimeRemaining to distinguish a background launch from a user launch? assuming this is a very large value for user launches. Are there corner cases that I may not expect?
Replies
1
Boosts
0
Views
19
Activity
1h
Previously created workflows migrate to the newest project where I created a workflow...
When I use Xcode to create an Xcode Cloud workflow through Xcode > Integrate > Create Workflow for App A, and later create another workflow for App B, both workflows appear only under App B in App Store Connect, under App B > Xcode Cloud > Builds. I would expect the first workflow to remain associated with and visible only under App A, while the second workflow should be associated with and visible only under App B. This worked as expected previously, but the behavior appears to have changed recently, and it is now causing my builds to fail.
Replies
0
Boosts
0
Views
13
Activity
1h
App Review eligibility and account requirement for local domain blocking using NEPacketTunnelProvider
I previously asked in the Network Extension forum about the supported architecture for local, user-controlled domain blocking on unmanaged consumer iPhones. Apple Developer Technical Support explained that using NEPacketTunnelProvider for a purpose other than a VPN is not a DTS-supported use case. DTS also noted that App Review has the final say regarding what may or may not be distributed through the App Store and directed me to App Review for clarification. URL Filters do not provide the intended device-wide domain visibility and user-controlled blocking. At the same time, the deployment restrictions described in TN3134 prevent the use of the relevant content-filtering provider types on unmanaged consumer iPhones. The proposed app is a consumer privacy and security app. It would use NEPacketTunnelProvider to identify destination domains locally and allow the user to block selected domains. The app would not provide a remote VPN service. Network traffic would not be routed to a remote VPN endpoint, and the app would not offer location changing, anonymous browsing, IP address masking, or access to a private network. My questions are: Would this use of NEPacketTunnelProvider be eligible for distribution on the App Store, even though DTS does not support this packet tunnel use case? Would App Review classify this as a VPN service, or could it be classified as a security or content-blocking app under App Store Review Guideline 5.4? If it is classified as a security or content-blocking app rather than a VPN service, may it be submitted by an individual Apple Developer Program member, or is enrollment as an organization required? I understand that a forum response cannot guarantee approval of a future submission. I am trying to clarify the likely classification and account requirement before proceeding with further development.
Replies
0
Boosts
0
Views
23
Activity
2h
Apple Developer enrollment stuck for a month — passport upload fails immediately in the app
I’m trying to complete my Apple Developer Program enrollment, and I’ve now been stuck in this process for about a month. The main issue is that the passport upload step in the Apple Developer app fails almost immediately every time with the same error, so I can’t complete identity verification and move forward. I’ve already gone through a very long back-and-forth with Apple Developer Support. At first, my enrollment through the website failed, and I was told to continue through the Apple Developer app instead. Then I ran into the passport upload issue in the app. Support asked me to upload identification documents through secure links, and I uploaded the requested documents, including my passport. I also updated my Apple Account name to match my official identification. During this process, one support representative, James, was helping me and there was a lot of back-and-forth. At one point it seemed like the case was being escalated and moving somewhere, but after that the responses became slower and then basically stopped. Since then I’ve been left waiting without a clear resolution, even though I’ve tried to follow every instruction carefully. This has become really frustrating and exhausting. I’m not trying to do anything unusual — I’m just trying to enroll in the Apple Developer Program so I can publish my app, and instead I’ve been stuck in a loop for weeks. Has anyone here had the passport upload fail immediately in the Apple Developer app, especially after already providing documents directly to Apple Support? Did anything help move the case forward? Thanks a lot.
Replies
1
Boosts
2
Views
70
Activity
2h
Unable to verify identity with Passport of State ID
Hi, I need to sign up for the developer program to test apps for iOS and VisionOS. I have tried uploading my NY State ID and Passport multiple times. Please help.
Replies
1
Boosts
1
Views
276
Activity
2h
TestFlight app sorting changed to alphabetical
The new search bar in TestFlight is a welcome addition—thank you! However, apps now appear to be sorted alphabetically instead of by their latest update. This makes it much harder to find newly updated builds, especially when testing many apps (we have >100). Could you please restore sorting by most recently updated, or add an option to choose the sorting method?
Replies
1
Boosts
1
Views
68
Activity
2h
Cannot get StoreKit products on watchOS
I'm using Product.products(for:) to get my auto-renewable subscription on watchOS: let products = try await Product.products(for: [<##Identifier##>]) However, it doesn't return any value, and doesn't throw errors. The console shows an error: Could not parse product: missingValue(for: [StoreKit.ProductResponse.Key.billingPlanType], expected: StoreKit.BackingValue) Is this a bug or I did't configure something well? This product has been approved by App Review.
Replies
2
Boosts
1
Views
325
Activity
2h
CarPlay: Is vehicle microphone capture without entering communications audio mode supported for third-party apps?
Hello, I am developing a native CarPlay application and would appreciate some clarification regarding AVAudioSession behaviour when using the vehicle microphone. The application is intentionally simple and designed to minimise driver distraction. The user presses a single button on the CarPlay screen, the application performs a brief (approximately five second) audio capture, performs application-specific processing on the captured audio, displays a simple confirmation to the user, and immediately releases the audio session. The goal is to allow the driver to continue their journey with as little interaction as possible. Because the audio being captured is often originating from the vehicle’s native DAB/FM radio rather than from the iPhone itself, preserving the existing listening experience during the brief capture is fundamental to the intended design. To better understand what is supported by CarPlay, I have carried out a number of controlled experiments. Test Environment Native CarPlay application Swift AVFoundation AVAudioSession AVAudioRecorder Vehicle connected via CarPlay Vehicle playing its native DAB radio Experiment 1 Configuration Category: AVAudioSession.Category.playAndRecord Mode: AVAudioSession.Mode.default Observed Route Input: CarPlay — CarAudio Output: CarPlay — CarAudio Result Recording succeeds using the vehicle microphone. Native DAB audio is muted during recording. The vehicle changes from “Audio Volume” to “Voice Volume”. When recording finishes and the AVAudioSession is deactivated, DAB resumes normally. Experiment 2 Changed only the session mode to: AVAudioSession.Mode.measurement Result Behaviour was identical to Experiment 1. Experiment 3 Changed only the session mode to: AVAudioSession.Mode.videoRecording Observed Route Input: iPhone microphone Output: CarPlay — CarAudio Result Input automatically switched from the vehicle microphone to the iPhone microphone. The vehicle remained in normal “Audio Volume”. However, the head unit switched away from its native DAB source to the CarPlay media source. Observation These experiments appear to suggest that the behaviour is specifically related to using the CarPlay “CarAudio” microphone route, rather than audio recording itself. Question Is this the expected behaviour for third-party CarPlay applications? More specifically: Is there any supported AVAudioSession configuration or CarPlay API that allows a third-party CarPlay application to perform a brief, user-initiated audio capture using the vehicle microphone without causing the head unit to enter its communications/voice audio mode or interrupt the vehicle’s native radio playback? If this behaviour is by design and no supported mechanism exists to achieve this, confirmation of that would be extremely valuable, as it would allow us to design the application accordingly. If additional information, sample code, AVAudioSession logs or detailed reproduction steps would be helpful, I would be more than happy to provide them. Thank you very much for your time. Kind regards, Neil Jenner Developer, HearSave
Replies
1
Boosts
0
Views
37
Activity
3h
Regression in Unicode handling in Xcode 27 text editor
Emoji handling (usually a sign of underlying Unicode bugs) is broken in Xcode 27, all betas: The issue doesn't exist in previous Xcode source editors. FB23969935
Replies
1
Boosts
0
Views
21
Activity
3h
Age related ansers required before review
I have a multi-platform app in the review process. Two versions are in review. When I submitted the third one, for iOS, the system is asking me to answer the age related questions. The answers are the same as for the other platform versions but the 'SAVE' button is grayed out so the only option I have is cancel. That was a few minutes ago. Now there is an edited button and a View button on the App Information page. But, it still won't let me submit for review. I must be missing something but I can't see it.
Replies
0
Boosts
0
Views
28
Activity
4h
Storekit, how to change and retrieve current user storefront
I've been struggling to work with the Storekit framework and specifically to find the current Storefront used by the user of the app. Context : My app needs to behave differently depending on the country of the user. For me relying on Locale.current.region?.identifier does not seem very reliable, the user can change it really easily. I'm trying to use the Storekit framework like so : if let storefront = await StoreKit.Storefront.current{ return storefront.countryCode } As per Apple's Storekit documentation : Use current to determine a customer's current storefront region and offer in-app products suitable for that region. You maintain your own list of product identifiers and the storefronts in which you make them available. But I just can't find out what I need to change in my current configuration to get another country. The code keeps returning my original storefront (which is France) I've tried login in with a sandbox user defined on another country. Changed all settings on my device to another country. Changed my Apple's account region as described here. Also tried to logout from everything. The only thing that works is setting a local .storekit file as described here and changing the default storefront. Is Xcode overriding the default storefront when building on debug or TestFlight? does anyone know how can I test different storefronts with sandbox users without the local storekit file ? Thank you in advance.
Replies
4
Boosts
2
Views
786
Activity
4h
Device Hub sucks
Or maybe I suck? Is there really no way with the new Xcode to take a simple screenshot from the device you're testing?You have to connect this Device Hub? An entirely separate app. And not only that, then you have to pair it, which maintains a live connection to the phone? Fine. Okay then. But now I can no longer test the microphone functions of my app because that shared session is interfering with it. Oh, well, I'll just disconnect the session then, right? Nope. The button to disconnect the session doesn't work. Device Hub thinks it's disconnected, but my phone still shows the blue sharing session icon in the upper left hand corner. The only way to stop that is to unpair the phone completely. So then every time I want to take a screenshot, I've got to do this pairing crap? I think I'll be running a second copy of Xcode 26 for quite a while just to use the screenshot button.
Replies
5
Boosts
0
Views
222
Activity
4h
ProResRAW shooting issue with AVCaptureMovieFileOutput with the first video
On iOS 26, the first ProRes RAW recording after launching the app consistently stalls for the entire take: audio records normally, but video contains only a few frames (for example, an 11.8-second clip at approximately 0.25 fps instead of 30 fps). Every subsequent recording works correctly. Before startRecording, the Bayer format is active, ProRes RAW is available, white balance is locked, and frame duration is pinned to 1/30. Reordering setOutputSettings and reasserting configuration have not resolved it; only discarding the first recording acts as a reliable warm-up. Is this a known one-time ProRes RAW encoder initialisation issue, and is there a supported way to prepare the encoder before the first user takes? I have a full working sample code if anyone needs but here is the setup function: import CoreMedia import CoreVideo @available(iOS 26.0, *) final class ProResRAWRecorder: NSObject, AVCaptureFileOutputRecordingDelegate { let session = AVCaptureSession() private let movieOutput = AVCaptureMovieFileOutput() private var camera: AVCaptureDevice! // Call on a serial capture queue. func configure() throws { session.beginConfiguration() defer { session.commitConfiguration() } session.sessionPreset = .inputPriority session.automaticallyConfiguresCaptureDeviceForWideColor = false guard let device = AVCaptureDevice.default( .builtInWideAngleCamera, for: .video, position: .back ) else { throw SampleError.noCamera } let cameraInput = try AVCaptureDeviceInput(device: device) guard session.canAddInput(cameraInput) else { throw SampleError.cannotAddInput } session.addInput(cameraInput) camera = device // Optional, but reproduces the real topology where audio remains healthy. if let microphone = AVCaptureDevice.default(for: .audio), let microphoneInput = try? AVCaptureDeviceInput(device: microphone), session.canAddInput(microphoneInput) { session.addInput(microphoneInput) } // Find a 12-bit packed Bayer format supporting 30 fps. guard let rawFormat = device.formats .filter({ CMFormatDescriptionGetMediaSubType($0.formatDescription) == kCVPixelFormatType_96VersatileBayerPacked12 && $0.videoSupportedFrameRateRanges.contains { $0.minFrameRate <= 30 && $0.maxFrameRate >= 30 } }) .max(by: { let a = CMVideoFormatDescriptionGetDimensions($0.formatDescription) let b = CMVideoFormatDescriptionGetDimensions($1.formatDescription) return Int(a.width) * Int(a.height) < Int(b.width) * Int(b.height) }) else { throw SampleError.noRAWFormat } try device.lockForConfiguration() device.activeFormat = rawFormat if rawFormat.supportedColorSpaces.contains(.appleLog) { device.activeColorSpace = .appleLog } let frameDuration = CMTime(value: 1, timescale: 30) device.activeVideoMinFrameDuration = frameDuration device.activeVideoMaxFrameDuration = frameDuration if device.isWhiteBalanceModeSupported(.locked) { device.whiteBalanceMode = .locked } device.unlockForConfiguration() guard session.canAddOutput(movieOutput) else { throw SampleError.cannotAddOutput } session.addOutput(movieOutput) session.startRunning() } // Call on the same serial capture queue after startRunning() returns. func record(to url: URL) throws { guard let connection = movieOutput.connection(with: .video) else { throw SampleError.noVideoConnection } // Reassert the required device state at the take boundary. try camera.lockForConfiguration() if camera.isWhiteBalanceModeSupported(.locked) { camera.whiteBalanceMode = .locked } let frameDuration = CMTime(value: 1, timescale: 30) camera.activeVideoMinFrameDuration = frameDuration camera.activeVideoMaxFrameDuration = frameDuration camera.unlockForConfiguration() guard movieOutput.availableVideoCodecTypes.contains(.proResRAW) else { throw SampleError.rawCodecUnavailable } movieOutput.setOutputSettings( [AVVideoCodecKey: AVVideoCodecType.proResRAW], for: connection ) movieOutput.startRecording(to: url, recordingDelegate: self) } func stop() { if movieOutput.isRecording { movieOutput.stopRecording() } } func fileOutput( _ output: AVCaptureFileOutput, didFinishRecordingTo outputFileURL: URL, from connections: [AVCaptureConnection], error: Error? ) { print("Finished:", outputFileURL, "error:", error as Any) } enum SampleError: Error { case noCamera case cannotAddInput case noRAWFormat case cannotAddOutput case noVideoConnection case rawCodecUnavailable } }
Replies
1
Boosts
0
Views
38
Activity
5h
Xcode IOS development
Super noob here 😅 is there a way to work with the “Xcode” development app on IOS. Any advice or input is welcome.
Replies
1
Boosts
0
Views
28
Activity
5h
Only Simulators no Real Devices
I have tested my app on many iOS versions e.g. 26.5.0 27.0 beta and many more for all iPhone and iOS devices on simulator. I wanted to ask, it's difficult to have so many real devices. So what should we do for that?
Replies
3
Boosts
0
Views
65
Activity
5h
Review Delay
Hello community. I have created an app for hunters and the season is just about to start (late August), the app has been seat in Waiting for Review for a whole week. I read about it and Apple says the 90% of the apps gets review on the first 24 hours. Does anybody knows how to speed up this process ? I already paid for the campaign and people is asking when the app is going to be ready. It is a paid service and I was hoping to be fast enough, but I think the unlucky 10% is actually bigger !
Replies
1
Boosts
1
Views
100
Activity
5h
Does submitting a new version interrupt the phased release of the currently live version?
We currently have version 1.2.0 live and in the middle of its 7-day phased release (automatic updates), currently around the 5% stage. We now want to submit version 1.3.0. I want to confirm the exact behavior before we submit, because I've heard conflicting claims internally. My understanding is: Submitting 1.3.0 for review does NOT affect 1.2.0's ongoing phased release. 1.2.0 continues ramping (10% -> 20% -> 50% -> 100%) undisturbed while 1.3.0 is in review. If 1.3.0 is set to "Manually release this version," it will sit in "Pending Developer Release" after approval and still not affect 1.2.0's rollout -- nothing changes until I actively release it. Only when I tap "Release" on 1.3.0 does 1.2.0's phased release stop, at which point 1.3.0 begins its own phased release from 1%. If 1.3.0 were instead set to "Automatically release this version," it would go live the moment Apple approves it and would interrupt 1.2.0's rollout at that point. Questions: Is the above correct? Specifically, does the act of submitting/approving a new version have any effect on the currently live version's phased rollout, or is the rollout only ever interrupted by the release action? When 1.3.0 is released and 1.2.0's phased release is interrupted, what happens to the users who had not yet received 1.2.0 via automatic update? Do they get queued for 1.3.0 instead? Thanks in advance for clarifying.
Replies
0
Boosts
0
Views
33
Activity
5h