Hi everyone,
We are currently exploring ways to implement a frictionless Wi-Fi setup for our hardware devices without requiring a dedicated third-party application. We are interested in leveraging Apple's WAC (Wireless Accessory Configuration) to sync Wi-Fi credentials directly from iOS devices. However, we have struggled to find comprehensive technical documentation or specifications regarding the WAC service. Could anyone point us to the official source for these materials?
Additionally, we have a couple of technical questions:
1.We are testing WAC provisioning and found that the Home app can discover our device and successfully get it online. However, it always ends with a "Failed to add accessory" message.
Does WAC support imply that a device should be addable via the Home app? If not, why is the Home app able to discover and start the setup for a non-HomeKit WAC device?
2. Our device is already Apple AirPlay certified. Does implementing WAC require additional standalone certification, or is it covered under the existing MFi/AirPlay certification umbrella?
Any insights or guidance would be greatly appreciated. Thank you!
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Apple's iCloud File Management documentation says to "avoid special punctuation or other special characters" in filenames, but doesn't specify which characters. I need a definitive list to implement filename sanitization in my shipping app.
Confirmed issues
Our iOS app (CyberTuner, App Store, 15 years shipping on App Store) manages .rcta files in the iCloud ubiquity container via NSFileManager APIs. We've confirmed two characters causing sync failures:
Ampersand (&): A file named Yamaha CP70 & CP80.rcta caused repeated "couldn't be backed up" dialogs. ~12 users reported this independently. Replacing & resolved it immediately. No other files in the same directory were affected.
Percent (%): A file with % in the filename was duplicated by iCloud sync (e.g., filename% 1.rcta, filename% 2.rcta), and the original was lost. Currently reproducing across multiple devices.
Both characters have special meaning in URL encoding (% is the escape character, & is the query parameter separator), which suggests the issue may be in URL handling within the sync pipeline.
What I'm looking for:
A definitive list of characters that cause problems in the iCloud sync pipeline specifically — not APFS restrictions, but CloudDocs/FileProvider/server-side issues.
Confirmation whether these characters are problematic: & % # ? + / : * " < > |
Is there a system API for validating or sanitizing filenames for iCloud compatibility before writing to the ubiquity container?
Our users are piano technicians who naturally name files "Steinway & Sons" — we need to know exactly what to sanitize rather than guessing.
Environment: iOS 17–26, Xcode 26.1, APFS, NSFileManager ubiquity container APIs Bundle FEEDBACK ASSISTANT ID
FB21900837
Topic:
App & System Services
SubTopic:
iCloud & Data
Hi, I'm trying to use AnchorEntity for horizontal surfaces.
It works when the entity is being created, but I'm looking for a way to snap this entity to the nearest surface, after translating it, for example with a DragGesture.
What would be the best way to achieve this? Using raycast, creating a new anchor, trackingMode to continuous etc.
Do I need to use ARKitSession as I want continuous tracking?
Hello,
I am developing a driver-based application targeting iOS 14+, where users receive time-sensitive trip offers (approximately 10–15 seconds to respond).
We would like to implement behavior similar to approval-based apps (e.g., MyGate-style interaction), with the following requirements:
When the device is locked:
A highly visible notification that allows quick Accept / Decline action.
When the device is unlocked (foreground or background):
A notification that remains prominently visible (sticky-style) at the top of the screen until the user takes action (Accept / Decline) or the offer expires.
Our goal is to ensure the offer remains noticeable and actionable within the short response window.
I would appreciate clarification on the following:
On iOS 14, is there any supported mechanism to present a true full-screen blocking interface while the device is locked (without using CallKit or Critical Alerts entitlement)?
Is there a supported way to make a notification persistent or non-dismissible until the user takes action or the offer expires?
Are there any App Review concerns with presenting a blocking modal immediately after the user interacts with a notification?
We want to ensure full compliance with Apple’s platform guidelines and avoid unsupported or discouraged patterns.
Thank you for your guidance.
Topic:
App & System Services
SubTopic:
Notifications
Tags:
APNS
Notification Center
User Notifications
Is the MacOs tahoe 26.2 Finder's Column "column width" not adjustable in column mode?
Topic:
Community
SubTopic:
Apple Developers
Here on the forums I see a lot of reports like this:
According to App Store Connect, I’m an Admin member of a team, but I can’t access the Certificates, Identifiers, and Profiles section of the Developer website for that team.
There’s one really common reason for this, namely that this is an Individual team. This is clearly documented in Developer Account Help > Access > Roles and access, which says:
If you’re enrolled as an individual and add users in App Store Connect, users receive access only to your content in App Store Connect and are not considered part of your team in the Apple Developer Program.
So, if App Store Connect indicates that you’re a team Admin but you can’t access Certificates, Identifiers, and Profiles, it’s critical that you check that this is not an Individual team. To do this:
Log on to Developer > Account.
Select the correct team at the top right.
Scroll down to the “Membership details” section.
Look at the “Enrolled as” field.
If it says “Individual”, then only the team’s Account Holder can access Certificates, Identifiers, and Profiles. OTOH, if it says something else, like “Organization” or “Enterprise”, then see below.
If you’re working for someone else who only has an Individual team, I recommend that you encourage them to update to an Organization team. For advice on how to do that, see Developer Account Help > Membership > Updating your account information > Updating an individual membership to an organization membership.
If you can’t access Certificates, Identifiers, and Profiles and you’re absolutely sure that this is not an Individual team, I recommend that you seek formal assistance via Apple > Developer > Contact Us.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
This is a successor to:
https://developer.apple.com/forums/thread/814231
I went into a slightly different direction. I generated more AI slop that use NSLock. Then I had the NSLock usage changed to Mutex usage. Now it crashes with:
Task 13: EXC_BREAKPOINT (code=1, subcode=0x18d29326c)
On one of the mutex closures. With an extended description:
warning: TypeSystemSwiftTypeRef::operator(): had to engage SwiftASTContext fallback for type $s7Combine10PublishersO21LineBreakingPublisherE11SplitAtZeroV12Subscription33_D18F5AAE73662968F407B0A79FBD1F8DLLCy_x_qd__GD
I put the class, a Subscription nested in its corresponding Publisher operator, in the given file
Subscription.txt
TabView inside NavigationStack is abnormal when using Xcode 26. The y deviation is about 14.
But it is right when using Xcode 16.4.
It is also right without NavigationStack.
import SwiftUI
struct ContentView: View {
private enum Tab: Hashable, CaseIterable {
case a
case b
}
@State private var currentTab: Tab = .a
@State private var path: NavigationPath = NavigationPath()
var body: some View {
NavigationStack(path: $path) {
TabView(selection: $currentTab) {
ForEach(Tab.allCases, id: \.self) { tab in
switch tab {
case .a:
Color.blue
// .offset(y: -14)
case .b:
Color.yellow
}
}
}
.tabViewStyle(.page(indexDisplayMode: .never))
.ignoresSafeArea(.all)
}
}
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
Hello communities, I am going to submit a new binary build with subscriptions. However, I cannot find the In-App Purchases and Subscriptions section like before. Is there any update on this?
Despite the fact that the subscriptions were accepted and banking & agreements were set up, I still can't figure out how to include them in the binary build.
Thanks for the advice.
Hi Everyone, Need help 🙌
Could someone help how to test pending purchases in Sandbox accounts ? Can test ask to buy flow ? if yes how, could not find any information about that.
Hello Apple Developers and users I am writing this message reguarding some help on some performance codes/settings I can use for my Macbook since I recently downloaded the MacOs Tahoe 26.2 and its been very glitchy and laggy with gaming and just using my mac normally I have tried using a FPS unlocker and downloading Metal 4 the FPS unlocker hasent worked at all I am still stuck on the normal 60 FPS and need some advice/help. Thank you. Kind regards Zachary
Dear Apple Team,
I am writing regarding our pending account termination.
Timeline:
January 25, 2026: Received Pending Termination Notice
January 25, 2026: Submitted appeal and corrective update
February 5, 2026: Responded to DPLA compliance notice
February 10, 2026: Submitted follow-up via Review Board and Contact Us
Current: Corrective update remains In Review, no response received
We have submitted corrective updates addressing all identified issues. The corrected version is currently In Review.
With the February 24 deadline approaching and no feedback received through any channel, we are concerned about the status of our appeal.
We remain fully committed to compliance and respectfully request confirmation that our appeal is being reviewed.
Thank you.
I’ve seen, mainly in discussions with AIs, that ARFaceTrackingConfiguration uses the same technology as Face ID and therefore should work in complete darkness. However, I haven’t been able to achieve this. Does anyone know if this is actually true?
I'm using an iPhone 16 to test, and the Face ID works well in darkness.
When launching my app (and even a bran new app) on the simulator in debug, the app is installed on the simulator, launched but freezed. Even with a basic hello world app. Any idea?
Hello,
I would like to report a potential Dynamic Type rendering issue observed in Control Center.
After increasing the system text size to 100%, the label “My Card” appears visually constrained and partially clipped instead of scaling proportionally according to Dynamic Type guidelines.
Steps to reproduce:
Open Settings
Increase Text Size to 100%
Open Control Center
Observe the “My Card” label
Expected behavior:
The label should scale proportionally using preferred text styles and remain fully visible without truncation.
Observed behavior:
The label appears constrained, suggesting possible fixed height constraints or insufficient layout flexibility.
Technical hypothesis:
This may be caused by:
Fixed height constraints on the text container
Non-preferred font usage instead of dynamic text styles
Missing adjustsFontForContentSizeCategory configuration
Incomplete layout testing across content size categories
Given Apple’s emphasis on accessibility and Dynamic Type compliance, I believe this may be worth reviewing in a future update.
Has anyone else observed similar behavior?
Topic:
UI Frameworks
SubTopic:
UIKit
When I use UIScrollView to Browse photos, sometime was crash.
Issue Details:
App: 美信 (Midea Connect)
Problem: Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Feedback generator was deactivated by its client more times than it was activated: <_UIZoomEdgeFeedbackGenerator: 0x33527cdc0>' First throw call stack
Affected: 4 user out of thousands
iOS Version: 18.0.1、26.1、26.2
What Works:
All other users has no crash
Same iOS version, no issues
User Has Tried:
The user experienced two crashes after opening the page hundreds of times
Topic:
UI Frameworks
SubTopic:
UIKit
I can't seem to find information on this but this is causing a critical bug where the Strong Password suggestion sheet presents on any secure field (UIKit) and clears the others when closing it. This means the user cannot enter a password when there is a secure confirm password field because switching fields clears the other.
This looks to be a recent issue but I can't tell when this was introduced or if this is SDK / OS version related. I am finding it in both Xcode 26.2 and 16.4 when running on device (iOS 26.2.1 and XC 26 simulators).
Code to reproduce:
class ViewController: UIViewController {
override func loadView() {
let v = UIStackView()
v.axis = .vertical
v.layoutMargins = .init(top: 16, left: 16, bottom: 16, right: 16)
v.isLayoutMarginsRelativeArrangement = true
view = v
let t1 = UITextField()
t1.textContentType = .username
t1.placeholder = "Username"
v.addArrangedSubview(t1)
let t2 = UITextField()
t2.isSecureTextEntry = true
t2.textContentType = .newPassword
t2.placeholder = "Password"
t2.clearsOnInsertion = false
t2.clearsOnBeginEditing = false
t2.passwordRules = nil
t2.clearButtonMode = .always
v.addArrangedSubview(t2)
let t3 = UITextField()
t3.isSecureTextEntry = true
t3.textContentType = .newPassword
t3.placeholder = "Confirm Password"
t3.clearsOnInsertion = false
t3.clearsOnBeginEditing = false
t3.passwordRules = nil
t3.clearButtonMode = .always
v.addArrangedSubview(t3)
v.addArrangedSubview(UIView())
}
}
No matter what textContentType is used the strong password still forcefully breaks the flow and blocks the user.
Device: iPhone (real device)
iOS: 17.x
Permission: Granted
Notifications are scheduled using UNCalendarNotificationTrigger.
The function runs and prints "SCHEDULING STARTED".
However, notifications never appear at 8:00 AM, even the next day.
Here is my DailyNotifications file code:
import Foundation
import UserNotifications
enum DailyNotifications {
// CHANGE THESE TWO FOR TESTING / PRODUCTION
// For testing set to a few minutes ahead
static let hour: Int = 8
static let minute: Int = 0
// For production use:
// static let hour: Int = 9
// static let minute: Int = 0
static let daysToSchedule: Int = 30
private static let idPrefix = "daily-thought-"
private static let categoryId = "DAILY_THOUGHT"
// MARK: - Permission
static func requestPermission(completion: @escaping (Bool) -> Void) {
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound]) { granted, _ in
DispatchQueue.main.async {
completion(granted)
}
}
}
// MARK: - Schedule
static func scheduleNext30Days(isPro: Bool) {
print("SCHEDULING STARTED")
let center = UNUserNotificationCenter.current()
center.getNotificationSettings { settings in
guard settings.authorizationStatus == .authorized else {
requestPermission { granted in
if granted {
scheduleNext30Days(isPro: isPro)
}
}
return
}
// Remove old scheduled notifications
center.getPendingNotificationRequests { pending in
let idsToRemove = pending
.map { $0.identifier }
.filter { $0.hasPrefix(idPrefix) }
center.removePendingNotificationRequests(withIdentifiers: idsToRemove)
let calendar = Calendar.current
let now = Date()
for offset in 0..<daysToSchedule {
guard let date = calendar.date(byAdding: .day, value: offset, to: now) else { continue }
var comps = calendar.dateComponents([.year, .month, .day], from: date)
comps.hour = hour
comps.minute = minute
guard let scheduleDate = calendar.date(from: comps) else { continue }
if scheduleDate <= now { continue }
let content = UNMutableNotificationContent()
content.title = "Just One Thought"
content.sound = .default
content.categoryIdentifier = categoryId
if isPro {
content.body = thoughtForDate(scheduleDate)
} else {
content.body = "Your new thought is ready. Go Pro to reveal it."
}
let triggerComps = calendar.dateComponents(
[.year, .month, .day, .hour, .minute],
from: scheduleDate
)
let trigger = UNCalendarNotificationTrigger(
dateMatching: triggerComps,
repeats: false
)
let identifier = idPrefix + isoDay(scheduleDate)
let request = UNNotificationRequest(
identifier: identifier,
content: content,
trigger: trigger
)
center.add(request)
}
}
}
}
// MARK: - Cancel
static func cancelAllScheduledDailyThoughts() {
let center = UNUserNotificationCenter.current()
center.getPendingNotificationRequests { pending in
let idsToRemove = pending
.map { $0.identifier }
.filter { $0.hasPrefix(idPrefix) }
center.removePendingNotificationRequests(withIdentifiers: idsToRemove)
}
}
// MARK: - Helpers
private static func isoDay(_ date: Date) -> String {
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd"
return formatter.string(from: date)
}
private static func thoughtForDate(_ date: Date) -> String {
guard let url = Bundle.main.url(forResource: "thoughts", withExtension: "json"),
let data = try? Data(contentsOf: url),
let quotes = try? JSONDecoder().decode([String].self, from: data),
!quotes.isEmpty
else {
return "Stay steady. Your growth is happening."
}
let calendar = Calendar.current
let comps = calendar.dateComponents([.year, .month, .day], from: date)
let seed =
(comps.year ?? 0) * 10000 +
(comps.month ?? 0) * 100 +
(comps.day ?? 0)
let index = abs(seed) % quotes.count
return quotes[index]
}
}
Then here is my Justonethoughtapp code:
import SwiftUI
import UserNotifications
@main
struct JustOneThoughtApp: App {
@StateObject private var thoughtStore = ThoughtStore()
// MUST match App Store Connect EXACTLY
@StateObject private var subManager =
SubscriptionManager(productIDs: ["Justonethought.monthly"])
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(thoughtStore)
.environmentObject(subManager)
.onAppear {
// Ask for notification permission
NotificationManager.shared.requestPermission()
// Schedule notifications using PRO status
DailyNotifications.scheduleNext30Days(
isPro: subManager.isPro
)
}
}
}
}
final class NotificationManager {
static let shared = NotificationManager()
private init() {}
func requestPermission() {
UNUserNotificationCenter.current().requestAuthorization(
options: [.alert, .sound, .badge]
) { _, _ in }
}
}
I have paid apple developer program membership successfully two days ago(individual account) but my account is still PENDING.
I have sent form to apple but no respsone.
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Hi @DTS Engineer
in tvOS 26.2 Beta is still this annoying Shadow Glitch… 😔
I have submitted an Bug-Report, but dont get an Answer… FB18719371
The Animation is not smooth and the Shadow is abruptly „jumping“…
I don’t get any Response from the Apple Engineers. But this GUI Glitch makes the otherwise very high-quality tvOS GUI appear very unprofessional.
Could you please help me? 🤔
Topic:
Community
SubTopic:
Apple Developers