General:
Forums subtopic: App & System Services > Networking
TN3151 Choosing the right networking API
Networking Overview document — Despite the fact that this is in the archive, this is still really useful.
TLS for App Developers forums post
Choosing a Network Debugging Tool documentation
WWDC 2019 Session 712 Advances in Networking, Part 1 — This explains the concept of constrained networking, which is Apple’s preferred solution to questions like How do I check whether I’m on Wi-Fi?
TN3135 Low-level networking on watchOS
TN3179 Understanding local network privacy
Adapt to changing network conditions tech talk
Understanding Also-Ran Connections forums post
Extra-ordinary Networking forums post
Foundation networking:
Forums tags: Foundation, CFNetwork
URL Loading System documentation — NSURLSession, or URLSession in Swift, is the recommended API for HTTP[S] on Apple platforms.
Network framework:
Forums tag: Network
Network framework documentation — Network framework is the recommended API for TCP, UDP, and QUIC on Apple platforms.
Building a custom peer-to-peer protocol sample code (aka TicTacToe)
Implementing netcat with Network Framework sample code (aka nwcat)
Configuring a Wi-Fi accessory to join a network sample code
Moving from Multipeer Connectivity to Network Framework forums post
Network Extension (including Wi-Fi on iOS):
See Network Extension Resources
Wi-Fi Fundamentals
TN3111 iOS Wi-Fi API overview
Wi-Fi Aware framework documentation
Wi-Fi on macOS:
Forums tag: Core WLAN
Core WLAN framework documentation
Wi-Fi Fundamentals
Secure networking:
Forums tags: Security
Apple Platform Security support document
Preventing Insecure Network Connections documentation — This is all about App Transport Security (ATS).
Available trusted root certificates for Apple operating systems support article
Requirements for trusted certificates in iOS 13 and macOS 10.15 support article
About upcoming limits on trusted certificates support article
Apple’s Certificate Transparency policy support article
What’s new for enterprise in iOS 18 support article — This discusses new key usage requirements.
Technote 2232 HTTPS Server Trust Evaluation
Technote 2326 Creating Certificates for TLS Testing
QA1948 HTTPS and Test Servers
Miscellaneous:
More network-related forums tags: 5G, QUIC, Bonjour
On FTP forums post
Using the Multicast Networking Additional Capability forums post
Investigating Network Latency Problems forums post
WirelessInsights framework documentation
iOS Network Signal Strength
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
As of right now Icon Composer does not support creating app icons for visionOS and tvOS. It appears that only system apps can provide glass icons for those platforms. How should developers handle this? In extreme cases, the flat icon on those platforms will look wildly different from their glass counterparts.
From what I have seen visionOS and tvOS also do not apply any automatic treatment like on iOS where legacy icons get a glass effect.
So, third party app icons are just going to look out of place for (hopefully just) a year on those platforms? What is the recommended approach here? You could obviously fake the effect, but I feel like that would be worse.
I am attempting to verify my domain
https://technoq.genesistechnologies.tech
for use with Apple Pay Merchant ID. However, when I attempt verification, the process fails with the message:
“Domain verification failed.”
Unfortunately, no additional details are provided.
I have already completed the following steps:
Downloaded the verification file apple-developer-merchantid-domain-association.txt.
Placed it in the .well-known directory as instructed.
Confirmed that it is publicly accessible at:
https://technoq.genesistechnologies.tech/.well-known/apple-developer-merchantid-domain-association.txt
Verified that a valid SSL certificate is configured for the domain.
Could you please advise on why the verification might be failing and what additional steps I should take to resolve this issue?
After recently updating my MacBook Pro (14-inch, 2021, M1 Pro) to macOS Sequoia (15.6), my docking station sporadically disconnects and reconnects about once every 1-5 minutes. This causes my external screens to switch off for about a second, and my external drive to disconnect.
This has (obviously) completely broken my workflow, and I've had to resort to connecting two screens directly to the MacBook. I've had to completely disconnect the external drive for fear of corrupting due to the sudden disconnects.
I've seen other people report the same or similar issues here, and other places. I've tried all kinds of fixes suggested on various forums (reinstalled drivers, cleared preference files, etc.) without any luck.
To be frank, this is a completely unacceptable bug that needs to be fixed ASAP. I cannot accept that installing an os update completely breaks something as fundamental as connecting to external devices via a docker. Especially when this worked completely fine on macOS 13, and I was essentially forced to update because the (working) macOS 13 was no longer supported.
We are working with Saferpay. And integrating Applepay Server to Server. But we are having token generation issue. It does not give a valid test card information. We have created a tester account as India country. Is that an issue?
Topic:
App & System Services
SubTopic:
Apple Pay
Hello, Im having an issue seeing my application appear in in testflight. as soon as i run the command eas submit - p ios --latest it completes and says
Your binary has been successfully uploaded to App Store Connect!
It is now being processed by Apple - you will receive an email when the processing finishes.
It usually takes about 5-10 minutes depending on how busy Apple servers are.
When it's done, you can see your build here:
the app sometimes flashes on the screen in testflight then is gone forever
This is an expo react native application.... I was able to submit builds but all of a sudden this started occuring.
Topic:
App Store Distribution & Marketing
SubTopic:
TestFlight
Tags:
Developer Tools
Accounts
App Store
iOS
My app (called "MuVis - Music Visualizer") passes the macOS App Store verification, but is failing the iOS verification. The errors indicate a problem with the Swift package github.com/Treata11/CBass. I have been in touch with the CBass package developer (Treata11) as well as the original BASS developers (un4seen.com). We think the problem is related to CBass swift-package config (which apparently works fine for mac, but doesn’t for iOS). The source code for the package is at the site package. All of us think that the package is configured correctly in accordance with the latest Apple package development documentation. Please tell us what is wrong with this package, and how to make it pass the iOS App Store verification.
The Xcode error messages from validation testing include several items similar to:
Upload Symbols Failed: inline-code
The archive did not include a dSYM for the bass.framework with the UUIDs [18D5DBE2-3250-3EDE-B75C-D81B4E9F05AC, A88554A0-9087-3776-AC05-424B2D52F973, DEB682F5-ABBE-39D5-A0F8-8C01C14E178A]. Ensure that the archive's dSYM folder includes a DWARF file for bass.framework with the expected UUIDs.
Since the MuVis app is long and complex, I have written a minimal reproducible example app (called "SwiftCBassDemo") for which source code is available at DemoApp.
I am using macOS 15.6.1, Xcode 16.4, and iOS 18.6.2.
When an Advanced Experience is created for an App Clip, using the Camera app to scan a QR Code whose URL matches the pattern configured in the Advanced Experience will present the App Clip card. Currently, this App Clip card is presented even if the App Clip or main app is already installed In the device.
Is it possible to show the card only when neither the App Clip nor main app is installed?
For example:
User who does not have the App Clip/main app installed on their device scans a QR code that matches an Advanced Experience
User taps the yellow button and sees the App Clip card
User taps ”Open” on the card and launches the App Clip, the App Clip is now installed in the device.
User returns to the Camera app and scans the same QR code again
Camera recognizes the QR code, yellow button appears, user taps it
At this point, is it possible for the user to be taken directly to the installed App Clip instead of presenting the App Clip card again?
What is the correct way to track the number of items in a relationship using SwiftData and SwiftUI?
Imagine a macOS application with a sidebar that lists Folders and Tags. An Item can belong to a Folder and have many Tags. In the sidebar, I want to show the name of the Folder or Tag along with the number of Items in it.
I feel like I'm missing something obvious within SwiftData to wire this up such that my SwiftUI views correctly updated whenever the underlying modelContext is updated.
// The basic schema
@Model final class Item {
var name = "Untitled Item"
var folder: Folder? = nil
var tags: [Tag] = []
}
@Model final class Folder {
var name = "Untitled Folder"
var items: [Item] = []
}
@Model final class Tag {
var name = "Untitled Tag"
var items: [Item] = []
}
// A SwiftUI view to show a Folder.
struct FolderRowView: View {
let folder: Folder
// Should I use an @Query here??
// @Query var items: [Item]
var body: some View {
HStack {
Text(folder.name)
Spacer()
Text(folder.items.count.formatted())
}
}
}
The above code works, once, but if I then add a new Item to that Folder, then this SwiftUI view does not update. I can make it work if I use an @Query with an #Predicate but even then I'm not quite sure how the #Predicate is supposed to be written. (And it seems excessive to have an @Query on every single row, given how many there could be.)
struct FolderView: View {
@Query private var items: [Item]
private var folder: Folder
init(folder: Folder) {
self.folder = folder
// I've read online that this needs to be captured outside the Predicate?
let identifier = folder.persistentModelID
_items = Query(filter: #Predicate { link in
// Is this syntax correct? The results seem inconsistent in my app...
if let folder = link.folder {
return folder.persistentModelID == identifier
} else {
return false
}
})
}
var body: some View {
HStack {
Text(folder.name)
Spacer()
// This mostly works.
Text(links.count.formatted())
}
}
}
As I try to integrate SwiftData and SwiftUI into a traditional macOS app with a sidebar, content view and inspector I'm finding it challenging to understand how to wire everything up.
In this particular example, tracking the count, is there a "correct" way to handle this?
One of our customers subscribed to a monthly plan on August 16 but the server-to-server notification seems to have been sent on August 18.
What could be the reasons for such a delay between the purchase and the server-to-server notification which are usually sent right after the purchase?
The receipt sent along with the notification seems to confirm that the receipt has only been created 2 days after the purchase. Here is an extract:
{
"environment": "Production",
"receipt": {
"receipt_type": "Production",
"bundle_id": "fr.gaumontvideo.gaumontclassique",
"application_version": "613",
"receipt_creation_date": "2025-08-18 13:00:16 Etc/GMT",
"receipt_creation_date_ms": "1755522016000",
"receipt_creation_date_pst": "2025-08-18 06:00:16 America/Los_Angeles",
"request_date": "2025-08-25 13:08:27 Etc/GMT",
"request_date_ms": "1756127307346",
"request_date_pst": "2025-08-25 06:08:27 America/Los_Angeles",
"original_purchase_date": "2022-05-11 06:14:37 Etc/GMT",
"original_purchase_date_ms": "1652249677000",
"original_purchase_date_pst": "2022-05-10 23:14:37 America/Los_Angeles",
"original_application_version": "265",
"in_app": [
{
"quantity": "1",
"product_id": "fr.gaumontvideo.gaumontclassique.subscription.monthly.apple",
"transaction_id": "270002386706194",
"original_transaction_id": "270002386706194",
"purchase_date": "2025-08-16 08:02:06 Etc/GMT",
"purchase_date_ms": "1755331326000",
"purchase_date_pst": "2025-08-16 01:02:06 America/Los_Angeles",
"original_purchase_date": "2025-08-16 08:02:08 Etc/GMT",
"original_purchase_date_ms": "1755331328000",
"original_purchase_date_pst": "2025-08-16 01:02:08 America/Los_Angeles",
"expires_date": "2025-09-16 08:02:06 Etc/GMT",
"expires_date_ms": "1758009726000",
"expires_date_pst": "2025-09-16 01:02:06 America/Los_Angeles"
}
}
The capability associated with "FAMILY_CONTROLS" could not be determined. Please file a bug report at https://feedbackassistant.apple.com and include the Update Signing report from the Report navigator.
Topic:
Code Signing
SubTopic:
Entitlements
I submitted my app for review on August 5, 2025, but as of today, August 25, the status is still “Waiting for Review.”
I have already contacted support twice regarding this matter (Case Numbers: 102664827493 and 102670984940), but the only replies I received were that the app is under expedited review and that the review is delayed due to high submission volume. Unfortunately, the status has not changed at all, and I am still left waiting helplessly.
I am truly desperate at this point, as the long delay is causing significant difficulties. I kindly and sincerely ask if there is anything more that can be done to help me with this matter. Any support you can provide would mean so much to me.
Right now, if I added a large swatch of contiguous code, the stage feature in Xcode is all or nothing — either I stage all the changes or I stage none of them.
It would be a better UX if after spotting the isolates changes within that swatch that are final if I could select them and stage them. This way, it would be easy for me to easily green light all the changes I know are production ready, and then when I'm done, clearly see those which are not and easily be able to hone in on the changes that require some more thought.
Any one experience this bug, when playing a video the bluetooth headphones loose audio? my workaround is to select from one of the other audio outputs, and go back again and select the affected headphone.
Topic:
Media Technologies
SubTopic:
Video
When performing custom layout in AppKit, it's essential that you pixel align frames using methods like backingAlignedRect. The alignment differs depending on the backingScaleFactor of the parent window.
When building custom Layouts in SwiftUI, how should you compute the alignment of a subview.frame in placeSubviews() before calling subview.place(...)?
Surprisingly, I haven't seen any mention of this in the WWDC videos. However, if I create a Rectangle of width 1px and then position it on fractional coordinates, I get a blurry view, as I would expect.
Rounding to whole numbers works, but on Retina screens you should be able to round to 0.5 as well.
func placeSubviews(
in bounds: CGRect,
proposal: ProposedViewSize,
subviews: Subviews,
cache: inout Void
) {
// This should be backing aligned based on the parent window's backing scale factor.
var frame = CGRect(
x: 10.3,
y: 10.8,
width: 300.6,
height: 300.1
)
subview.place(
at: frame.origin,
anchor: .topLeading,
proposal: ProposedViewSize(frame.size)
)
}
Almost everytime, when I try to search apps in App library, the icons go invisible, o are showed for and instant to quickly go invisible.
Hi,
For an app that is device dependent (communication through bluetooth and network) for proprietary device in specialized applications, is allowed the use of license key on app store without in app purchases? The app is useless for users without the hardware
Thanks
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Hi everyone,
I’m working on adapting our app to iOS 26’s new passkey feature, specifically Automatic Passkey Upgrades.
https://developer.apple.com/videos/play/wwdc2025/279/
Our app already supports passkey registration and authentication, which have been running reliably in production. We’d like to extend passkey coverage to more users.
According to the WWDC session, adding the parameter requestStyle: .conditional to createCredentialRegistrationRequest should allow the system to seamlessly upgrade an account with a passkey. However, in my testing, I consistently receive the following error:
Error | Error Domain=com.apple.AuthenticationServices.AuthorizationError Code=1001 "(null)"
Test environment:
Xcode 26.0 beta 4 (17A5285i)
iPhone 11 running iOS 26.0 (23A5297n)
Questions:
Is the Automatic Passkey Upgrades feature currently available in iOS 26?
I understand that the system may perform internal checks and not all upgrade attempts will succeed. However, during development, is there a way to obtain more diagnostic information? At the moment, it’s unclear whether the failure is due to internal validation or an issue with my code or environment.
Thanks.
Hi there,
Thank you for the framework 🙏
if I use Alarm.Schedule.Relative with Alarm.Schedule.Relative.Time(hour: hour, minute: minute) and Alarm.Schedule.Relative.Recurrence.never it seems like there is some (odd?) limit where alarm will get scheduled to next day if too close?
For example, lets say the current time is 12:00 PM, if I schedule alarm for 12:02 PM, it will schedule it for next day, while if I do 12:05 PM it will work as expected.
Is that expected? If yes, what's the behavior and is that documented anywhere?
I would expect any alarm thats scheduled in the future to fire for the current day (maybe if it's only 1 minute it gets tricky).
One problem is also that even if the framework says an alarm is scheduled, I don't have access to the "next alarm date"? I wish I did as otherwise I have to compute it (by "guessing" the AlarmKit calculation) if I want to do anything with that date.
Honestly, sometimes I think I am just going crazy when the alarm doesn't fire, but there SEEMS to be some odd behavior around this?
(of course, feel free to correct me on anything - I could be missing documentation or not understanding something)
Topic:
App & System Services
SubTopic:
Notifications
The issue I am facing is that even when I run my app from a physical device, I get
the error "No FCM token found," while push notifications are enabled in my
Xcode capabilities. I don't see the FCM token generated in the users' collection on
Firestore. While the code setup seems good, the same error persists. I have implemented the logic to retrieve the FCM token,
hat the necessary permissions are granted in my app.Here are my Firestore rules:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Allow authenticated users to read and write their own user data
match /users/{userId} {
allow read: if request.auth != null;
allow update: if request.auth != null &&
(request.auth.uid == userId ||
// Allow FCM token updates
request.resource.data.diff(resource.data).affectedKeys().hasOnly(['fcmToken']));
allow create: if request.auth != null;
match /followers/{followerId} {
allow read: if request.auth != null;
allow write: if request.auth != null && request.auth.uid == followerId;
}
match /following/{followingId} {
allow read: if request.auth != null;
allow write: if request.auth != null && request.auth.uid == userId;
}
match /blockedUsers/{blockedUserId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
// Messages collection
match /messages/{messageId} {
allow create: if request.auth != null &&
(request.resource.data.senderId == request.auth.uid ||
request.resource.data.receiverId == request.auth.uid);
allow read, update, delete: if request.auth != null &&
(resource.data.senderId == request.auth.uid ||
resource.data.receiverId == request.auth.uid);
}
// Chats collection
match /chats/{chatId} {
allow create: if request.auth != null &&
request.auth.uid in request.resource.data.participants;
allow read, update, delete: if request.auth != null &&
request.auth.uid in resource.data.participants;
}
// Call-related documents
match /calls/{callId} {
allow create: if request.auth != null &&
request.auth.uid in [request.resource.data.callerId, request.resource.data.receiverId];
allow read, write: if request.auth != null &&
(request.auth.uid == resource.data.callerId ||
request.auth.uid == resource.data.receiverId);
}
// Posts
match /posts/{postId} {
allow read: if true;
allow create, update: if request.auth != null;
allow delete: if request.auth != null && request.auth.uid == resource.data.userId;
}
// Reports
match /reports/{reportId} {
allow create: if request.auth != null;
allow read: if request.auth != null;
allow update: if request.auth != null;
}
// ✅ New livestreams collection rule added here
match /livestreams/{document} {
allow read, write: if request.auth != null;
}
}
}
[my index.js](https://developer.apple.com/forums/content/attachment/bffd0276-ece5-4ce9-b08b-83e8770cb8f2)
[My code of class AppDelegate](https://developer.apple.com/forums/content/attachment/abba6a58-d513-49d4-a1d4-dc7dfae56e0a)
[code of class AVDelegateWrapper:](https://developer.apple.com/forums/content/attachment/acd15ac0-ba9e-415f-9503-aea88377e92f)
`
[struct ContentView](https://developer.apple.com/forums/content/attachment/4f75c535-860e-488f-835b-63c76586ac50)
`
[And for after Login code : ](https://developer.apple.com/forums/content/attachment/f6af060e-f2bb-417f-af08-a946dd650474)
`
Topic:
Developer Tools & Services
SubTopic:
Xcode