We registered as a developer company (NGO) more than 50 days ago and it's still under review. We've already sent the documents, we've confirmed by phone, and every time we contact them we receive no information. They just tell us it's under review and there's no deadline for when this review will be completed. On the same day we registered with Apple, we registered with Google and our app has been published on Google for more than 30 days. We have no support or answers. Could someone help us to at least know a deadline for this review?
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Just wanted to check here to see if anyone else is running into the issue of CarPlay not working at all on iOS 26 Beta 1, even with the update on Friday.
I plug my phone in (wired) and CarPlay never shows up. I've seen a Reddit thread where other folks are seeing the same thing.
Hello,
My project is GitLab and to access it we need VPN. How to connect Xcode Cloud to that repo if VPN is required for read it? Any solution to this? Any help is appreciated
Hello — quick question about App Store Server Notifications migration.
We have a live app using Production V1 notifications for recurring in-app subscriptions. We plan to switch the Production webhook to V2. After the switch:
Will notifications for existing subscriptions be delivered in V1 format, V2 format, or will it depend (e.g., queued V1 retries vs new V2 deliveries)?
If V1 retries are queued, how long should we expect overlap/retries to continue?
Any recommended cutover best practices (support both formats, revert process, etc.)?
Happy to share additional details.
Thanks.
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
App Store
In-App Purchase
App Store Server Notifications
Our app receives a CallKit VoIP call. When the user taps “Answer”, the app launches and automatically connects to a real-time audio session using WebRTC or MobileRTC.
We would like to confirm whether the following flow (“CallKit Answer → app opens → automatic WebRTC or MobileRTC audio session connection”) complies with Apple’s VoIP Push / CallKit policy.
In addition, our service also provides real-time video-class functionality using the Zoom Meeting SDK (MobileRTC). When an incoming CallKit VoIP call is answered, the app launches and the user is automatically taken to the Zoom-based video lesson flow: the app opens → the user is landed on the Zoom Meeting pre-meeting room → MobileRTC initializes immediately. In the pre-meeting room, audio and video streams can already be active and MobileRTC establishes a connection, but the actual meeting screen is not joined until the user explicitly taps “Join”. We would like to confirm whether this flow for video lessons (“CallKit Answer → app opens → pre-meeting room (audio/video active) → user taps ‘Join’ → enter actual meeting”) is also compliant with Apple’s VoIP Push and CallKit policy.
Rejecting a Cellular Call Also Rejects Application Video Call
Steps:
1.When a user receives a cellular call and it is in the "ringing" state and application receives a video call which is reported to CallKit
2.User rejects the Cellular call from Callkit UI, Video call is also getting rejected.
3.Application is receiving performEndCallAction when user is rejecting the Cellular call
As a part of CXcallobserver Application is receiving call connected then disconnected for the cellular call
Irrespective of OS, the issue only reproduces on cellular calls if Live Voicemail is enabled.
Issue is not reproduced when Live Voicemail is disabled for cellular calls, and it is not reproducing on FaceTime calls, regardless of the Live Voicemail setting.
This results in a poor user experience because:
The recipient unintentionally misses the CallKit-reported call.
The initiator receives confusing and inaccurate status information, believing the recipient is busy rather than having chosen to decline the pending video call.
Is this intended behavior? I want my app to act like the regular Clock app and snooze alarms when user taps volume down button but apparently volume down button stops the alarm. Is this normal or am I missing something?
Topic:
App & System Services
SubTopic:
General
I renewed my membership and payment was successful but account is still showing as expired. Is there a delay?
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Is the accessibility feature, voice command recording available on the Apple Vision Pro? It does not start on my device.
The Apple Vision Pro is on 26.1.
Regular single voice commands work on the Apple Vision Pro.
Recording commands worked on other devices. (iPad and iPhone)
Hello everyone! I'm a newly graduated Computer Engineer living in Türkiye. I've been developing my skills in the iOS field for a while now. But sometimes I get lost and don't know what to do. I've just joined this community and have a request for you. I'd be very grateful if you could share your own advice, experiences you've had along the way, and how you successfully overcame them. I'm open to all kinds of positive or negative feedback. Self-improvement is paramount to me.
When adding buttons to a sheet, on tvOS the text is blurred in the buttons, making it illegible. Feedback: FB21228496
(used GPT to extract an example from my project for a test project to attach here)
// ButtonBlurTestView.swift
// Icarus
//
// Test view to reproduce blurred button issue on tvOS
//
import SwiftUI
struct ButtonBlurTestView: View {
@State private var showSheet = false
@State private var selectedTags: [Int] = []
@State private var newTagName: String = ""
// Hardcoded test data
private let testTags = [
TestTag(id: 1, label: "Action"),
TestTag(id: 2, label: "Comedy"),
TestTag(id: 3, label: "Drama"),
TestTag(id: 4, label: "Sci-Fi"),
TestTag(id: 5, label: "Thriller")
]
var body: some View {
NavigationStack {
VStack {
Text("Button Blur Test")
.font(.title)
.padding()
Button("Show Test Sheet") {
showSheet = true
}
.buttonStyle(.borderedProminent)
.padding()
Text("Tap the button above to open a sheet with buttons inside a Form.")
.font(.caption)
.foregroundColor(.secondary)
.multilineTextAlignment(.center)
.padding()
}
.navigationTitle("Blur Test")
.sheet(isPresented: $showSheet) {
TestSheetView(
selectedTags: $selectedTags,
newTagName: $newTagName,
testTags: testTags
)
}
}
}
}
struct TestSheetView: View {
@Environment(\.dismiss) private var dismiss
@Binding var selectedTags: [Int]
@Binding var newTagName: String
let testTags: [TestTag]
var body: some View {
NavigationStack {
VStack {
// Header
VStack {
Text("Testing")
.font(.title2)
.bold()
Text("Test TV Show")
.font(.subheadline)
.foregroundColor(.secondary)
}
.padding()
// Form with buttons
Form {
Section(header: Text("Summary")) {
Text("This is a test")
.font(.subheadline)
.foregroundColor(.secondary)
}
Section(header: Text("Tags")) {
tagsSelectionView
}
}
}
.navigationTitle("Add")
#if !os(tvOS)
.navigationBarTitleDisplayMode(.inline)
#endif
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button("Cancel") { dismiss() }
}
ToolbarItem(placement: .confirmationAction) {
Button("Add") { dismiss() }
}
}
}
}
private var tagsSelectionView: some View {
VStack(alignment: .leading) {
// Tag pills in a grid
let columns = [GridItem(.adaptive(minimum: 80), spacing: 8)]
LazyVGrid(columns: columns, alignment: .leading, spacing: 8) {
ForEach(testTags, id: \.id) { tag in
TagPill(
tag: tag,
selected: selectedTags.contains(tag.id)
) {
if selectedTags.contains(tag.id) {
selectedTags.removeAll { $0 == tag.id }
} else {
selectedTags.append(tag.id)
}
}
}
}
Divider()
// Add new tag button
HStack {
TextField("New tag name", text: $newTagName)
#if os(tvOS)
.textFieldStyle(PlainTextFieldStyle())
#else
.textFieldStyle(RoundedBorderTextFieldStyle())
#endif
Button("Add") {
// Test action
newTagName = ""
}
.disabled(newTagName.trimmingCharacters(in: .whitespaces).isEmpty)
}
}
}
}
// Tag Pill - matches the structure from original project
private struct TagPill: View {
let tag: TestTag
let selected: Bool
let action: () -> Void
var body: some View {
Button(action: action) {
Text(tag.label)
.font(.callout)
.lineLimit(1)
.padding(.horizontal, 12)
.padding(.vertical, 8)
.background(
Capsule()
.fill(selected ? Color.accentColor : Color.secondary.opacity(0.15))
)
.overlay(
Capsule()
.stroke(selected ? Color.accentColor : Color.secondary.opacity(0.35), lineWidth: 1)
)
.foregroundStyle(selected ? Color.white : Color.primary)
.contentShape(Capsule())
}
.buttonStyle(.plain)
#if os(tvOS)
.focusable(true)
#endif
}
}
struct TestTag {
let id: Int
let label: String
}
#Preview {
ButtonBlurTestView()
}
System data is beyond a joke now.
There constant logs being generated and stored somewhere with zero access and ability to delete or clear up. I’ve even tried changing the date hack, however this just created some space from system but mostly just unloaded my apps (a feature which I’ve now disabled, as virtually everything is unloaded now apart from essential items).
Apple support says wipe and start again, I’m sure that’s not a solution? Anyone figured out how to resolve this?
Also you can’t even force videos into the cloud, frustrating when I’ve got no space and pay for iCloud and have zero space left on my phone. It’s suppose to be intelligent.
Topic:
Community
SubTopic:
Apple Developers
I'm concerned that the Apple Vision Pro is too costly for low-income developers to develop for. Any thoughts?
Is there any interest in this forum for those developing for the spatial web and safari. I can't seem to find any posts that are relevant here.
Trying to remove an app version from review to replace it with a newer version.
Despite the docs saying it's possible, it's not.
Silent failure. Seeing 409 in the console.
Any ideas how to fix it?
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
I'm trying to sync authentication data from my iOS app to a Safari Web Extension using App Groups, but the extension isn't consistently receiving the data.
Setup:
App Group: group.com.airaai.AiraApp (configured in both app and extension)
iOS app writes auth data using UserDefaults(suiteName: "group.com.airaai.AiraApp")
Extension's Swift SafariWebExtensionHandler reads from App Groups in beginRequest()
Extension's JavaScript reads from browser.storage.local
Problem:
Extension popup always shows "logged out" even when:
User is logged into main iOS app
Auth data exists in App Groups (verified via native module logs)
Handler successfully writes test values to extension storage
Current Behavior:
Handler CAN read from App Groups ✅
Handler CAN write test values to extension storage ✅
But auth data doesn't appear in browser.storage.local when popup checks ❌
Popup reads empty keys even though handler logged writing them
Code:
// Handler reads from App Groups
guard let sharedDefaults = UserDefaults(suiteName: "groupName") else { return }
let authData = sharedDefaults.string(forKey: "auth_data")
// Handler writes to extension storage (tried multiple suite names)
let extensionDefaults = UserDefaults(suiteName: Bundle.main.bundleIdentifier ?? "")
extensionDefaults?.set(authData, forKey: "oauth_token")
extensionDefaults?.synchronize()
// Popup reads from storage
browser.storage.local.get(['oauth_token']).then(data => {
console.log(data); // Always empty {}
});
What I've tried:
✅ App Groups properly configured in both targets
✅ Extension has App Groups capability enabled
✅ Multiple UserDefaults suite names (bundle ID, bundle ID + suffix)
✅ Delayed sync attempts in handler
✅ Comprehensive logging
Questions:
What is the correct UserDefaults suite name for Safari extension storage on iOS?
When does beginRequest() get called? Can it be triggered manually?
Is App Groups the right approach, or should I use a different pattern?
Alternatives I've considered:
Deep link/redirect method (app opens Safari with token in URL)
Content script intercepts URL and sends to background script
Is this a supported approach for iOS Safari extensions?
Any guidance or examples would be greatly appreciated!
Hi, I was sent here by Apple developer account, it seems here is the only option for me, so your help is very much appreciated!
Basically we are building a chromium based browser on iOS, we applied the "com.apple.developer.web-browser" entitlement, and it shows up in our identifier, profile etc.
The app is signed with the new entitlement and published to the app store. However it is not listed as an option for default browser, doesn't matter which device I tried.
I did verified that the Info.plist contains http/https urlschemes as required. In fact a few of us checked all available documents multiple times and still couldn't see why.
Topic:
Code Signing
SubTopic:
Entitlements
Hi
First, I hope I'm in the right place, I'm not certain. I'm having my first attempt at IOS development and want to see the progress I've made on my phone. I plugged it in to my Mac and selected it as a preview device and got the following messages in the Signing & Capabilities screen:
Your team has no devices from which to generate a provisioning profile. Connect a device to use or manually add device IDs in Certificates, Identifiers & Profiles. https://developer.apple.com/account/
No profiles for '...' were found: Xcode couldn't find any iOS App Development provisioning profiles matching '...'.
My account and personal team are shown in the Xcode settings, but it says 0 Provisioned Devices. I also tried restarting, and enabled developer mode on the phone. I checked the provided link, but saw nowhere to add a device ID. Clearly I don't understand what I'm doing. Can anyone help me make sense of this?
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Device: iPhone 17 Series
System: iOS 26.0.0
Wi-Fi: TKIP encryption protocol
Question: Unable to join the network
We have several products that are used by connecting to iPhone via Wi-Fi.
Recently, many customers who have purchased the iPhone 17 series have reported that they are unable to connect to Wi-Fi.
For Wi-Fi with TKIP encryption, after entering the password correctly to connect to the Wi-Fi, a pop-up appears stating "Unable to join the network.".
Only Wi-Fi with WPA2-AES can be used normally.
Before that, during the iPhone 11 era or even earlier, the TKIP encryption method was in normal use. However, the new iPhone models were incompatible with it, which obviously caused great inconvenience.
I hope the engineers can fix this issue to support Wi-Fi with older encryption protocols.
I’m currently developing an application using WKWebView.
After updating to iOS 26.2 Developer Beta, the following Web API started returning false:
isUserVerifyingPlatformAuthenticatorAvailable
MDN: https://developer.mozilla.org/ja/docs/Web/API/PublicKeyCredential/isUserVerifyingPlatformAuthenticatorAvailable_static
This issue did not occur on iOS 26.1 — it only happens on the beta version.
Has anyone else encountered this problem or is aware of any related changes?
OS: iOS 26.2 beta 3 (23C5044b)