On iOS 18, when XCUITest encounters an "Application has not loaded accessibility" error after the 60 second timeout, it performs an undocumented auto-recovery ("Setting up automation session") instead of halting the test as documented. This leaves the XCUITest framework in a corrupted state, causing subsequent tests in the same session to fail with unexpected behavior.
Expected Behavior (per Apple documentation):
Any failure in the launch sequence will be reported as a test failure and the test will be halted at that point.
Actual Behavior:
XCUITest waits 60 seconds for accessibility to load
Logs "Application has not loaded accessibility" error
Instead of halting, performs "Setting up automation session" (auto-recovery)
Test continues with corrupted framework state
Subsequent tests in the same session fail with phantom element queries
Steps
Run XCUITest suite on a real iOS 18 device
Have an app with moderately heavy initialization (e.g., synchronous network operations during bootstrap)
Observe intermittent "accessibility not loaded" errors
When error occurs, subsequent tests fail with unexpected behavior
Test Logs Evidence
First test (accessibility failure + recovery):
t = 11.11s Wait for accessibility to load
t = 71.14s Capturing diagnostic spindump
t = 76.24s Assertion Failure: Application 'com.example.app' has not loaded accessibility
t = 76.26s Setting up automation session ← Undocumented recovery
t = 77.29s Tear Down
Second test (corrupted state):
t = 35.01s Tap "signin-button"
t = 35.55s Waiting for "bannerButtonStackFirstItem" ← Query NOT in test code!
t = 40.58s Assertion Failure: Failed to find element
The second test executes element queries that do not exist in its source code, indicating leaked/corrupted state from the previous test's failed recovery.
Note: The tearDown() method terminates the app but cannot reset the internal state of the XCUITest framework itself, so corruption persists across tests.
We are observing this behavior consistently on iOS 18 real devices. We would like to know:
Is this a known issue with XCUITest on iOS 18?
Is anyone experiencing similar "accessibility not loaded" failures followed by auto-recovery?
Is the "Setting up automation session" recovery behavior intentional or a bug?
Is there a recommended workaround to prevent framework state corruption between tests?
General
RSS for tagDive into the vast array of tools and services available to developers.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
First time user here. Trying to build my React-Native app on xcode. I keep getting "Could not build Module" and "missing package product" and tried many combination for my Podfile.
I am on macbook pro M2, XCode version 16.2, building on iphone 16 v18.3.1. Pod version 1.16.2, react-native-cli:2.0.1,
Here is my Podfile. I tried to assign modular_headers to individual Firebase packages but then I cant pod install.
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
use_modular_headers!
platform :ios, '18.0'
prepare_react_native_project!
target 'plana' do
config = use_native_modules!
use_react_native!(
:path => config[:reactNativePath],
:fabric_enabled => false,
:app_path => "#{Pod::Config.instance.installation_root}/.."
)
post_install do |installer|
react_native_post_install(
installer,
config[:reactNativePath],
:mac_catalyst_enabled => false,
)
end
end
In the availability and pricing section, we have reviewed the plans and we will be upgrading to 50 or 100 million calls/month but before we do, we have a couple questions.
Does the API have rate limit or throttling?
Do you have additional weather forecast endpoints like hail, radar, or pollen forecast? I see in this thread https://developer.apple.com/forums/thread/795642 that air quality is not available
Thanks
I am trying to add promotional offers in my iOS App. The signature is being verified through a google cloud function. My user id, signature, and product and offerIds return perfect. Promotional offer appears in the payment sheet as well. When applying for payment, the "ding" sound comes as well. But then I get the UIAlert with Unable to Purchase Contact developer. Error code in logs is 3903
Topic:
Developer Tools & Services
SubTopic:
General
Hi all,
I'm trying to integrate Apple’s DeviceCheck API into my Flutter iOS app. I already have everything set up on the backend — the Apple private key, key ID, team ID, and DeviceCheck capability. The backend is generating and signing the JWT correctly and making requests to Apple.
However, I’m currently stuck on the frontend (Flutter):
👉 How can I generate the device_token required by the DeviceCheck API (via DCDevice.generateToken) in a Flutter iOS app?
I understand that DCDevice.generateToken() must be called from native Swift code. I previously attempted to use a MethodChannel to bridge this in Swift, but would prefer not to write or maintain native Swift code if possible.
I've looked for a prebuilt Flutter package to handle this, but nothing exists or is up-to-date on pub.dev.
Main Question:
Is there any Apple-supported way to generate the device_token for DeviceCheck from a Flutter app without writing Swift code manually?
If not, is DCDevice.generateToken() the only possible approach, and must I implement this via Swift and Flutter platform channels?
Thanks!
Hi all,
I’m developing a watchOS app and have seen cases where the app is terminated by the system — for example, due to CPU usage limits being exceeded (watchdog termination). Here’s a portion of one of the crash reports:
Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: CAROUSEL 2343432205
<RBSTerminateContext| domain:10 code:0x8BADF00D explanation:[app<app_name>:898] Failed to terminate gracefully after 5.0s
ProcessVisibility: Foreground
ProcessState: Running
WatchdogEvent: process-exit
WatchdogVisibility: Foreground
WatchdogCPUStatistics: (
"Elapsed total CPU time (seconds): 11.280 (user 9.800, system 1.480), 100% CPU",
"Elapsed application CPU time (seconds): 5.162, 46% CPU"
) reportType:CrashLog maxTerminationResistance:Interactive>
My questions:
1.) Is there any way to get notified (via Crashlytics, Xcode Organizer, or any other reporting mechanism) when this type of system-level termination happens — similar to how we’re notified of crashes?
2.)Is there any way for a watchOS app to receive runtime warnings from the system when it’s about to exceed CPU or memory limits — similar to UIApplication.didReceiveMemoryWarningNotification on iOS?
Thanks in advance!
Topic:
Developer Tools & Services
SubTopic:
General
OS:macOS15.5
CPU:Apple M1 Pro
zsh终端中执行python或pip命令,提示未找到命令,但执行python3或pip3命令,预期也是提示未找到命令,实际结果弹出Install Command Line Developer Tools弹窗安装,网上查阅资料,删除/usr/bin/python3、/usr/bin/pip3、/usr/local/bin/python3、/usr/local/bin/pip3文件即可达到预期,但无权限删除/usr/bin/python3与/usr/bin/pip3文件,尝试过root账号、进行系统恢复模式暂时禁用SIP解决方案,都无法解决;🙏大佬指点一二;
Topic:
Developer Tools & Services
SubTopic:
General
I'm using Xcode 16.3 and I want to add the key "NSUbiquitousContainers" but I cannot do it in the Entitlements file, it should be in info.plist file! I have done it before but in previous versions of Xcode when the info.plist was in the project navigator.
However, now I cannot find the file and I did not find any way to create it!
Please guide me in detail how to proceed (I'm not new to Swift or SwiftUI but not familiar to project settings)?
Hi everyone,
I’m working on a Capacitor app built with Angular, and I’m trying to call a Swift class directly from the root of the iOS project (next to AppDelegate.swift) without using a full Capacitor plugin structure.
The Swift file is called RtspVlcPlugin.swift and looks like this:
import Capacitor
@objc(RtspVlcPlugin)
public class RtspVlcPlugin: CAPPlugin {
@objc func iniciar(_ call: CAPPluginCall) {
call.resolve()
}
}
In AppDelegate.swift I register it like this:
if let bridge = self.window?.rootViewController as? CAPBridgeViewController {
bridge.bridge?.registerPluginInstance(RtspVlcPlugin())
print("✅ RtspVlcPlugin registered.")
}
The registration message prints correctly in Xcode logs.
But from Angular, when I try to call it like this:
import { registerPlugin } from '@capacitor/core';
const RtspVlcPlugin: any = registerPlugin('RtspVlcPlugin');
RtspVlcPlugin.iniciar({ ... });
I get this error:
{"code":"UNIMPLEMENTED"}
So, even though the plugin is registered manually, it’s not exposing any methods to the Angular/Capacitor runtime.
My question is:
What is the correct way to access a manually created Swift class (in the root of the iOS project) from Angular via Capacitor?
Thanks in advance!
I am experiencing an issue with PHP on macOS where errors and warnings are not displayed, either in the terminal or when running scripts through the built-in PHP server.
Topic:
Developer Tools & Services
SubTopic:
General
Does anyone know where I can get to the API diffs for iOS 18 -> iOS 26?
Hello,
I currently have a live application in the iOS App Store that needs an update to start functioning again, but I've lost the source code in a hard drive failure. Is there a way to reverse engineer the currently deployed package that is live (and also a way to download it from App Store Connect)⁉️
The development change itself is just a very small change for an API route in the code itself. I could even direct an engineer at Apple to make the change in 5 minutes!
Let me know if this is possible.
Thanks❗️
Hi Apple Engineers and fellow developers,
I'm a student developer working on an educational focus management app that helps users hide distracting apps during study sessions. The app consists of:
macOS app: Simple "Hide apps" button that triggers app hidding sessions
iOS app: Uses Screen Time API to temporarily hide selected apps from home screen
Communication: Bonjour networking between Mac and iPhone for session coordination
The Challenge
My app requires two entitlements that aren't available with Personal Developer Teams:
com.apple.developer.family-controls (for Screen Time API)
com.apple.developer.networking.multicast (for Bonjour device discovery)
Current Error Messages
text
Cannot create a iOS App Development provisioning profile for "focuser.focuser-app".
Personal development teams, including "My Name", do not support the
Family Controls (Development) capability.
Provisioning profile doesn't include the com.apple.developer.family-controls
and com.apple.developer.networking.multicast entitlements.
My Question for Apple Engineers
Is there any legitimate way to test these privacy-sensitive APIs on my own devices for educational/learning purposes without purchasing the $99/year Apple Developer Program membership?
I understand the security reasons behind these restrictions, but as a student just learning iOS development, it creates a significant barrier to experimenting with these technologies.
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Entitlements
Network
Family Controls
Bonjour
I'm integrating Apollo GraphQL into a SwiftUI app and encountering the following error during a query execution:
result : failure(Apollo.MultipartResponseParsingInterceptor.ParsingError.cannotParseResponse)
failed : The response data could not be parsed.
The request hits the server, but the response fails to be parsed by Apollo. I'm using the default code generation setup and executing a simple query to fetch a list of countries.
Here’s a snippet of the function:
swift
Copy
Edit
private func fetchCountries() {
switch result {
case .success(let graphQLResult):
if let name = graphQLResult.data?.countries {
print(name)
} else if let errors = graphQLResult.errors {
print(errors)
}
case .failure(let error):
print("failed : (error.localizedDescription)")
}
}
This is run on an iPhone 16 Pro simulator with iOS 18.2. Any idea what's causing the parsing error or how I can inspect the raw response for debugging?
Thanks in advance!
About three weeks ago I submitted a DTS ticket (13097367) to receive code level support with a potential SwiftUI bug. At first I did not receive any response at all (beside the automatic confirmation that the ticket has been created).
Only after posting the question here, I got a reply from a DTS engineer. However, the proposed solution did not really solve the problem but only circumvents it (UI freezes when ScrollView reaches below SafeArea. Solution: Do not use ScrollView below SafeArea...)
I pointed out, that this does not really help me. Since then I did not receive any further response.
Is this normal? Is there something wrong with my ticket? Maybe it was closed by accident or something?
Thank you very much!
Hello,
I am currently in the process of gradually adding support for LiquidGlass to my app. The transition is taking place incrementally, i.e., new screens and minor features are gradually being adapted to the new design and already deployed.
Currently, the old design is still active via the feature flag UIDesignRequiresCompatibility, as the existing UI should remain locked for the public app store version until the transition is complete.
My challenge is as follows:
I would like to work with the new LiquidGlass design during development without having to manually change the UIDesignRequiresCompatibility flag with each deployment.
Ideally, I am looking for a solution where:
• the new design is only activated for me (e.g., specific account or specific devices)
• the old design remains active for all other users
• the App Store version can be delivered unchanged
So my question is:
Is it possible to control UIDesignRequiresCompatibility via remote config or server-side logic in order to activate the new design specifically for certain users or devices?
I have observed similar behavior on WhatsApp—two devices with the same app version, but only one shows the new design. This suggests server-side or remote config-based control.
Do you have any experience or recommendations on how to implement something like this cleanly?
Kind regards
Heinz
Hello, I have a question about running tests on multiple simulators.
Currently, my company has a WDIO+Appium test suite with XCUITEST driver that runs on a single simulator through a mockttp proxy (we are intercepting and mocking some of the responses from our APIs and pass through the rest). In order to route the traffic we are currently using 'networksetup -setsecurewebproxy '. Everything works as expected.
With growing number of tests we'd like to scale number of simulators on a single host to 3-5. We have a working setup but the problem are system-wide proxy settings routing traffic from multiple simulators, which we can't distinguish by UDID or any other means, we know of. We can spin multiple mock servers on the same machine but we are struggling to find the way to route the traffic on a simulator basis.
In the end, both options are viable:
1 mock server running for multiple simulators
N number of mock servers for N number of simulators
Has anyone had the same/similar problem? How to approach this? We are currently running on Sequoia OSX and platform version 18.6. Thanks!
When building an app with iOS26 beta3, I received a warning saying "Launch screens will soon be required." Does this mean that, similar to the thread below, the app might not launch in builds for iOS27 and later (including iOS27)? https://developer.apple.com/forums/thread/789004
does anyone know where to find some slideshow/text/pdf versions of these?
https://developer.apple.com/tutorials/swiftui
maybe apple can use that fancy AI they are working on to generate those from the vides... to stress-test the AI :)
Topic:
Developer Tools & Services
SubTopic:
General
Good morning everyone,
I am developing a Flutter app for Android and iOS.
When I press a button, the app detects the location of the device (obviously with permissions already granted).
On Android everything works correctly.
On iOS, however, when I press the button for the first time after opening the app, the location is detected after about 30-50 seconds.
On the other hand, if I repeat the operation later, the response time is drastically reduced (only a few seconds).
I am using the location package (https://pub.dev/packages/location), and the code to get the location is as follows:
var currentLocation = await location.getLocation();
Has anyone experienced this problem before or knows how to solve it?
Thank you very much!
Federico