How can I allow the popup I am encountering while I run my UI tests with video recording in the Github actions.
Since these tests are running on VMs, it's not possible to manually click Allow. Also the remote robot cannot interact with OS-level dialogs.
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
在将游戏从 Nintendo Switch 移植到 Mac 的过程中使用 .NET (NativeAOT) 有哪些限制和注意事项(尽管两者都是 ARM)?
Topic:
Developer Tools & Services
SubTopic:
General
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?
On macOS, I get a system popup when running UI tests in GitHub saying:
“bash” is requesting to bypass the system private window picker and directly access your screen and audio.
How can I prevent these login and screen access popups from appearing during automated UI tests? Is there an official setup or configuration for running IntelliJ UI tests in CI environments (macOS, Linux, Windows) to avoid such dialogs? My builds run in GitHub Actions VMs, so I can’t manually grant these permissions, and they block the tests.
Apologies if this isn't tagged right but dev tools and services seemed the most appropriate since this is related to the workbench Ad Tester tool. I'm seeing a behavior where the preview link is not being generated. Specifically, I am seeing a POST request to the following URL consistently fail:
https://iadworkbench.apple.com/adtester/api/v1/ads/previewLink?orgId=1127861
Variations/scenarios I have tried so far:
All possible ad format choices on all possible devices
All options for the placement type
Both third party and uploaded creative sources
Uploaded creative sources appear to be failing to upload as well
A simple div with a "hello world" content fails as a third party creative source
Multiple apple accounts
I created a new account specifically to test if my primary apple ID was experiencing issues with this
Multiple browsers
I have tried multiple versions of Chrome/Firefox/Safari
I tested with and without browser extensions to determine whether an extension was interfering or not
Clearing session/local storage along with cookies
I also created new profiles in browsers to verify that I was getting a fresh browser environment
In all of these cases, the API request to generate a preview link is consistently failing with a 500 error code. It's worth noting that the web preview option works, but this isn't a truly accurate test environment and can't be solely relied on when testing ad content.
I don't know exactly when this started happening as I have not used it in the last couple of weeks but I have used the workbench ad tester extensively in the past the same way I have been trying with my current test without issue. That coupled with the fact that the request for the preview link consistently fails in all of the test scenarios I've outlined above leads me to believe there is a problem with the API that is responsible for generating the preview links.
Hey guys! I downloaded Apple’s Icon Composer to build my iOS 26 app icon. I exported my SVG from Illustrator (and verified it through Canva and the W3C validator). However, when I import it into Icon Composer, it looks really weird . There are these bubble-like artifacts appearing in the center.
Here's my orignal svg icon file
trace-logo.txt
Any help will be appreciated!
Best, Justin
開発アプリで通知確認を行うため、UDIDをプロビジョニングプロファイルに追加する必要があります。
iPhoneのUDIDは取得することができたのですが、AppleWatchのUDIDを取得する方法が分かりません。
Xcodeと接続してUDIDを取得しようとしましたが、iPhoneのみ認識がされAppleWatchが認識されていません。
AppleWatchもデベロッパモードをONしなければならないとAppleから返答をもらったが、その方法がわからないのでどなたかご教授お願い致します。
Hi everyone,
I’m hoping someone here can shed some light on what’s going on with Apple’s one-hour security delay when trying to register an iPhone for development use.
I’m currently setting up an app build using Expo / EAS and a paid Apple Developer account. Every time I scan the device registration QR code or try to authorise my iPhone as a development device, I get hit with a “security delay — try again in one hour” message.
This happens every single time, even if I wait the full hour. The device is the same iPhone I always use, signed in to the same Apple ID, and verified with 2FA.
The only thing unusual about my setup is that I’m using Starlink for internet access. Because Starlink uses dynamic IP routing and your exit node changes frequently (depending on which satellite or ground station you’re on), it looks like I’m signing in from a new location each time — sometimes even hundreds of miles apart.
It seems that Apple’s security system flags each of these as a “new login” or “new device registration,” then enforces a one-hour safety lockout. That makes it basically impossible to register my device and proceed with iOS builds or testing.
Has anyone else run into this problem while using Starlink (or other dynamic-routing connections like VPNs or cellular hotspots)?
And if so — is there any known workaround or setting to whitelist a device, stabilise verification, or bypass the repeated one-hour wait?
This feels like an over-protective security feature that doesn’t play well with modern satellite internet setups.
Any insights from the Apple engineers or other developers would be hugely appreciated.
Thanks,
Tim Lazenby
Topic:
Developer Tools & Services
SubTopic:
General
I need to apply headphone-specific scenario only when headphones are the sole active playback device in my iOS audio app.
Problem that there is no absolute way to definitively understand that headphones are the sole active playback device
AVAudioSession.currentRoute.outputs portTypes don't guarantee headphones:
let session = AVAudioSession.sharedInstance()
let outputs = session.currentRoute.outputs
let headphonesOnly = outputs.count == 1 &&
(outputs.first?.portType == .headphones ||
outputs.first?.portType == .bluetoothA2DP ||
outputs.first?.portType == .bluetoothHFP ||
outputs.first?.portType == .bluetoothLE)
The issue in code above that listed bluetooth profiles (A2DP, HFP, LE) can be used by any audio device, not only headphones
Is there any public API on iOS that can:
Distinguish Bluetooth headphones vs Bluetooth speakers when both use A2DP/LE?
Expose the user’s “Device Type” classification (headphones / speaker / car stereo, etc.) that is shown in Settings → Bluetooth → Device Type?
Provide a more reliable way to know “this route is definitely headphones” for A2DP devices, beyond portType and portName string heuristics?
Hi Support Team,
I am new here. I am unable to add my fonts to the asset catalog there is no option to add new font set when I click the plus sign.
When I drag my files in they show up as data.
I have a Contents.json in the font folder called BeVietnamProFont.font.
Is there something I am doing wrong?
Thanks SO much!
{
"info": { "version": 1, "author": "xcode" },
"properties": {},
"fonts": [
{ "filename": "BeVietnamPro-Black.ttf", "weight": "black", "style": "normal" },
{ "filename": "BeVietnamPro-BlackItalic.ttf", "weight": "black", "style": "italic" },
{ "filename": "BeVietnamPro-Bold.ttf", "weight": "bold", "style": "normal" },
{ "filename": "BeVietnamPro-BoldItalic.ttf", "weight": "bold", "style": "italic" },
{ "filename": "BeVietnamPro-ExtraBold.ttf", "weight": "heavy", "style": "normal" },
{ "filename": "BeVietnamPro-ExtraBoldItalic.ttf", "weight": "heavy", "style": "italic" },
{ "filename": "BeVietnamPro-ExtraLight.ttf", "weight": "ultralight", "style": "normal" },
{ "filename": "BeVietnamPro-ExtraLightItalic.ttf", "weight": "ultralight", "style": "italic" },
{ "filename": "BeVietnamPro-Light.ttf", "weight": "light", "style": "normal" },
{ "filename": "BeVietnamPro-LightItalic.ttf", "weight": "light", "style": "italic" },
{ "filename": "BeVietnamPro-Regular.ttf", "weight": "regular", "style": "normal" },
{ "filename": "BeVietnamPro-Italic.ttf", "weight": "regular", "style": "italic" },
{ "filename": "BeVietnamPro-Medium.ttf", "weight": "medium", "style": "normal" },
{ "filename": "BeVietnamPro-MediumItalic.ttf", "weight": "medium", "style": "italic" },
{ "filename": "BeVietnamPro-SemiBold.ttf", "weight": "semibold", "style": "normal" },
{ "filename": "BeVietnamPro-SemiBoldItalic.ttf", "weight": "semibold", "style": "italic" },
{ "filename": "BeVietnamPro-Thin.ttf", "weight": "thin", "style": "normal" },
{ "filename": "BeVietnamPro-ThinItalic.ttf", "weight": "thin", "style": "italic" }
]
}

The app I'm working on has iOS 16.0 as target. Recently Live Activities support was added, but then it started crashing when running on iOS 16.0 devices.
After some investigation, I've found that the culprit was the presence of NSUserActivityTypeLiveActivity and WidgetCenter.UserInfoKey.activityID, even though they were inside an @available(iOS 17.2, *) block. If I comment these two variables, the app work as expected. I've also tried adding #if canImport(ActivityKit) around the code, but without success.
But if the @available isn't working, how can I prevent this? It looks like a bug, since the documentation says that NSUserActivityTypeLiveActivity is supported but iOS 14.0+, but I'm pretty sure it was introduced on 16.1.
This is the only output I get with the crash:
dyld[66888]: Symbol not found: _$s9WidgetKit0A6CenterC11UserInfoKeyV10activityIDSSvgZ
Referenced from: <D6EFF120-2681-34C1-B261-8F3F7B388238> /Users/<redacted>/Library/Developer/CoreSimulator/Devices/8B5B4DC9-3D54-4C91-8C88-E705E851CA0F/data/Containers/Bundle/Application/DB6671FF-CB07-4570-BD63-C851D94FAF29/<redacted>.app/<redacted>.debug.dylib
Expected in: <C5E72BB5-533F-3658-A987-E849888F4DFC> /Library/Developer/CoreSimulator/Volumes/iOS_20A360/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 16.0.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/WidgetKit.framework/WidgetKit
So I'm testing a microapp that is contained in an IPFS folder. I use a web3 website that is used to view NFTs and their IPFS files. The app has gyro controls, which are enabled through a confirmation gesture.
In iOS 18.5, when I press "Request Permission" button I get the popup to allow the app to acess movement and orientation. In iOS26, pressing the button does nothing. Keep in mind that this only happens through the website, that uses iframes. When I load the IPFS file from a direct link, the popup appears with no issue.
I think this might be because iOS26 uses WebGPU or it might be a bug since iOS26 is still in beta.
I’m using Developer iOS app to watch WWDC session videos. i notice it doesn’t record a video as watched after I watched it and even manual marking it using Mark as Watch has no effect.
I remember the issue started several years ago because some old WWDC videos were marked watches.
Topic:
Developer Tools & Services
SubTopic:
General
Im getting this specific error 'Apple 403 detected - Access forbidden' when trying to build my app, my previous 10 builds all succesfully work but now it keeps on giving this error. I'm guessing its because of a new agreement email I recieved. But when i got to both developer website and app store connect there is no new agreements to accept. I'm quite stuck. Any help appreciated. Thanks
Topic:
Developer Tools & Services
SubTopic:
General
Hello,
I am experiencing an authentication issue when submitting my Expo iOS app to App Store Connect using the Expo EAS CLI from the terminal.
The exact flow is as follows:
I run the submit command in the terminal.
I am prompted to enter my Apple ID.
After entering the Apple ID, I am prompted to enter my Apple ID password.
After the password is accepted, I am prompted to enter a 6-digit verification code.
I receive the 6-digit code immediately via SMS or phone call.
I enter the code correctly and immediately, but the CLI always returns “Invalid code.”
This happens every time.
Important notes:
The Apple ID and password are correct.
The 6-digit code is entered immediately and exactly as received.
Logging in to App Store Connect via a web browser with the same Apple ID, password, and SMS code works without any issue.
The problem only occurs when authenticating through the terminal using Expo EAS CLI.
Could you please advise why the verification code is being rejected in the CLI and how I can successfully authenticate and submit my app?
Topic:
Developer Tools & Services
SubTopic:
General
I am developing an iOS in-app SDK for collecting code coverage data. The SDK writes coverage data to a specified file by calling __llvm_profile_set_filename and __llvm_profile_write_file. This implementation worked correctly until I switched to Xcode 26.0 to build my project. Now, when __llvm_profile_write_file() is executed, it crashes with the following error stack. Can anyone provide any assistance?
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000001
Exception Codes: 0x0000000000000001, 0x0000000000000001
Termination Reason: Namespace SIGNAL, Code 11, Segmentation fault: 11
Terminating Process: exc handler [454]
Thread 96 name: Dispatch queue: com.test-coverage.processing
Thread 96: Crashed:
0 Demo 0x122602ea8 initializeValueProfRuntimeRecord (in Demo) (InstrProfilingValue.c:351)
1 Demo 0x00000001226064c0 writeOneValueProfData (in Demo) (InstrProfilingWriter.c:153)
2 Demo 0x0000000122606308 writeValueProfData (in Demo) (InstrProfilingWriter.c:234)
3 Demo 0x00000001226060d0 lprofWriteDataImpl (in Demo) (InstrProfilingWriter.c:401)
4 Demo 0x0000000122605d98 lprofWriteData (in Demo) (InstrProfilingWriter.c:261)
5 Demo 0x0000000122604804 writeFile (in Demo) (InstrProfilingFile.c:536)
6 Demo 0x122604664 __llvm_profile_write_file_alias + 228
7 Demo 0x000000011c6dd108 -[BDTestCoverage p_dumpMainCoverageInfoWithCustomKey:] (in Demo) (TestCoverage.m:995)
8 Demo 0x000000011c6dcef8 -[BDTestCoverage p_dumpAllCoverageProfileWithCustomKey:] (in Demo) (TestCoverage.m:970)
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!
Hello,
I've encountered unexpected behavior related to version information in our app logs, and I'd like to ask for some advice.
We reviewed logs collected from a user running our app (currently available on the App Store). The logs are designed to include both the build number and the app version.
Based on the build number in the logs, we believe the installed app version on the user's device is 1.0.3.
However, the app version recorded in the logs is 1.1.5, which is the latest version currently available on the App Store.
In our project, we set the app version using the MARKETING_VERSION environment variable.
This value is configured via XcodeGen, and we define it in a YAML file.
Under normal circumstances, the value defined in the YAML file (MARKETING_VERSION = 1.0.3) should be embedded in the app and reflected in the logs. But in this case, the version from the current App Store release (1.1.5) appears instead, which was unexpected.
We'd like to know what might cause this behavior, and if there are any known factors that could lead to this.
Also, is it possible that MARKETING_VERSION might somehow dynamically reflect the version currently available on the App Store?
YAML:
info.plist:
I have developed a Swift macro called @CodableInit in the SwiftCodableMacro module, and I’m able to use it successfully in my main project.
Here’s an example usage:
import SwiftCodableMacro
@CodableInit // This is for Codable macros
public class ErrorMonitoringWebPlugin {
public var identifier: UUID = UUID()
// MARK: - Codable
required public init(from decoder:Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
identifier = try values.decode(UUID.self, forKey: .identifier)
}
}
However, when I try to write a unit test for the ErrorMonitoringWebPlugin class, I encounter an issue. Here's the test case:
func testCodableSubjectIdentifierShouldEqualDecodedSubjectIdentifier() {
self.measure {
let encoder = JSONEncoder()
let data = try? encoder.encode(subject)
//Here I am getting this error
Class 'JSONEncoder' requires that 'ErrorMonitoringWebPlugin' conform to 'Encodable'
let decoder = JSONDecoder()
let decodedSubject = try? decoder.decode(ErrorMonitoringWebPlugin.self, from: data!)
XCTAssertEqual(subject.identifier, decodedSubject?.identifier)
}
}
The compiler throws an error saying:
Class 'JSONEncoder' requires that 'ErrorMonitoringWebPlugin' conform to 'Encodable'
Even though the @CodableInit macro is supposed to generate conformance, it seems that this macro-generated code is not visible or active inside the test target.
How can I ensure that the @CodableInit macro (from SwiftCodableMacro) is correctly applied and recognized within the XCTest target of my main project?
I am running Appium tests on an iOS 18 simulator, and I am encountering an intermittent issue where the device screen gets locked unexpectedly during the tests. The Appium logs show no errors or unusual activity, and all commands appear to be executed successfully.
However, upon reviewing the device logs, I see entries related to the lock event, but the exact cause remains unclear.
SpringBoard: (SpringBoard) [com.apple.SpringBoard:Common] lockUIFromSource:Boot options:{
SBUILockOptionsLockAutomaticallyKey: 1,
SBUILockOptionsForceLockKey: 1,
SBUILockOptionsUseScreenOffModeKey: 0
}
SpringBoard: (SpringBoard) [com.apple.SpringBoard:Common] -[SBTelephonyManager inCall] 0
SpringBoard: (SpringBoard) [com.apple.SpringBoard:Common] LockUI from source: Now locking
Has anyone experienced similar behavior with Appium on iOS 18, or could there be a setting or configuration in the simulator that is causing this issue?