Overview

Post

Replies

Boosts

Views

Created

iOS 26: Tab Bar Item's accessibility value not set automatically anymore
We recently adopted our app to Liquid Glass and received a complaint from a visually impaired user that VoiceOver does not read out the number of unread items in the tab bar anymore. We checked and it seems that before iOS 26/Liquid Glass, setting a tab bar item's badgeValue property also set an appropriate text to its accessibilityValue property (something like "3 items"). But with Liquid Glass tab bars, this does not seem to be the case anymore. We fixed this by providing our own accessibility value, but we're wondering whether this change was a deliberate choice or simply a bug? If this new behavior is considered a bug, I would post a bug report.
0
0
3
8m
DynamicViewContent and drop validation (macOS)
If I see it correctly, it is currently not possible to validate a drop operation on a DynamicViewContent when using dropDestination? Just a simple example: Let's say I build a folder view on macOS where I can arrange folders freely. In this case I need to use DynamicViewContent.dropDestination to get an insertion index on drop. However, it seems that methods like dropConfiguration do not have any effect. Als dropDestionation(…, isTargeted:) seems not to be available. Here is my sample code: struct FolderRow: View { let folder: Folder var body: some View { DisclosureGroup(isExpanded: .constant(true)) { ForEach(folder.children) { child in FolderRow(folder: child) } .dropDestination(for: Folder.self) { item, idx in print("Dropped at \(idx)") } } label: { Label(folder.name, systemImage: "folder") .draggable(folder) .dropDestination(for: Folder.self) { items, _ in print("Dropped on Item") } } .dropConfiguration { session in DropConfiguration(operation: .move) } } } struct ContentView: View { @State private var folder: Folder = Folder.sampleData @State private var selection: Set<UUID> = [] var body: some View { NavigationSplitView { List(selection: $selection) { FolderRow(folder: folder) } } detail: { EmptyView() } } } The dropConfiguration is applied on the Label (in this case the "Move" cursor is used instead of the "Copy" cursor). Is there any way to do that or is it just an omission in Swift UI?
0
0
23
3h
Network Framework: Choosing Interface Types for Browsing/ Advertising
I am using Network framework for connecting two iPad devices that are connected through LAN and has Wifi enabled. I have enabled peerToPeerIncluded. I would like to understand how the framework chooses the interface types for browsing and discovering devices. When I start a browser with browser.run or listener.run, does the browser and advertiser browse and listen on all available interface types? My concern is that if it does in only one interface, Is there a chance that the browser is browsing in one interface(Lets say WiredEthernet) and the listener is listening on another interface(Lets say AWDL) and they dont discover?
1
0
51
7h
Xcode 26 references a local package twice for test
My project uses about 10 local packages. When Xcode determins its dependencies graph it includes project Foo (a package) and project Foo_Foo (???). This is a no op for normal builds, but causes the Foo package to be linked twice for test builds which then fail due to duplicate symbols. Nowhere in my repository is Foo_Foo defined or reference. Nowhere in the .xcodeproj/ folder is there mention of Foo_Foo. What am I doing wrong?
0
0
47
8h
Unity iOS (Metal) → WebRTC (Unity WebRTC) video stream to remote Unity client: PeerConnection connects but receiver renders black frames
Hello! My name is Mason Prather. I'm a graduate student at Kennesaw State University and a Research Engineer working in XR environments through my Graduate Research Assistant role. I’m currently building a research prototype that connects a mobile companion application to a VR headset. The mobile application is built in Unity and deployed on iOS, and it streams video frames to a remote Unity client using WebRTC. Environment Device: iPhone 15 OS: iOS 26.3 (tested on physical device, not Simulator) Engine: Unity 2022.3.57f1 Graphics API: Metal Streaming Technology: WebRTC (Unity WebRTC package) Architecture: Mobile Unity app streaming video frames to a remote Unity client Receiver Device: Meta Quest Pro headset (Unity application) Networking: LAN (UDP discovery + TCP signaling) Video Source: Unity RenderTexture Goal The goal of the system is to allow a VR user to view media stored on their phone inside a VR environment. The iOS app: renders or captures media content converts frames into a WebRTC video track streams the video to the headset Current Status Connection setup works correctly. Observed behavior: Signaling connection successful ICE candidate exchange successful PeerConnection state becomes Connected Video track created successfully However, the receiving application displays black frames. iOS App Details The video source originates from a Unity RenderTexture. Inside the phone application: RenderTexture displays correctly Frames appear correct locally But the receiving peer does not display the frames. Relevant Components Unity WebRTC package iOS Metal rendering pipeline Custom TCP signaling LAN discovery via UDP Expected Behavior Rendered frames should transmit via WebRTC and appear on the remote device. Actual Behavior The remote video track is active, but the rendered frames appear black on the receiving client. Questions Are there known issues involving Unity WebRTC + iOS Metal texture capture? Are there specific pixel format requirements when streaming textures from Unity on iOS? Could the issue relate to texture readback limitations or GPU synchronization? I am more than happy to provide screenshots and console logs upon request. If anyone has experience streaming Unity video frames via WebRTC on iOS, I would greatly appreciate any guidance.
0
0
49
9h
Apple Wallet not showing correct amounts for grocery delivery platform
We are observing unexpected behavior in Apple Wallet for transactions processed via an online delivery platform. Here is the specific flow: Initial Authorization: The original order was placed for $22.30. Order Amendment: The user added an item 10 minutes later for $6.20, bringing the total to $28.50. The Issue: Apple Wallet only displays the $6.20 transaction. The initial $22.30 amount is not visible in the transaction list. Technical Verification: We confirmed that both backend authorization messages for the original amount and the add-on were approved. We verified that the final settlement amounts correctly reflect the sum of both charges ($28.50). We have confirmed the transaction lifecycle completed successfully on our end. Despite this, the customer only sees the $6.20 entry in their Wallet history, which creates confusion as it doesn't reflect the total spent. Has anyone encountered this sync issue between settlement totals and Wallet display, or is there a specific way we should be linking these related authorizations? Thanks!
0
0
14
10h
MusicKit JS — Commercial B2B use case: SaaS managing song requests for venues
Hello everyone, I'm building Mixify (https://mixify.fr), a French SaaS platform for professional DJs and commercial venues (bars, lounges, event spaces). I'm looking for guidance on whether my use case is compliant with MusicKit JS policies. How it works: The Host (a venue owner or DJ) logs into the Mixify dashboard using their own Apple Music subscription. The Guests scan a QR code to access a web interface where they can browse the Apple Music catalog and suggest songs. The Host reviews suggestions, accepts or rejects them, and accepted songs are added to the playback queue. Playback is handled entirely by MusicKit JS in the host's authenticated browser session, connected to the venue's speakers. Key points: Mixify is a paid SaaS (starting at €49/month) — we charge for event management tools (dashboard, analytics, guest interaction), not for access to music content. Only the authenticated Apple Music subscriber hears/controls playback. Guests only browse and suggest — they never access playback. No content is downloaded, cached, or redistributed. We use the official MusicKit JS player exclusively. Venues are responsible for their own public performance licenses (SACEM in France). My questions: Does this B2B workflow — where a SaaS manages song request logistics but relies on MusicKit JS solely for playback by an authenticated subscriber — comply with the MusicKit guidelines? Are there any specific restrictions on using MusicKit JS in a commercial/venue environment that I should be aware of? Is there a recommended way to contact Apple Developer Relations directly for a formal compliance review of this use case? I've already submitted an inquiry via the Apple Developer contact form and email, but I'd appreciate any community insight or experience with similar integrations. Thank you!
0
0
12
11h
Removed from App Store Immediately after Distribution
I submitted a software update for one iOS app several days ago. It was approved two days ago. I received a message about distribution that said The status of your app has changed to Ready for Distribution I happened at the iTunes Connect website at that very moment in order to submit a totally new iOS app to the App Store. Its status said 'Removed from App Store.' I thought it was a rare mistake. Unfortunately, it's not. The one that I was submitting was approved some 15 minutes ago. I received the 'Ready for Distribution' message by email. Yet, it's been removed from the store as you see in the screenshot below. As you see in the 2nd screenshot below, it says that it's Ready for Distribution. But it's not? So is this a new norm? And we have to go back the iTunes Connect website to change the app status every time we submit a software title and then get it approved?
1
0
94
12h
All notarization submissions stuck "In Progress" for 24-36+ hours (first-time submission)
I am submitting my first macOS app for notarization and all submissions have been stuck at "In Progress" for over 24-36 hours. The notarytool log command returns "Submission log is not yet available" for all of them. App details: macOS menu bar app (Apple Silicon only, arm64) Signed with Developer ID Application certificate Hardened Runtime enabled Secure timestamp included No get-task-allow entitlement Team ID: 3426FSU868 Submission history: bd5a8bf3-809f-42d5-9ab3-1cb665e4dfa6 (Mar 3, 13:02 UTC) - Status: Invalid This was expected. It was a Debug build with get-task-allow and missing secure timestamp. c3e54eef-650e-41ba-ac8f-8948147cc7e1 (Mar 3, 13:06 UTC) - Status: In Progress (36+ hours) b6c4515a-93dd-417c-8956-158a73f62dee (Mar 3, 14:06 UTC) - Status: In Progress (35+ hours) 478b7e57-3492-46eb-98fb-04b52bff1f17 (Mar 4, 01:08 UTC) - Status: In Progress (24+ hours) Submissions 2-4 were all built with Release configuration, signed with Developer ID Application certificate, hardened runtime, and secure timestamp. The codesign output confirms correct signing: Authority=Developer ID Application: Waseem Khan (3426FSU868) Authority=Developer ID Certification Authority Authority=Apple Root CA I understand first-time submissions may go through in-depth analysis but it has been well over 24 hours for all three. Is there anything wrong with my submissions or is this expected? Any help would be appreciated.
2
2
104
12h
Bluetooth audio packet alignment
We’re evaluating a Bluetooth device that supports Hands Free Profile (HFP) as the “Hands-Free Unit”. You can think of this as a Bluetooth telephone headset. This device interacts with our iOS application. We observed the following. The iPhone 17 HFP Wide-Band Speech (WBS) mSBC decoder requires the WBS packet (H2 header + mSBC frame) to be sent aligned. Aligned meaning, the H2 header must be first in every packet. The WBS packet cannot span multiple eSCO packets or else the iPhone will discard the audio. This is a different implementation than the iPad (iPad Pro 11-inch M4) , presumably due to Apple’s new N1 chip. In other words, we’ve identified that older iPhones and iPads do not require this alignment. They have implemented a stateful parser/decoder of the HFP WBS audio. A quick picture to help illustrate. The iPhone 17 requires: | Frame | Frame | Frame | Frame | However, a Bluetooth implementation we are evaluating does: | me Fra | me Fra | me Fra | me Fra | Does Apple intend to keep this implementation and continue discarding audio frames that are not aligned? Page 115 of the Bluetooth HFP 1.8 specification mentions at the bottom that this behavior is “left up to the implementation” but that the “synchronization header enables unaligned codec audio frames to be recovered by the receiving side.” We understand and acknowledge that one whole frame per eSCO packet is the intended, optimal method for delivering WBS mSBC audio for reduced jitter, latency, and memory usage. However, the more robust solution would be to maintain a stateful receiver as previously implemented. Any input would be appreciated.
0
0
9
14h
Beta Update Killed Mini M4
I dutifully upgraded my software (beta) on Feb. 24 when prompted. I could not get the computer to reboot, then after about 5 hours on the phone with, I think, 4 techs, they told me the only solution was to wait for the next update - I could not go backwards to the regular version. So $1,299 later I have a new Mac Mini M4! I have to work, so it was the only solution. What do I win?
0
0
26
14h
Pkg Installer Expired Certificate
Hello We have a pkg installer whose signing certificate is expiring next month. It has a trusted timestamp on it. As per https://developer.apple.com/support/certificates/ it states Developer ID Installer Certificate (Mac applications) If your certificate expires, users can still install packages that were signed with this certificate as long as the package includes a trusted timestamp. Previously installed apps will continue to run. However, new installations won’t be possible until you have re-signed your installer package with a valid Developer ID Installer certificate. If your certificate is revoked, users will no longer be able to install applications that have been signed with this certificate. Wanted to check on behavior for new installations post expiration date. Since the installer has a trusted timestamp we would not need to release a new installer with new cert ?? Any guidance here would be much appreciated.
1
0
58
14h
Significantly Delayed App Review
Hi all, Like others my app submission has been stuck in “waiting for review” for weeks. I know initial app reviews take longer than updates, but this has been delayed far too long and makes me concerned about repeating the process in the future. I submitted this app for review back on Feb 10. It was initially rejected for a minor issue, which I resolved and resubmitted the same day. After that, the build remained in “Waiting for Review” for about two weeks with no further communication. At that point I canceled the submission and resubmitted the build, thinking it may have been stuck in the queue (I now know not to do this next time). Unfortunately the new submission has also been waiting for review for another 9 days now with no messages or updates. I’ve contacted app review support as well (case ID- 102826632729). I understand review times can vary, but delays like this make it difficult for developers to plan launches or push updates when the review process is the only path to distributing apps. As paying members of the Apple Developer Program, we rely heavily on this pipeline functioning reliably. Hoping this post will reach someone from Apple who can help move the process along. If any other devs have suggestions/tips that have worked for them, please share so others in this position can become unblocked. Thanks in advance.
1
2
87
14h
In-App Payments
Does a payment that is processed within the app, that generates a QR-Code for the redeeming of a real-life-good (such as tickets, vouchers for drinks, etc.), fall under IN-APP-PAYMENT regulation, which would get a fee of 15-30% on top or can that payment be processed with an external mechanism such as Stripe?
0
0
59
14h