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?
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
Created
Hello!!
I wasn't able to find a feedback form anywhere so I'm hoping this could reach the team that made the submission form for the challenge. I was really hoping the form could save our progress. Working on the longer response questions does take time, and it's incredibly frustrating when the site tends to reload, losing all progress and causing me to copy everything over again.
currently i'm in xcode 26.2 which want's me to use ios 26.2 but i only have ios 18.2 and i can't figure out how to make xcode use that simulator
Topic:
Developer Tools & Services
SubTopic:
General
I'm experiencing a persistent issue where all my notarization submissions remain stuck in "In Progress" indefinitely. This is my first time notarizing an app.
Environment:
macOS 26.2 (Tahoe)
Using xcrun notarytool submit
Team ID: Y7T24GD249
App: Electron-based desktop application (~400MB)
Stuck submissions (oldest to newest):
51412777-848c-4be1-a952-5ff32d6653f9 - Feb 4, 4:39 PM UTC (48+ hours)
9c4f94a1-d59a-4607-adf1-94c82fb4254b - Feb 4, 11:23 PM UTC
1c593512-ef55-4801-ba60-8b1bbc5a6f66 - Feb 4, 11:30 PM UTC
de66e5cf-143c-40ec-ba62-2f07609044b4 - Feb 5, 1:39 PM UTC
964b2196-ad2e-4503-b15f-dc7f6a996ef0 - Feb 5, 2:25 PM UTC
c8fdcccf-46cd-4609-bc33-faaa8fad696f - Feb 6, 5:11 PM UTC
What I've tried:
Verified Developer ID Application certificate is valid
Checked code signatures with codesign -vvv --deep --strict
Submitted both .zip and .dmg formats
Checked Apple System Status (shows operational)
notarytool log returns "Record not found" for all submissions
Is there a known issue affecting first-time notarization, or could my account be flagged? Any help would be greatly appreciated.
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 guys,
I know people already talked about this here but maybe some of you solved it. When trying Alarmkit, it keeps playing the same default sound. I tried a lot of changes to make it play my custom sound but nothing worked. Has anyone solved this or is it just the alarmkit problem? Thank you and take care guys.
Topic:
Developer Tools & Services
SubTopic:
General
I am trying to make an app icon 20 x 20 pixel dimension. I cannot get the icon to be sized this way. It gets blurry. I have used adobe express + illustrator. I have not been able to size it. It is a 400 x 400 dimension png. I want the proportion to be 20 x 20 without losing the clarity.
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’ve created a document type for my app and set it up in the Info Configuration in Xcode. This all works as expected: Implemented with the Transferrable API and ShareLink, I can share an app’s file via the Files app or Notes and then import the file via a Share extension and the fileImport swiftUI api.
My question is regarding Messages, specifically.
It appears as a ShareLink option and I’m able to send my app’s document type via a message, but I’m unable to open it or share it (internally, with my app), other than being able to forward or delete it. If I copy the file, I can’t access it within my app (it’s still stored in the Messages private bundle) and startAccessingSecurityScopedResource returns false as expected. The message does detect the right icon, so it’s recognizing the custom document type.
If my Share Extension, exported document type, and transferable implementation is configured correctly, should I be able to open a file for my app shared via Messages? Is this an allowed action?
I get various answers from AI, and I can’t test this in the Simulator on pre-26 devices.
Hi,
Some crashes downloaded from TestFlight aren't symbolicated by Xcode and I don't know why, here's an example:
Although all uploaded builds contain debug symbols (Symbols directory with .symbols files) and other crashlogs in the same version are symbolicated just fine (also visible on the above SS).
I have access only to the .symbols files but not to the original dSYMs and I wonder how to perform symbolication manually. I tried pointing atos and symbolicatecrash utilities to respective .symbols file, but they are unable to work with it.
I'm sure it's possible as TestFlight symbolicates crashlogs using only .symbols files somehow. Could you give a hint?
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Developer Tools
TestFlight
Organizer Window
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
I’m a registered iOS developer, and I’ve been facing an issue with installing iOS developer updates for the past couple of years. I can download the updates, but they get stuck at 99.9% complete and don’t finish. I’ve tried following the instructions to force restart the phone, but it stays on the Apple logo screen until it dies.
I can update official iOS versions, but not beta versions. To update, I have to put the phone in DFU mode and install the update that way. This is frustrating and prevents me from making timely updates to my app and from diagnosing new issues during testing.
I’d like to request that Apple investigate this issue and identify a solution. For reference, I’ve installed a bare-bones version with no new apps, and the problem persists. I would like a resolution that allows me to update normally without having to DFU the phone each time. This occurs via OTA or IPSW manual download and installation.
Please refer to the following FB submission numbers: FB21642029 and FB21017894.
CAN SOMEONE PLEASE RESPOND BACK TO THIS MESSAGE AND HELP ME TROUBLESHOOT THIS ISSUE?!
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?
I have an MAUI based application build and ready for the distribution. The application is working perfectly in the debug environment on the simulator. So the app logic is working correctly as expected without any errors.
But when a release build is created the application crashes on the simulator and physical device.
I'm developing the application using .Net 10 framework with target device iOS 26. The Supported OS Platform is set to 15.0 in csproj file. Also have the entitlements. plist file set in the csproj. The IDe used is Visual Studio Code for Mac (MAC OS). The application uses MSAL for the login / authentication purpose (Microsoft.Identity.Client) and SQLite Database (Sqlite-net-pcl)
Message:
Kindly guide me to build the application correctly in release version and get the ipa file ready for the in house distribution that could be deployed correctly on the physical device with iOS 18 / 26.
Topic:
Developer Tools & Services
SubTopic:
General
I am using macOS’s /bin/date command, both in Terminal and via AppleScript (do shell script). I noticed inconsistent behaviour with the %N format specifier for nanoseconds:
• On some Macs, date +%s%N returns numeric nanoseconds as expected.
• On other Macs, the same command returns a literal N or fails when coerced to a number.
• This occurs across different macOS versions and on both Intel and Apple Silicon machines.
My understanding is that macOS ships BSD date, which does not officially document %N. I am trying to determine:
1. Is %N in /bin/date officially supported on macOS, and if so, on which versions?
2. If %N is not supported, what is Apple’s recommended, portable method for obtaining sub-second or millisecond timestamps in shell scripts or AppleScript across all macOS versions?
I am located in Taiwan and recently updated my Mac to the latest OS and installed the newest Xcode. However, I’m experiencing extremely slow download speeds when trying to add the iOS 26.2 Simulator Runtime (approx. 8GB) via Xcode > Settings > Platforms.
It is currently downloading at a rate of only 500MB per hour, which is impractical. I have checked the official downloads page but couldn't find a standalone DMG link for this specific version.
My questions are:
Is there a direct download link (DMG) available on the Apple Developer portal for the iOS 26.2 Simulator?
If no direct link exists, are there any recommended methods to accelerate the download? (e.g., using terminal commands or changing DNS settings).
Any help or direct URLs would be greatly appreciated. Thank you!
Hi there! I am not a coder, but I built an app in ADALO just for in-house use in my company, PetroImaging. The app looked the way I wanted it to in the preview mode in ADALO, but when my app was approved and ready for download in the app store, a lot of content was missing. Many buttons that linked to screens were just gone - even though they were there in the preview and the buttons are formatted correctly in adalo. How can I get my content that I need back on my app so the employees can being using it?
Topic:
Developer Tools & Services
SubTopic:
General
This is from an Xcode generated file.
var values: [String] = []
let exp = Expectation()
let c = pub.filter { $0 != nil }.map { $0! }.sink(
The second line gives an error: "'Expectation' cannot be constructed because it has no accessible initializers". My best guess that Expectation objects come from some other Apple Swift Testing function, but I don't know where.
How to replicate:
Design a icon in icon composer
Save it and put the .icon file in your project, then in your targets put the name of the .icon file in there. Either clean build folder or restart IDE
One Error:
unable to open dependencies file (/Users/user/Library/Developer/Xcode/DerivedData/project-fqrfzzkwgrutdabmcqjeupvyetci/Build/Intermediates.noindex/project.build/Debug/project.build/assetcatalog_dependencies_thinned)
And one warning:
Icon export exited with status 255, signal 0
Is this a known issue or a easy fix? Or is it a issue on my end? Thanks
I used to develop iPhone apps about a decade ago and am now back at it with an iPhone and companion Apple Watch app.
Why does it suck so bad? I a must be doing something wrong, but what I am doing is out of the box. The majority of the time when I go to build on the watch I get:
Previous preparation error: A connection to this device could not be established.; Timed out while attempting to establish tunnel using negotiated network parameters.
Which I then first try to force quit the app on the watch and if that does not work, reboot the watch (which is pretty ridiculous).
I tried Gemini and it gave me the following explanation:
This is arguably the single most frustrating error in the entire watchOS development ecosystem. As an expert, I can tell you that you are not doing anything wrong; you are fighting a fragile architecture.
Here is the technical breakdown of why this happens and a workflow to mitigate it without constant reboots.
The Technical "Why"
This error message reveals that the issue lies in the CoreDevice (and formerly usbmuxd) infrastructure, specifically in the secure transport layer.
The "Tunnel" Failure: Xcode attempts to establish a secure, encrypted tunnel (DTXConnection) to the Apple Watch to push the debugger and the app binary. Unlike the iPhone, which can sustain a high-bandwidth connection easily, the Watch aggressively manages its radios (Bluetooth vs. WiFi vs. AWDL) to save battery.
The "Handshake" Timeout: If the Watch is on Bluetooth (Low Energy) when Xcode initiates the tunnel, the bandwidth is insufficient. The system tries to escalate the connection to WiFi (or Apple Wireless Direct Link). If this negotiation takes even a few milliseconds too long—due to 2.4GHz interference, router mDNS configuration, or the Watch CPU being throttled—the handshake times out.
The "Previous Preparation Error": This is the insidious part. Once the handshake fails once, Xcode’s device service caches that failure state for the device UUID. It marks the device as "unreachable" to prevent the IDE from hanging indefinitely on subsequent tries.
Why you see it constantly: You aren't actually triggering a new connection attempt; you are hitting the cached "failed" state immediately.
Unfortunately, the solutions it gives me are:
The "Wired Proxy" Method (Most Reliable)
This is the gold standard for watchOS debugging. Do not rely on "Connect via Network" for the Watch directly if you can avoid it.
Disable WiFi on your Mac (temporarily) or ensure the Mac and iPhone are on the exact same SSID.
Plug your iPhone into the Mac via USB.
Ensure the Watch is paired to that iPhone.
Result: Xcode will tunnel the instructions through the USB connection to the Phone, and the Phone acts as a high-bandwidth proxy to the Watch. This eliminates the "Mac-to-Watch" WiFi negotiation failure point.
Do you hit this regularly? What do you do to make for a smooth development and deployment process? Or is it really this fragile?
Thanks for any help!
Bryan