I'm developing for compliance with Texas law in the United States.
Currently, I'm encountering an issue where I want to test the feature point "when the app undergoes significant changes, a supervised user initiates a request." However, during actual testing, the app pops up an error message: "Can't Ask, An Unknown error occurred."
Additionally, I see the following error message in the Xcode Console: "Error Domain=AskToCore.ATMessageComposeValidationError Code=4 'The user is in a region that does not support this type of ask.' UserInfo={NSLocalizedFailureReason=The user must be in a supported region to use this feature., NSLocalizedRecoverySuggestion=Please ensure the user is in an eligible region., NSLocalizedDescription=The user is in a region that does not support this type of ask.}"
I am indeed not in the Texas region.
I want to conduct full-process testing before the feature is released to the App Store.
What should I do?
Apart from Sandbox testing (which, in fact, doesn't show any pop-ups either), how can I test under real-world conditions?
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi,
This is my first time notarizing an app with Developer ID.
I have submitted multiple notarization requests, and all of them have been
stuck in "In Progress" status. The oldest one was submitted over 24 hours ago.
Is this normal for first-time submissions?
How long should I wait before contacting support?
Thanks!
Topic:
Code Signing
SubTopic:
Notarization
Hello,
Our Xcode Cloud builds are successfully archiving but fail every time during the "Export archive for app-store distribution" step. The issue appears to be a persistent authentication failure with App Store Connect that we are unable to resolve.
Primary Error:
The build logs show a critical authentication failure.
IDEDistribution.critical.log shows: App Store Connect request for store configuration failed for account Session Proxy Provider... Unable to authenticate with App Store Connect.
DVTITunesSoftwareService.log specifies the error is DVTITunesSoftwareServiceFoundation.DVTServicesSessionProviderCredentialITunesAuthenticationContextError.proxy.
The build process eventually terminates during the IDEDistributionSymbolsStep with an Rsync failed error, which we believe is a symptom of the earlier authentication failure.
Troubleshooting Already Performed:
We have already taken the following steps without success:
Verified the account used for the integration has "Account Holder" and "Admin" roles.
Confirmed that Xcode Cloud's automatic signing is working correctly and is able to create new provisioning profiles.
Thoroughly checked the App Store Connect web UI under Users and Access > Integrations > Xcode Cloud for a way to reset the connection, but no such option exists.
Removed and re-added the Apple ID in the Xcode application's settings (Xcode > Settings > Accounts) on a local Mac.
Our hypothesis is that the integrated authentication session between Xcode Cloud and App Store Connect is invalid or stale, and there is no user-facing way to reset it.
Has anyone else encountered this "Session Proxy Provider" authentication error with Xcode Cloud? Is there a known solution or a different method to force a re-authentication of the service connection?
Any guidance from Apple engineers or other developers would be greatly appreciated.
(Developer Support Case: 102717975870)
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
App Store Connect
Continuous Integration
Xcode Cloud
I have an open Feedback conversation with Apple on this topic, but I am curious if others have run into this, or want to try out my sample code in their set up.
there are two API’s for reading controller buttons, axis, and D pads: GCPhysicalInputProfile and GCControllerLiveInput. There are inconsistencies in behaviour between the two of them. Apple recommends we use GCControllerLiveInput, however, there are some capabilities on these controllers that are only accessible through GCPhysicalInputProfile, as I’ll discuss below.
PSVR2 R2/L2 buttons, a.k.a. triggers, have force input analogue values. These can only be accessed on GCPhysicalInputProfile
PSVR2 thumbstick direction values are read through “axes” on GCPhysicalInputProfile, but only “dpads” on GCControllerLiveInput
on both GCPhysicalInputProfile and GCControllerLiveInput, All pressed events of all buttons are fired properly using generic aliases ( Trigger, Grip ,Menu, Right Thumbstick, Left Thumbstick, Right Button A & B (Circle & Cross), Left Button A&B (Triangle and Square) ). Apple reserves the system button as the equivalent of a home button for the OS.
on GCPhysicalInputProfile, touch events are fired when the button is also pressed, but not for only touches.
on GCControllerLiveInput , Touch events only works for the following buttons: Left Thumbstick, Right Thumbstick, Right Button A (Circle), and Right Button B (Cross). But Right Button B touch event isn’t labelled correctly, it fires as the Right Button A event.
I observed this inside ALVR which uses a polling based approach to event processing:
https://github.com/alvr-org/alvr-visionos/blob/17b5968f9d894944b53e97134b39dfce0993302a/ALVRClient/WorldTracker.swift#L301
To simplify to see this on a very simple app, I used the Apple example TrackingAccessories application:
https://developer.apple.com/documentation/ARKit/tracking-accessories-in-volumetric-windows
I’ve attached the code that replaces the AccessoryTrackingModel class. I added code that prints out what is touched/pressed, see the trackAllConnectedSpatialControllers method:
https://github.com/svrc/TrackingAccessories
It's been a week waiting for the review
Despite requesting a quick review and contacting technical support via email, there has been no change so far.
What can I do?
Apple ID: 6756184295
I now had the second user with 26.2. complaining about a hang in my app. The hang occurs when the first AppleScript for Mail is run. Here is the relevant section from the process analysis in Activity Monitor:
+ 2443 OSACompile (in OpenScripting) + 52 [0x1b32b30f4]
+ 2443 SecurityPolicyTestDescriptor (in OpenScripting) + 152 [0x1b32a2284]
+ 2443 _SecurityPolicyTest(char const*, void const*, unsigned long) (in OpenScripting) + 332 [0x1b32a2118]
+ 2443 InterpreterSecurity_ScanBuffer (in libInterpreterSecurity.dylib) + 112 [0x28c149304]
+ 2443 -[InterpreterSecurity scanData:withSourceURL:] (in libInterpreterSecurity.dylib) + 164 [0x28c148db4]
+ 2443 -[XProtectScan beginAnalysisWithFeedback:] (in XprotectFramework) + 544 [0x1d35a1e58]
+ 2443 -[XPMalwareEvaluation initWithData:assessmentClass:] (in XprotectFramework) + 92 [0x1d359ada4]
+ 2443 -[XPMalwareEvaluation initWithRuleString:withExtraRules:withURL:withData:withAssessmentClass:feedback:] (in XprotectFramework) + 36 [0x1d359b2a8]
My app is correctly signed and notarised. The first user had to completely uninstall/reinstall the app and the everything worked again.
Why does this happen? How can the problem be fixed?
There seems to be a problem to a specific Apple Developer Account regarding Xcode Cloud Distribution (Signing).
The Xcode Cloud Error
Invalid Signature. Code failed to satisfy specified code requirement(s). The file at path “XcodeCloudTest.app/XcodeCloudTest” is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose “Clean All” in Xcode, delete the “build” directory in the Finder, and rebuild your release target. For more information, please consult https://developer.apple.com/support/code-signing.
Investigation
Apple Developer Forums
This issue seems to be known:
https://developer.apple.com/forums/thread/746210
Debugging by ourselves
We setup an example Xcode project from a default iOS Xcode app template to rule out any project issues. This example project failed with the same error as stated above. In the next step we tried the same example project with a different Apple Developer Account and it successfully distributed the example App through Xcode Cloud.
Conclusion
It seems like there is no setup issue on developer-side, because our example project works out-of-the-box on a different Apple Developer Account. Our only hope is that Apple will have a look on our Developer Account. Maybe there is some internal setting.
Topic:
Developer Tools & Services
SubTopic:
Xcode Cloud
Tags:
TestFlight
Signing Certificates
Xcode Cloud
Code Signing
Hi there,
First thanks for all the work on BGContinuedProcessingTask! It looks really promising.
I have a question / issue around the behavior when a BGContinuedProcessingTask expires. Here is my setup.
I have an app who's responsible for uploading large files in the field (AKA wifi is not expected)
For a given file, it can likely fail due to network conditions
I'm using Multipart upload though so I can retry a file to pick up where it left off.
I use one taskIdentifier per file, and when the file fails, I can retry the task and have it continue where it left off (I am reusing the taskIdentifier here for retries, let me know if I shouldn't be doing that)
Here is the behavior I am seeing
I start an upload, it seems to be uploading normally
I turn on airplane mode to simulate expiration of the task
the task fails as expected after ~30 seconds, and I see the failure in my home screen.
I have callbacks in the task to put my app in the proper state on expiration / failure
I turn back on airplane mode and I retry the task, the way I do this is I do NOT re-register, I simply re-submit the task with the same TaskIdentifier.
What I would have expected is that the failure task is REPLACED with the new task and new progress. Instead what I see is TWO ContinuedBackgroundProcessingTasks, one in the failure state and one in progress.
My question is
How can I make retries reuse the same task notification item?
OR if that's not possible, how do I programmatically clear the task failure? I've tried cancelTask but that doesn't seem to clear it.
Hello!
I recently submitted a request for the Family Controls (Distribution) entitlement for my app, and I’m trying to understand what kind of timeline to expect. I’ve seen posts suggesting anywhere from a few days to over a month for approval.
Is there a typical review window for this entitlement?
And is there anything I can do on my end to help the process move more smoothly?
Thanks in advance!
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
Entitlements
Family Controls
Screen Time
We have a password entry field with a "show password" button. The button effectively turns the "secure text entry" textfield into a non-secure text entry field allowing the user to view what they typed in.
When VoiceOver is enabled, I am not including that button in the UI; it doesn't seem to make sense to me for the following reasons.
If you properly test with the screen curtain, the functionality is useless. You don't see anything. I've tried to explain this to my accessibility team. It's also quite ridiculous to offer to show a blind user their password, I'm sure they'd love to see it, but they just can't. This would almost seem insulting as well.
If by toggling that button, and turning a secure text entry into a non-secure text entry, now the app is literally speaking their password aloud. This seems like a security vulnerability to me. What if someone else overhears the password spoken aloud.
The accessibility team is insisting that I need to include the "show password" button when VoiceOver is enabled. This is the response I received.
"functionality should be the same for VI users as for sighted users. It may happen that a VI user wants to check what is typed into password field in order to correct mistakes".
Again, I don't agree with that because functionality should not be the same. Functionality should be changed and altered as necessary to make the user experience as accessible as possible.
And in this scenario, to me the functionality doesn't make sense at all in a VoiceOver setting.
Any thoughts on this? Am I incorrect here? Are there benefits of including a "show password" button to a user utilizing VoiceOver? What should then the functionality be? Speak the password aloud?
Thanks.
Hello,
I would like to report a situation that appears to be outside the normal App Review process and may indicate a system issue or an unintended internal flag on my app.
My app Vocheo (Bundle ID: com.vocheo) has been stuck in “Waiting for Review” for an unusually long period — a total of ~40 days since the first 2.0 submission on October 26.
Across multiple submissions, the review has never meaningfully started.
Here is a summary of what happened:
Timeline Overview
• First 2.0 submission: Oct 26
• Most recent submission: Dec 2 (version 2.1.5)
• Total time stuck: ~40 days
• Longest individual “Waiting for Review” period: 18 days
• Another long period: 8 days
• All withdrawals were done on the same day and resubmitted immediately — they did not resolve the issue.
Only two submissions ever entered “In Review”, and both resulted in very fast, template-style rejections within minutes.
After those, every new submission returned to weeks of “Waiting for Review” with no progress.
Attempts to Resolve
I have:
• Contacted App Review Support several times
• Received confirmation that expedited review was approved
• But the review never actually started
• Support responses indicate “re-queuing due to withdrawal”, but this explanation does not match the actual prolonged delays experienced
At this point, support channels have not been able to provide any actionable information or resolution.
Why I’m Posting Here
Given:
• The prolonged review delays far beyond normal processing times
• Expedited review approval without any review starting
• Multiple resubmissions stuck at “Waiting for Review” for weeks
• No clear reason or guidance from support
I am concerned this may not be a typical review delay, but rather:
• A system-level issue, or
• An unintentional internal flag preventing the review from starting
I am posting here in hopes that someone from Apple may be able to help escalate or verify whether the app is correctly progressing through the review queue.
App Information
• App Name: Vocheo
• Bundle ID: com.vocheo
• Latest Submission: 2.1.5 (submitted Dec 2)
• Platform: iOS
• Status: “Waiting for Review” consistently for ~40 days
Any assistance in determining whether this is a system error, or whether the app is blocked in the queue due to an internal issue, would be greatly appreciated.
Thank you very much.
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Out of nowhere I got some red banner on top of my iPhone 13 mini / iOS 17.5. I cannot pin point the root cause of this. What I can say is that it only happens to Simulators of a certain type, e.g. iPhone 12 and 13 mini, but not iPhone 14 for example.
I have installed Xcode 26.1.0 and 26.1.1, out of which 26.1.0 is selected:
$ xcode-select -p
/Applications/Xcode-26.1.0.app/Contents/Developer
And following runtimes:
$ xcrun simctl runtime list
== Disk Images ==
-- iOS --
iOS 17.5 (21F79) - CF933623-A258-44F8-B248-C0F25C0C343B (Ready)
iOS 26.1 (23B80) - D11C3CDC-EE3D-44CC-8B92-9B7D00B54B0B (Ready)
Total Disk Images: 2 (14.6G)
Installing the newer 26.1 23B86 runtime doesn't help either.
Hello,
I submitted an app update (submission ID: 3bbbd08f-6ca9-40a2-bdc1-a2f33061f647) that was rejected for Guideline 4.0 - Design (about ad frequency issues).
The rejection message included this option:
"The issues we've identified below are eligible to be resolved on your next update. If this submission includes bug fixes and you'd like to have it approved at this time, reply to this message and let us know."
I replied on December 11 at 10:21 PM asking to approve the current version as a bug fix, and that I would address the ad frequency in my next update.
It's now been over 35 hours with no response.
Should I resubmit my binary for review? Typically, when I reply to the App Review message in such a scenario, my app gets approved in a few hours.
Hello.
My developer membership is expired. I cannot renew because the renewal option/button does not appears in any device. A banner tells me:
"Any apps you had on the App Store are no longer available for download and you can no longer access membership benefits. If you’d like to renew your membership to reinstate your apps and membership benefits, open the Apple Developer app on your iPhone, iPad, or Mac. Sign in to your account, tap/click Renew, and follow the prompts.If you agreed to the Paid Applications Agreement, you’ll need to agree to it again after renewal in the Agreements, Tax and Banking section of App Store Connect."
However, there's no "Renew" to tap or click anywhere in the app nor in the web.
Any ideas?
Thanks a lot.
I’m facing an issue in our native iOS app that occurs specifically on iOS 26.1 (not observed on any lower versions). When I update a @State field value, the UI does not reflect the change as expected.
The @State variable updates internally, but the view does not re-render.
This behaviour started after upgrading to iOS 26.1.
Works fine on iOS 26.0 and earlier versions.
Has anyone else encountered this issue or found a workaround? Any insights or suggestions would be greatly appreciated.
When I login to my Dev account, I get a banner that says "The updated Apple Developer Program License Agreement needs to be reviewed. In order to update your existing apps and submit new apps to the App Store, the Account Holder must review and accept the updated agreement."However, when I go to Agreements, Tax, and Banking, I see both Free Apps and Paid Apps agreement, but when I click on View, there's nothing for me to accept. It's a pop-up window with a list of countries and a button at the end that says "Close". And that's it. No other action is possible. No other option either under the Action column.So then how can I review and accept it?
After reading the news below, we are currently working on updating our app in preparation for the enforcement of Texas SB 2420.
https://developer.apple.com/news/?id=2ezb6jhj
Based on the information in the announcement, we understand that parents will be able to revoke their consent for apps.
However, we are unsure how an app is supposed to obtain or verify the parent’s consent status in the first place.
We reviewed the Declared Age Range API and PermissionKit’s Significant Change API, but could not find any functionality related to this.
If anyone with expertise on this topic has insight, we would greatly appreciate your guidance.
Thank you in advance.
Problem Description:
In a SwiftUI application, I've wrapped UIKit's UIPageViewController using UIViewControllerRepresentable, naming the wrapped class PagedInfiniteScrollView. This component causes navigation bar elements (title and buttons) to disappear.
This issue only occurs in Low Power Mode on a physical device.
Steps to Reproduce:
Enable Low Power Mode on a physical device and open the app's home page.
From the home page, open a detail sheet containing PagedInfiniteScrollView. This detail page include a navigation title and a toolbar button in the top-right corner. PagedInfiniteScrollView supports horizontal swiping to switch pages.
Tap the toolbar button in the top-right corner of the detail page to open an edit sheet.
Without making any changes, close the edit sheet and return to the detail page. On the detail page, swipe left and right on the PagedInfiniteScrollView.
Expected Result:
When swiping the PagedInfiniteScrollView, the navigation title and top-right toolbar button of the detail page should remain visible.
Actual Result:
When swiping the PagedInfiniteScrollView, the navigation title and top-right toolbar button of the detail page disappear.
import SwiftUI
@main
struct CalendarApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
import SwiftUI
struct ContentView: View {
@State private var showDetailSheet = false
@State private var currentPage: Int = 0
var body: some View {
NavigationStack {
Button {
showDetailSheet = true
} label: {
Text("show Calendar sheet")
}
.sheet(isPresented: $showDetailSheet) {
DetailSheet(currentPage: $currentPage)
}
}
}
}
struct DetailSheet: View {
@Binding var currentPage: Int
@State private var showEditSheet = false
var body: some View {
NavigationStack {
PagedInfiniteScrollView(content: { pageIndex in
Text("\(pageIndex)")
.frame(width: 200, height: 200)
.background(Color.blue)
},
currentPage: $currentPage)
.sheet(isPresented: $showEditSheet, content: {
Text("edit")
})
.navigationTitle("Detail")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItemGroup(placement: .topBarTrailing) {
Button {
showEditSheet = true
} label: {
Text("Edit")
}
}
}
}
}
}
import SwiftUI
import UIKit
struct PagedInfiniteScrollView<Content: View>: UIViewControllerRepresentable {
typealias UIViewControllerType = UIPageViewController
let content: (Int) -> Content
@Binding var currentPage: Int
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func makeUIViewController(context: Context) -> UIPageViewController {
let pageViewController = UIPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal)
pageViewController.dataSource = context.coordinator
pageViewController.delegate = context.coordinator
let initialViewController = UIHostingController(rootView: IdentifiableContent(index: currentPage, content: { content(currentPage) }))
pageViewController.setViewControllers([initialViewController], direction: .forward, animated: false, completion: nil)
return pageViewController
}
func updateUIViewController(_ uiViewController: UIPageViewController, context: Context) {
let currentViewController = uiViewController.viewControllers?.first as? UIHostingController<IdentifiableContent<Content>>
let currentIndex = currentViewController?.rootView.index ?? 0
if currentPage != currentIndex {
let direction: UIPageViewController.NavigationDirection = currentPage > currentIndex ? .forward : .reverse
let newViewController = UIHostingController(rootView: IdentifiableContent(index: currentPage, content: { content(currentPage) }))
uiViewController.setViewControllers([newViewController], direction: direction, animated: true, completion: nil)
}
}
class Coordinator: NSObject, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
var parent: PagedInfiniteScrollView
init(_ parent: PagedInfiniteScrollView) {
self.parent = parent
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
guard let currentView = viewController as? UIHostingController<IdentifiableContent<Content>>, let currentIndex = currentView.rootView.index as Int? else {
return nil
}
let previousIndex = currentIndex - 1
return UIHostingController(rootView: IdentifiableContent(index: previousIndex, content: { parent.content(previousIndex) }))
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
guard let currentView = viewController as? UIHostingController<IdentifiableContent<Content>>, let currentIndex = currentView.rootView.index as Int? else {
return nil
}
let nextIndex = currentIndex + 1
return UIHostingController(rootView: IdentifiableContent(index: nextIndex, content: { parent.content(nextIndex) }))
}
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
if completed,
let currentView = pageViewController.viewControllers?.first as? UIHostingController<IdentifiableContent<Content>>,
let currentIndex = currentView.rootView.index as Int? {
parent.currentPage = currentIndex
}
}
}
}
extension PagedInfiniteScrollView {
struct IdentifiableContent<Content: View>: View {
let index: Int
let content: Content
init(index: Int, @ViewBuilder content: () -> Content) {
self.index = index
self.content = content()
}
var body: some View {
content
}
}
}
Currently, if as a library author you are shipping dependencies as code, you can use the #if DEBUG preprocessor check to execute logic based on whether app is being built for Debug or Release.
My concern is more about the approach that should be taken when distributing frameworks/xcframeworks. One approach I am thinking of using is checking the presence of {CFBundleName}.debug.dylib in the main bundle. Is this approach reliable? Do you suggest any other approach?
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Swift Packages
Frameworks
Debugging
App Binary
Issue :
When creating a new project in Xcode 26.0 and adding a Share Extension target without modifying any code, the app crashes upon displaying the extension screen with the following error:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'The layout constraints still need update after sending -updateConstraints to <_UINavigationBarTitleControl: 0x105b9cc00; frame = (0 0; 0 0); layer = <CALayer: 0x10b834270>>. _UINavigationBarTitleControl or one of its superclasses may have overridden -updateConstraints without calling super. Or, something may have dirtied layout constraints in the middle of updating them. Both are programming errors.'
Environment :
Xcode 26.0
iOS 26.0 (physical device)
Note: This issue does not occur when running on iOS 18.3.1 (physical device).
Temporary Workaround :
Adding the following implementation to the isContentValid method prevents the exception from occurring:
Objective-C- (BOOL)isContentValid { // Do validation of contentText and/or NSExtensionContext attachments here if (@available(iOS 26, *)) { self.navigationController.navigationBarHidden = YES; } return YES; }
Questions :
Is there any alternative way to avoid this exception?
Since this crash occurs with the default implementation generated by Xcode, is there any plan to fix it in future updates?
Topic:
Developer Tools & Services
SubTopic:
Xcode