Overview

Post

Replies

Boosts

Views

Activity

Mergeable Library Bundle Hooking Does Not Work When Frameworks Is Merged Into Container Framework
Problem When we merge FeatureModuleA.framework into IntegrationContainer.framework instead of HostApp_Main.app, the magic method Bundle(for: FeatureAProvider.self) does not work and this will trigger crash. When FeatureModuleA is merged into HostApp, Bundle(for: FeatureAProvider.self) will return: HostApp_Main.App/Frameworks/DomainFeatureA.framework instead of HostApp_Main.App/, although the FeatureAProvider class is actually in the merged main app binary So we can use the returned FeatureModuleA bundle get the nested resource. If we merge the frameworks into our IntegrationContainer.framework, the result will be: for release: PrototypeApp.app for debug: PrototypeApp.app/Frameworks/IntegrationContainer.framework/ReexportedBinaries/DomainFeatureA.framework Apple has not considered the case that frameworks are merged into independent framework. And other methods like bundle(for: identifier) does not work for both destination cases: merge into main app or a container framework.
0
0
30
3w
Building SimpleAudioDriver example
Hi there, I am trying to build the Apple SimpleAudioDriver example but fail with codesign and/or provisioning. I would be ok for now with the local option, but XCode 16.4 doesn't show the option "build to run locally" (SIP is disabled). When using "Automatically manage signing" it ends in a "Please file a bug report". I found that having two different development teams tripped it up, so I deleted all certificates and keys and made sure to be only signed into one account in Xcode. Can anyone give advice? Thanks a ton! Here is the URL to the sample: https://developer.apple.com/documentation/coreaudio/building-an-audio-server-plug-in-and-driver-extension macOS: 15.6.1 XCode: 16.4 Hardware: MacBook Pro M2 Max SIP: disabled
11
0
1.1k
3w
Can't Verify Merchant Domain - error Domain verification failed - Error 13014
Dear Apple Developer Support, I would like to request a technical escalation to the engineering team regarding an ongoing issue with Apple Pay domain verification. Error returned by Apple Even though Apple’s request to our domain returns HTTP 200, the verification still fails with: resultCode: 13014 resultString: "Domain verification failed. Review your TLS Certificate configuration to confirm that the certificate is accessible and a supported TLS Cipher Suite is used." requestUrl: https://developer.apple.com/services-account/QH65B2/account/ios/identifiers/verifyDomain TLS Certificate Validation We performed a full TLS analysis: Certificate issued by Sectigo Public Server Authentication CA DV E36 (public trusted CA) Full and correct certificate chain No handshake errors Configuration fully valid SSL Labs rating: A From our side, the TLS configuration is confirmed to be correct. Accessibility of the .well-known file The file is publicly and accessible It returns 200 OK and the content is exactly identical to the file downloaded from the Apple Developer Portal, without any modification. Our network team confirmed that Apple’s verification request also receives HTTP 200 when pressing “Verify” in the Apple Developer Console. Network-side findings We monitored Apple’s request in real time. Findings: TLS handshake succeeds No cipher mismatch File delivered correctly Status: 200 OK No redirect or transformation applied Despite this, Apple still returns error 13014. Request for engineering review We kindly request that an Apple engineer verify the following: The actual TLS handshake performed by Apple's verification service (cipher suite, protocol negotiation, SNI, trust chain). Whether the Sectigo issuing CA is fully trusted and supported by your domain-verification backend. If there is an internal reason behind error 13014—since the external message does not provide actionable details. Whether the response is rejected for reasons other than TLS, given that the file is accessible and the request returns 200. The exact condition that leads Apple to report “TLS Certificate configuration is incorrect” in this case. This issue is blocking an urgent deployment and must be resolved as soon as possible. Existing case reference Case ID: 102760005987 We are fully available to provide: full response headers packet captures (PCAP) SSL/TLS diagnostics file integrity checks server configuration details or join a technical call (Teams / WebEx) Thank you in advance for the escalation. Andrea
1
0
133
3w
Delay in Developer Program Enrollment
I purchased the Developer Program (enrollment) two days ago, but still have not heard back. On the account page at developer.apple.com, it says please purchase your enrollment, even though I already did. When will the payment go through and when will my account be approved? Also, I don't have access to the email that the account is under, how do I change the email associated with my developer account?
0
0
157
3w
Layout recursion error message
Hi all, when I launch my macOS app from Xcode 16 on ARM64, appKit logs me this error on the debug console: It's not legal to call -layoutSubtreeIfNeeded on a view which is already being laid out. If you are implementing the view's -layout method, you can call -[super layout] instead. Break on _NSDetectedLayoutRecursion(void) to debug. This will be logged only once. This may break in the future. _NSDetectedLayoutRecursion doesn't help a lot, giving me these assembly codes from a call to a subclassed window method that looks like this: -(void) setFrame:(NSRect)frameRect display:(BOOL)flag { if (!_frameLocked) [super setFrame:frameRect display:flag]; } I have no direct call to -layoutSubtreeIfNeeded from a -layout implementation in my codes. I have a few calls to this method from update methods, however even if I comment all of them, the error is still logged... Finally, apart from that log, I cannot observe any layout error when running the program. So I wonder if this error can be safely ignored? Thanks!
5
0
348
3w
Allow use of deep links without 'Smart' banner appearing
At present, it is not possible to use deep linking without suffering the Smart banner being injected by Safari on each affected web page. This makes the experience of users choosing to browse an associated website significantly poorer as they have to see a Smart banner at the top of each page. People know there is an app store and an app – they don't need constantly reminding like it is still 2010. Anyone know where a relevant plea can be made to Apple to provide an alternative mechanism here as it damages the ethos of being able to simply use a web browser
Topic: Safari & Web SubTopic: General
1
0
257
3w
Severe Delay When Tapping TextField/Searchable on iOS 18 (Real Device) — XPC “Reporter Disconnected” Loop Until Keyboard Appears
I’m running Xcode 26.1.1 (17B100) with deployment target iOS 18.0+, and I’m seeing a consistent and reproducible issue on real devices (iPhone 13 Pro, iPhone 15 Pro): Problem The first time the user taps into a TextField or a SwiftUI .searchable field after app launch, the app freezes for 30–45 seconds before the keyboard appears. During the freeze, the device console floods with: XPC connection interrupted Reporter disconnected. { function=sendMessage, reporterID=XXXXXXXXXXXX } -[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID. inputModality = Keyboard customInfoType = UIEmojiSearchOperations After the keyboard finally appears once, the issue never happens again until the app is force-quit. This occurs on device Reproduction Steps Minimal reproducible setup: Create a new SwiftUI app. Add a single TextField or .searchable modifier. Install Firebase (Firestore or Analytics is enough). Build and run on device. Tap the text field immediately after the home screen appears. Result: App freezes for 30–45 seconds before keyboard appears, with continuous XPC/RTIInputSystem errors in the logs. If Firebase is removed, the issue occurs less often, but still happens occasionally. Even If Firebase initialization is delayed by ~0.5 seconds, the issue is still there. Question Is this a known issue with iOS 18 / RTIInputSystem / Xcode 26.1.1, and is there a recommended workaround? Delaying Firebase initialization avoids the freeze, but this isn’t ideal for production apps with startup authentication requirements. Any guidance or confirmation would be appreciated.
Topic: UI Frameworks SubTopic: SwiftUI
1
0
92
4w
UISplitViewController and setViewController:forColumn: differences between different iOS versions
It seems to be that the functionality of the method setViewController:forColumn: in the column-style layout of a UISplitViewController has changed. iOS 18: setViewController:forColumn: pushes a new view controller onto the UINavigationController if it existed before the call. iOS 26: setViewController:forColumn: sets or replaces the view controller with a new view controller as a root of a new UINavigationController. My questions: what is the intended behavior? I did not find any documentation about a change. how do I replace in iOS 18 the old view controller with the new view controller passed to setViewController:forColumn:?
0
0
148
3w
coreaudiod display sleep
hi all, as soon an audio is played in a whatever app, coreaudiod inserts a sleep prevent assertion for both, the system AND the display. can i somehow stop the insertion of the display sleep assertion? pid 223(coreaudiod): [0x00004e9e00058dc2] 00:03:18 PreventUserIdleDisplaySleep named: "com.apple.audio.AppleGFXHDAEngineOutputDP:10001:0:{B31A-08C6-00000000}.context.preventuseridledisplaysleep" Created for PID: 4145. where PID 4145 is spotify. but it doesn't matter which app is playing the audio. any help would be appreciated thanks
0
0
59
3w
API to Programmatically Establish SCO Connection for HFP Accessories in iOS
When an iOS device is connected to a Bluetooth accessory that utilizes the Hands-Free Profile (HFP), we are encountering an incorrect audio routing behavior specifically for system notification tones. Accessory Connected: The iOS device is successfully connected to a Bluetooth accessory (specifically, a WM500 device) using the HFP profile for voice communication. Voice Audio: Audio streams related to phone calls or voice communication (using the HFP/SCO link) are correctly routed to the WM500. Notification Tones Issue: System notification tones, which are played using the tonetype.systemsounds API, are not being routed to the connected HFP accessory (WM500). Instead, they are incorrectly played through the iOS device's built-in speaker. Accessory team has suggested to establish SCO connection to route the tones through WM500. But iOS does not provide an external API (like Android's startBluetoothSco) to explicitly force the establishment of an SCO connection for notification tones. Is there any other approach to establish SCO connection in iOS to route notification tones through WM500
0
0
47
3w
Xcode can't view code generated by Swift Package Plugins
When using a Swift Build Plugin, the generated code definitions are available through autocomplete, but it is currently not possible to view them directly in Xcode using Option+click. An example of such a plugin is swift-openapi-generator. According to information from "Meet Swift Package plugins" from WWDC22 the generated code is stored with other build artifacts. It would be immensely helpful if there was support for viewing these intermediate files in read-only mode using Option+click. Currently, I have to resort to opening these files through Finder, or opening the project in VS Code where viewing the generated files using Cmd+click works without a problem. Am I missing something? If not, it seems like a big oversight that this is not supported to the same extent in Apple's own tools.
1
0
57
4w
Missing "is_private_email" claim in ID Token for Hide My Email users
Hello, I am implementing "Sign in with Apple" on my backend and validating the Identity Token (JWT) received from the client. I noticed that for some users who choose the "Hide My Email" option, the is_private_email claim is missing from the ID Token payload, even though the email address clearly belongs to the private relay domain (@privaterelay.appleid.com). Here is an example of the decoded payload I received: { "iss": "https://appleid.apple.com", "aud": "xxx", "exp": 1764402438, "iat": 1764316038, "sub": "xxxxxxxx", "c_hash": "3FAJNf4TILzUgo_YFe4E0Q", "email": "xxx@privaterelay.appleid.com", "email_verified": true, "auth_time": 1764316038, "nonce_supported": true // "is_private_email": true <-- This field is missing } My Questions: Is the is_private_email claim considered optional in the ID Token? Is it safe and recommended to rely solely on the email domain suffix (@privaterelay.appleid.com) to identify if a user is using a private email? Any insights or official references would be appreciated. Thanks.
0
0
162
3w
Sign in with Apple error reported by App Review, but impossible to reproduce (iPadOS 26.1)
Hi everyone, I’m currently facing a blocking issue during App Review, and I’d really appreciate some help from anyone who has experienced something similar. My app was rejected under Guideline 2.1 – App Completeness with the following message: “An error message appeared after trying to Sign in with Apple. Device: iPad Air (5th generation), iPadOS 26.1.” The problem is: I cannot reproduce this bug at all, even when testing under the same conditions. ✔ What I tested: Physical iPad Air M2 on iPadOS 26.1 Physical iPhone devices iOS/iPadOS simulators (latest Xcode) TestFlight build (clean install) Debug build installed via Xcode (device connected) In every case, Sign in with Apple works correctly: Authentication sheet displays properly Callback returns the credential User is created/logged in without error No crash, no rejected promise, no empty credential ✔ Environment Using ASAuthorizationAppleIDProvider + ASAuthorizationController Default Apple Sign In button No custom nonce/redirect modifications No backend processing at login (client-side only) Works 100% on iPhone and iPad on my side ✔ Additional context The app review team also noted a second point: They couldn’t locate a secondary subscription paywall, which is displayed only after dismissing the first paywall. I already clarified this with them, but I'm mentioning it in case it's related to the Sign in with Apple issue — maybe something in the sandbox environment is causing unexpected UI behavior. ❓ My question Has anyone already seen Sign in with Apple fail ONLY for the App Review team, while: It works in TestFlight It works via Xcode installs It works on the same OS version It works on the same hardware Could it be an issue related to: Sandbox Apple ID? iPadOS 26.1 on App Review internal builds? Reviewers blocking popup presentation context? Missing entitlement although everything is configured correctly? Presentation anchor issues specific to iPad? Any help or ideas would be greatly appreciated. I’ve been trying to reproduce this bug for hours without success, so any insight is welcome. Thanks!
1
0
167
3w
The airdrop was sent to the wrong device. Will modifying the interface in this way reduce the error
I have many Apple devices, such as macbook, iPad and iPhone. It's very convenient for me to transfer files between devices. However, when I want to send files to my own device in public places, I often click on the wrong recipient because the list avatar keeps changing. I hope the list of recipients can be grouped One group is my own device (or the one I often send to), and the other group is other devices. When the user is about to send, the mouse will be in a relatively fixed and mentally expected area. I feel that this can reduce the probability of sending wrongly
Topic: Design SubTopic: General
3
0
610
3w
App Stuck in “Waiting for Review” Since November 20
Hello everyone, We wanted to share our situation and see if anyone has had a similar experience. Our app was submitted to the App Store on Monday, November 20th, and its status has remained "Waiting for Review" ever since. Based on Apple's typical review times of 24-48 hours, we're a bit concerned that the review process hasn't even started after several days. Has anyone else encountered similar delays recently? We would greatly appreciate any advice or insight into what might be causing this. Thank you!
1
0
99
3w
Cant login apple account
Hello, I am an Apple Developer and I have been unable to access my Apple ID for more than a week because of a verification code issue. Every time I try to sign in to my Apple ID or manage my banking information, I see this error message: “Too many verification codes have been sent. Enter the last verification code you received or try again later.” The problem is that I am not receiving any SMS verification codes at all, so I cannot enter any “last code”, and I cannot complete the sign-in process. I have already tried the following: Waited more than 24 hours without requesting new codes, several times. Tried signing in from different devices and networks. Confirmed that my phone number is active and can receive other SMS messages from different services. The issue persists and I am effectively locked out of my Apple ID. This is a critical problem for me because it directly affects my Apple Developer work: I cannot sign in to App Store Connect. I cannot add or edit my banking information. I cannot upload my app or submit it for review. I also do not have another phone number that I can add as a trusted phone number, so I cannot simply switch to a different number. I kindly ask for a concrete technical solution or manual intervention for my Apple ID, not just “wait 24 hours and try again”, because I have already done that multiple times and the error is still there. Could you please: check if there is a block or rate limit on verification codes for my account, and help reset it or provide another way to verify my identity and restore access to my Apple ID, or assist me with updating my trusted phone number after verifying my identity? This issue is blocking my ability to continue development and release of my app on the App Store, so I would really appreciate any escalation to the appropriate technical team. Thank you very much for your help. Best regards, Daniil
0
0
307
3w
Setting Installation Directory correctly is a mystery
Hello I'm wrapping my head around on how to properly set up xcode project to produce a static library ending up in file locations /usr/local/lib/libXXX.a and /usr/local/include/XXX/xxx.h so it can be used Unix style in other projects. If I put under Deployment Deployment Location: YES Installation Build Products Location: / Installation Directory: /usr/local/lib Skip Install: NO I get errors like warning: Stale file '/usr/local/usr/local/include/xxx.h' is located outside of the allowed root paths. and things like error: Cycle inside a single target; building could produce unreliable results. Installation Build Products Location: /usr/local/lib Installation Directory: / I get warning: Stale file '/usr/local/include/xxx.h' is located outside of the allowed root paths. but the library file is not put into /usr/local/lib (note /usr/local/lib and /usr/local/include are owned by my user and writeable) I could write an old style Makefile and have xcode call the makefile but there must be an easier way to do this. This is for a cross platform development so having it packaged into a Framework would not solve it neither.
1
0
53
4w
Publish Account Change
We are preparing to transfer one of our live applications to a different Apple Developer Organization and need clarification to avoid service disruption. We would like guidance on the following points: Sign in with Apple and Service ID Transfer: We want to confirm whether the Service ID used for Sign in with Apple must be transferred along with the app, or if its configuration will automatically migrate as part of the transfer. Additionally, is there a way to verify whether the app currently has any explicit association or dependency with the existing Service ID on the current developer account? As per our findings, we do not have a ServiceID associated with SIWA. The SIWA is handled natively by iOS. Creating or Updating a Service ID Before Transfer: Since, the ServiceID is not associated, if we create a new Service ID now and assign it to the existing app for Sign in with Apple, will this have any impact on users who are already using the live app? Specifically, will creating or modifying a Service ID change the authorization state for currently authenticated Apple Sign In users? Transfer Identifier Timing: The transfer process requires generating a transfer identifier. Should this be done ahead of the Account Migration or only at the start of the transfer? Also, will generating or using the transfer identifier require any change on the client side related to Apple Sign In? We would appreciate recommendation for these steps and whether users should expect any authentication or billing disruptions during or after the app transfer.
0
0
33
3w
SwiftData: This model instance was invalidated because its backing data could no longer be found the store
Hello 👋, I encounter the "This model instance was invalidated because its backing data could no longer be found the store" crash with SwiftData. Which from what I understood means I try to access a model after it has been removed from the store (makes sense). I made a quick sample to reproduce/better understand because there some case(s) I can't figure it out. Let's take a concrete example, we have Home model and a Home can have many Room(s). // Sample code @MainActor let foo = Foo() // A single reference let database = Database(modelContainer: sharedModelContainer) // A single reference @MainActor class Foo { // Properties to explicilty keep reference of model(s) for the purpose of the POC var _homes = [Home]() var _rooms = [Room]() func fetch() async { let homes = await database.fetch().map { sharedModelContainer.mainContext.model(for: $0) as! Home } print(ObjectIdentifier(homes[0]), homes[0].rooms?.map(\.id)) // This will crash here or not. } // Same version of a delete function with subtle changes. // Depending on the one you use calling delete then fetch will result in a crash or not. // Keep a reference to only homes == NO CRASH func deleteV1() async { self._homes = await database.fetch().map { sharedModelContainer.mainContext.model(for: $0) as! Home } await database.delete() } // Keep a reference to only rooms == NO CRASH func deleteV2() async { self._rooms = await database.fetch().map { sharedModelContainer.mainContext.model(for: $0) as! Home }[0].rooms ?? [] await database.delete() } // Keep a reference to homes & rooms == CRASH 💥 func deleteV3() async { self._homes = await database.fetch().map { sharedModelContainer.mainContext.model(for: $0) as! Home } self._rooms = _homes[0].rooms ?? [] // or even only retain reference to rooms that have NOT been deleted 🤔 like here "id: 2" make it crash // self._rooms = _homes[0].rooms?.filter { r in r.id == "2" } ?? [] await database.delete() } } Calling deleteV() then fetch() will result in a crash or not depending on the scenario. I guess I understand deleteV1, deleteV2. In those case an unsaved model is served by the model(for:) API and accessing properties later on will resolve correctly. The doc says: "The identified persistent model, if known to the context; otherwise, an unsaved model with its persistentModelID property set to persistentModelID." But I'm not sure about deleteV3. It seems the ModelContext is kind of "aware" there is still cyclic reference between my models that are retained in my code so it will serve these instances instead when calling model(for:) API ? I see my home still have 4 rooms (instead of 2). So I then try to access rooms that are deleted and it crash. Why of that ? I mean why not returning home with two room like in deleteV1 ? Because SwiftData heavily rely on CoreData may be I miss a very simple thing here. If someone read this and have a clue for me I would be extremely graceful. PS: If someone wants to run it on his machine here's some helpful code: // Database let sharedModelContainer: ModelContainer = { let schema = Schema([ Home.self, Room.self, ]) let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false) debugPrint(modelConfiguration.url.absoluteString.replacing("%20", with: "\\ ")) return try! ModelContainer(for: schema, configurations: [modelConfiguration]) }() extension Database { static let shared = Database(modelContainer: sharedModelContainer) } @ModelActor actor Database { func insert() async { let r1 = Room(id: "1", name: "R1") let r2 = Room(id: "2", name: "R2") let r3 = Room(id: "3", name: "R3") let r4 = Room(id: "4", name: "R4") let home = Home(id: "1", name: "My Home") home.rooms = [r1, r2, r3, r4] modelContext.insert(home) try! modelContext.save() } func fetch() async -> [PersistentIdentifier] { try! modelContext.fetchIdentifiers(FetchDescriptor<Home>()) } @MainActor func delete() async { let mainContext = sharedModelContainer.mainContext try! mainContext.delete( model: Room.self, where: #Predicate { r in r.id == "1" || r.id == "4" } ) try! mainContext.save() // 🤔 Calling fetch here seems to solve crash too, force home relationship to be rebuild correctly ? // let _ = try! sharedModelContainer.mainContext.fetch(FetchDescriptor<Home>()) } } // Models @Model class Home: Identifiable { @Attribute(.unique) public var id: String var name: String @Relationship(deleteRule: .cascade, inverse: \Room.home) var rooms: [Room]? init(id: String, name: String, rooms: [Room]? = nil) { self.id = id self.name = name self.rooms = rooms } } @Model class Room: Identifiable { @Attribute(.unique) public var id: String var name: String var home: Home? init(id: String, name: String, home: Home? = nil) { self.id = id self.name = name self.home = home } }
2
0
182
4w