Hello🙏,
I’m a new indie developer and I’m trying to understand review timing behavior.
Context:
App type: Game built with Unreal Engine 5
Initial submission: Entered “In Review” within 41 (?) hrs.
Result: Rejected due to icon similarity (icon too similar to an existing App Store icon)
What I did next:
I updated the icon to ensure it is clearly distinguishable and resubmitted.
A day later that, I removed/rejected that submission myself while it was "Waiting for Review" because I suspected the icon asset might still contain a transparency issue (this was my own precaution before Apple flagged anything).
I then corrected the icon asset and submitted again (current submission: Build 7).
Current status:
Status: Waiting for Review
Duration: 8 Calendar days in this state (09 Feb 1208 hrs and today is 17th Feb 26, 1044 hrs) for Build 7
Additional notes:
The app runs without crashes on my iPhone and iPad.
During the earlier review, Apple only raised the icon similarity issue (no functional issues were mentioned).
I contacted App Store Connect support; they couldn’t provide a queue timeline, but nothing appears flagged on their side.
Question: Is it normal for a resubmitted build (after correcting an icon-related rejection, and after a developer-cancelled submission) to remain in “Waiting for Review” for an extended period before switching to “In Review”?
I’m trying to understand if this is typical queue variability or if removing a submission and resubmitting can affect how long it stays in “Waiting for Review.”
Thank you for any insights.
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I get the following error when running this command in a Jupyter notebook:
v = tf.Variable(initial_value=tf.random.normal(shape=(3, 1)))
v[0, 0].assign(3.)
Environment:
python == 3.11.14
tensorflow==2.19.1
tensorflow-metal==1.2.0
{
"name": "InvalidArgumentError",
"message": "Cannot assign a device for operation ResourceStridedSliceAssign: Could not satisfy explicit device specification '/job:localhost/replica:0/task:0/device:GPU:0' because no supported kernel for GPU devices is available.\nColocation Debug Info:\nColocation group had the following types and supported devices: \nRoot Member(assigned_device_name_index_=1 requested_device_name_='/job:localhost/replica:0/task:0/device:GPU:0' assigned_device_name_='/job:localhost/replica:0/task:0/device:GPU:0' resource_device_name_='/job:localhost/replica:0/task:0/device:GPU:0' supported_device_types_=[CPU] possible_devices_=[]\nResourceStridedSliceAssign: CPU \n_Arg: GPU CPU \n\nColocation members, user-requested devices, and framework assigned devices, if any:\n ref (_Arg) framework assigned device=/job:localhost/replica:0/task:0/device:GPU:0\n ResourceStridedSliceAssign (ResourceStridedSliceAssign) /job:localhost/replica:0/task:0/device:GPU:0\n\nOp: ResourceStridedSliceAssign\n
[...]
[[{{node ResourceStridedSliceAssign}}]] [Op:ResourceStridedSliceAssign] name: strided_slice/_assign"
}
It seems like the ResourceStridedSliceAssign operation is not implemented for the GPU
We are experiencing an issue where Apple’s CDN is not fetching the updated apple-app-site-association (AASA) file correctly for our domain.
Domain - app.myloft-stage.com
AASA File Locations (Both Return Correct JSON):
https://app.myloft-stage.com/.well-known/apple-app-site-association
https://app.myloft-stage.com/apple-app-site-association
Both endpoints:
Return HTTP 200
Return valid JSON
Content-Type: application/json
No redirects
Valid SSL certificate
JSON validated and correctly formatted
Apple CDN URL -
https://app-site-association.cdn-apple.com/a/v1/app.myloft-stage.com
Error Returned by Apple CDN - {"cause":"invalid character '\u003c' looking for beginning of value"}
This error indicates that Apple CDN is receiving HTML content (starting with <) instead of JSON, even though the origin server returns proper JSON.
Observations :
Direct access to AASA file returns correct JSON.
Apple CDN appears to be caching an older or incorrect response.
The CDN response does not match the current server response.
Universal Links fail due to this incorrect AASA retrieval.
VideoMaterial Black Screen on Vision Pro Device (Works in Simulator)
App Overview
App Name: Extn Browser
Bundle ID: ai.extn.browser
Purpose: A visionOS web browser that plays 360°/180° VR videos in an immersive sphere environment
Development Environment & SDK Versions
Component
Version
Xcode
26.2
Swift
6.2
visionOS Deployment Target
26.2
Swift Concurrency
MainActor isolation enabled
App is released in the TestFlight.
Frameworks Used
SwiftUI - UI framework
RealityKit - 3D rendering, MeshResource, ModelEntity, VideoMaterial
AVFoundation - AVPlayer, AVAudioSession
WebKit - WKWebView for browser functionality
Network - NWListener for local proxy server
Sphere Video Mechanism
The app creates an immersive 360° video experience using the following approach:
// 1. Create sphere mesh (10 meter radius for immersive viewing)
let mesh = MeshResource.generateSphere(radius: 10.0)
// 2. Create initial transparent material
var material = UnlitMaterial()
material.color = .init(tint: .clear)
// 3. Create entity and invert sphere (negative X scale)
let sphere = ModelEntity(mesh: mesh, materials: [material])
sphere.scale = SIMD3<Float>(-1, 1, 1) // Inverts normals for inside-out viewing
sphere.position = SIMD3<Float>(0, 1.5, 0) // Eye level
// 4. Create AVPlayer with video URL
let player = AVPlayer(url: videoURL)
// 5. Configure audio session for visionOS
let audioSession = AVAudioSession.sharedInstance()
try audioSession.setCategory(.playback, mode: .moviePlayback, options: [.mixWithOthers])
try audioSession.setActive(true)
// 6. Create VideoMaterial and apply to sphere
let videoMaterial = VideoMaterial(avPlayer: player)
if var modelComponent = sphere.components[ModelComponent.self] {
modelComponent.materials = [videoMaterial]
sphere.components.set(modelComponent)
}
// 7. Start playback
player.play()
ImmersiveSpace Configuration
// browserApp.swift
ImmersiveSpace(id: appModel.immersiveSpaceID) {
ImmersiveView()
.environment(appModel)
}
.immersionStyle(selection: .constant(.mixed), in: .mixed)
Entitlements
<!-- browser.entitlements -->
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
Info.plist Network Configuration
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
The Issue
Behavior in Simulator: Video plays correctly on the inverted sphere surface - 360° video is visible and wraps around the user as expected.
Behavior on Physical Vision Pro: The sphere displays a black screen. No video content is visible, though the sphere entity itself is present.
Important: Not a DRM/Licensing Issue
This issue is NOT related to Digital Rights Management (DRM) or FairPlay. I have tested with:
Unlicensed raw MP4 video files (no DRM protection)
Self-hosted video content with no copy protection
Direct MP4 URLs from CDN without any licensing requirements
The same black screen behavior occurs with all unprotected video sources, ruling out DRM as the cause.
(Plain H.264 MP4, no DRM)
Screen Recording: Working in Simulator
The following screen recording demonstrates playing a 360° YouTube video in the immersive sphere on the visionOS Simulator:
https://cdn.commenda.kr/screen-001.mov
This confirms that the VideoMaterial and sphere rendering work correctly in the simulator, but the same setup shows a black screen on the physical Vision Pro device.
Observations
AVPlayer status reports .readyToPlay - The video appears to load successfully
VideoMaterial is created without errors - No exceptions thrown
Sphere entity renders - The geometry is visible (black surface)
Audio session is configured - No errors during audio session setup
Network requests succeed - The video URL is accessible from the device
Same result with local/unprotected content - DRM is not a factor
Console Logs (Device)
The logging shows:
Sphere created and added to scene
AVPlayer created with correct URL
VideoMaterial created and applied
Player status transitions to .readyToPlay
player.play() called successfully
Rate shows 1.0 (playing)
Despite all success indicators, the rendered output is black.
Questions for Apple
Are there known differences in VideoMaterial behavior between the visionOS Simulator and physical Vision Pro hardware?
Does VideoMaterial(avPlayer:) require specific video codec/format requirements that differ on device? (The test video is a standard H.264 MP4)
Is there a required Metal capability or GPU feature for VideoMaterial that may not be available in certain contexts on device?
Does the immersion style (.mixed) affect VideoMaterial rendering on hardware?
Are there additional entitlements required for video texture rendering in RealityKit on physical hardware?
Attempted Solutions
Configured AVAudioSession with .playback category
Added delay before player.play() to ensure material is applied
Verified sphere scale inversion (-1, 1, 1)
Tested multiple video URLs (including raw, unlicensed MP4 files)
Confirmed network connectivity on device
Ruled out DRM/FairPlay issues by testing unprotected content
Environment Details
Device: Apple Vision Pro
visionOS Version: 26.2
Xcode Version: 26.2
macOS Version: Darwin 25.2.0
Hey everyone,
Is anyone else seeing massive delays right now?
I submitted my app, Brew Routes, on February 5th and it has been stuck in "Waiting for Review" for over 13 days. No messages in the Resolution Center and no status changes.
I’m hesitant to reject and resubmit because I don't want to lose my spot in the queue.
Apple ID: 6758462674
Submitted: Feb 5, 2026
Status: Waiting for Review
Platform: iOS / Capacitor
Is it worth requesting an expedited review at this point, or are others seeing this same February backlog?
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Hi,
I’m enrolling our company in the Apple Developer Program and the enrollment has been stuck in Pending for 8 days. I contacted Apple Developer Support multiple times but haven’t received any response or request for additional information.
Details:
Enrollment ID: 6N5TLZQ68F
Country: Türkiye
I have the legal authority to bind the company to the Apple Developer Program agreements.
Could someone from Apple please check the status and let me know if anything is missing on my side?
Thank you,
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
I am encountering an issue where the Lock Screen Quick Action fails to visibly open my app.
My app is a camera application that utilizes a CameraCaptureIntent to launch a standalone, lightweight camera view (accessible while the device is locked), distinct from the main application.
Steps to Reproduce:
Open the lightweight camera view using the Lock Screen Quick Action.
From this view, launch the Main App.
Lock the iPhone (put it to sleep).
Attempt to launch the lightweight camera view via the Quick Action again.
A slight animation occurs, but the camera view does not appear on screen. After multiple tests, it seems the view is actually launching but remains in an "invisible state."
I suspect that the system hides the lightweight camera view when transitioning to the Main App, but fails to reset this hidden state when the Quick Action is triggered subsequently.
I would appreciate any guidance on a potential workaround or confirmation if this is a known issue awaiting a system update.
To ship a product outside of the Mac App Store, you must notarise it. The notary service issues a notarised ticket, and the ultimate consumer of that ticket is Gatekeeper. However, Gatekeeper does not just check the ticket; it also applies a variety of other checks, and it’s possible for those checks to fail even if your notarised ticket is just fine. To avoid such problems showing up in the field, test your product’s compatibility with Gatekeeper before shipping it.
To do this:
Set up a fresh machine, one that’s never seen your product before. If your product supports macOS 10.15.x, x < 4, the best OS version to test with is 10.15.3 [1].
Download your product in a way that quarantines it (for example, using Safari).
Disconnect the machine from the network. It might make sense to skip this step. See the discussion below.
Install and use your product as your users would.
If the product is signed, notarised, and stapled correctly, everything should work. If not, you’ll need to investigate what’s making Gatekeeper unhappy, fix that, and then retest. For detailed advice on that topic, see Resolving Trusted Execution Problems.
Run this test on a fresh machine each time. This is necessary because Gatekeeper caches information about your product and it’s not easy to reset that cache. Your best option is to do this testing on a virtual machine (VM). Take a snapshot of the VM before the first test, and then restore to that snapshot when you want to retest.
Also, by using a VM you can disable networking in step 3 without disrupting other work on your machine.
The reason why you should disable networking in step 3 is to test that you’ve correctly stapled the notarised ticket on to your product. If, for some reason, you’re unable to do that stapling, it’s fine to skip step 3. However, be aware that this may cause problems for a user if they try to deploy your product to a Mac that does not have access to the wider Internet. For more background on this, see The Pros and Cons of Stapling.
[1] macOS 10.15.4 fixes a bug that made Gatekeeper unnecessarily strict (r. 57278824), so by testing on 10.15.3 you’re exercising the worst case.
The process described above is by far the best way to test your Gatekeeper compatibility because it accurately tests how your users run your product. However, you can also run a quick, albeit less accurate test, using various command-line tools. The exact process depends on the type of product you’re trying to check:
App — Run syspolicy_check like this:
% syspolicy_check distribution WaffleVarnish.app
This tool was introduced in macOS 14. On older systems, use the older spctl tool. Run it like this:
% spctl -a -t exec -vvv WaffleVarnish.app
Be aware, however, that this check is much less accurate.
Disk image — Run spctl like this:
% spctl -a -t open -vvv --context context:primary-signature WaffleVarnish.dmg
Installer package — Run spctl like this:
% spctl -a -t install -vvv WaffleVarnish.pkg
Other code — Run codesign like this:
% codesign -vvvv -R="notarized" --check-notarization WaffleVarnish.bundle
This command requires macOS 10.15 or later.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
Revision history:
2024-12-05 Added instructions for using syspolicy_check. Made other minor editorial changes.
2023-10-20 Added links to Resolving Trusted Execution Problems and The Pros and Cons of Stapling. Made other minor editorial changes.
2021-02-26 Fixed the formatting.
2020-04-17 Added the section discussing spctl.
2020-03-25 First version.
My Apple Developer Program membership has expired and my app has been removed. I am unable to find any renewal option or button on both the website and the app. Kindly assist me in renewing my account and reinstating my product at the earliest.
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Hello.
To determine wether "AVB/EAV Mode" of a AV-capable network interfaces is turned on or off I query the IO registry and evaluate the property "AVBControllerState".
I was wondering if this is the "correct" approach and if there is anything known about the values for this property?
Network interfaces without AV capability may also carry this property (e.g.: for my WiFi adapter the value of 1) whereas the value for interfaces with AV capability can be 0 and 3. At least as far as I could observe with my limited amount of test devices at hand.
Is it safe to assume that a value of 3 means this feature is turned on, 0 that it is turned off and ignore values of 1?
Is there another approach to get to know the status of the "AVB/EAV Mode"?
Thanks for any insight.
Best regards,
Ingo
So i and many other big youtubers out there use iphones for intense gaming such as callcof duty and fortnite. However apple never listens especially to those of us that have been your guys's clients since the early 2000's. Users have different guinsetups for their games and a lot of the time when in an intense conpetition and the the low battery animation pops up it blocks our screens and that 3 to 4 seconds it takes to disappear makes us lose a game. Apple needs to implement a feature that allows us to toggle the notification even if our phone dies or a more efficient route would be allow us to toggle or set it by default to show that your battery is low on the top of the screen where the black line expands when you start charging your phone so it doesn't affect my gameplay whatsoever. This is a crucial thing apple needs to do, many people won't report it because apple never listens. Another great feature would be if apple could make a charging port on the side for claw players.
I need to apply headphone-specific scenario only when headphones are the sole active playback device in my iOS audio app.
Problem that there is no absolute way to definitively understand that headphones are the sole active playback device
AVAudioSession.currentRoute.outputs portTypes don't guarantee headphones:
let session = AVAudioSession.sharedInstance()
let outputs = session.currentRoute.outputs
let headphonesOnly = outputs.count == 1 &&
(outputs.first?.portType == .headphones ||
outputs.first?.portType == .bluetoothA2DP ||
outputs.first?.portType == .bluetoothHFP ||
outputs.first?.portType == .bluetoothLE)
The issue in code above that listed bluetooth profiles (A2DP, HFP, LE) can be used by any audio device, not only headphones
Is there any public API on iOS that can:
Distinguish Bluetooth headphones vs Bluetooth speakers when both use A2DP/LE?
Expose the user’s “Device Type” classification (headphones / speaker / car stereo, etc.) that is shown in Settings → Bluetooth → Device Type?
Provide a more reliable way to know “this route is definitely headphones” for A2DP devices, beyond portType and portName string heuristics?
Hi,
I've now identified a few areas when BGContinuedProcessingTask gets expired by the system
no progress for ~30 seconds
high CPU usage
high temperature
Some of these I can preempt and expire preemptively and handle the notification, others I cannot and just need to let the failure bubble up.
When the failure does bubble up, I'd like to update the title and subtitle. I'm able to update the title, but the subtitle is fixed at "Task Failed"
Is there any workaround? Or shall I file a bug here?
I'm attempting to use Cloud Signing to export the Release version of 3 different apps for App Store, as described in https://developer.apple.com/videos/play/wwdc2021/10204/
The process completes successfully, and appears to be signed correctly, with a newly-created certificate in the developer portal of type "Distribution Managed".
When I upload to App Store Connect however, I see the following error for several third-party Swift packages, distributed as frameworks:
Validation failed (409) Invalid Signature. Code failed to satisfy specified code requirement(s). The file at path “MyApp.app/Frameworks/MyFramework.framework/MyFramework” is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose “Clean All” in Xcode, delete the “build” directory in the Finder, and rebuild your release target. For more information, please consult https://developer.apple.com/support/code-signing.
If I have a manually created Distribution certificate installed in the keychain at the point of export, the same archive is signed with that certificate, and is accepted by App Store Connect without issue.
The xcodebuild command I am using (roughly):
xcodebuild -exportArchive \
-archivePath "$ARCHIVE_PATH" \
-exportPath "$EXPORT_PATH" \
-exportOptionsPlist "$EXPORT_OPTIONS" \
-authenticationKeyPath "$API_KEY" \
-authenticationKeyID "$API_KEY_ID" \
-authenticationKeyIssuerID "$API_KEY_ISSUER" \
-allowProvisioningUpdates
The plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "<http://www.apple.com/DTDs/PropertyList-1.0.dtd>">
<plist version="1.0">
<dict>
<key>method</key>
<string>app-store-connect</string>
<key>teamID</key>
<string>$TEAM</string>
<key>uploadSymbols</key>
<true/>
<key>signingStyle</key>
<string>automatic</string>
</dict>
</plist>
Is what I’m trying to do supported? Is this a bug?
Topic:
Developer Tools & Services
SubTopic:
Xcode Cloud
Tags:
App Store Connect
Xcode
App Store Connect API
Code Signing
Please help. I purchased an Apple Developer account subscription through the iPhone app. It's listed in the App Store, but it's not listed in Apple Developer itself. I've been waiting for a response from support for over a week, but it's as if they've completely forgotten about me; no one's responding. Although, in fact, it says two days ago. Has anyone else encountered this and can help? It's asking me to pay a second time, and through the website.
Topic:
Community
SubTopic:
Apple Developers
Summary:
We are facing a serious issue on iPhone where multiple passkey authentication problems occur when accessing passkey-enabled login pages via shortcuts placed on the iPhone Home Screen. These issues may also occur when opening the same pages directly in a standard browser window. However, launching the login pages from a Home Screen shortcut appears to increase the likelihood of encountering these issues.
Affected Services (examples, not exhaustive):
Amazon
GitHub
Adobe
Observed Issues:
Issue 1: A passkey authentication dialog/popup shows two times without any user operation:
What happens due to this issue:
Login does not complete after the first passkey authentication.
A second passkey authentication UI automatically appears.
Completing or canceling the second authentication allows the login to proceed.
Issue 2: Login remains stuck until the user manually invokes passkey again
What happens due to this issue:
The login page does not advance after the first authentication.
The user must tap the ID/username field again to manually trigger the passkey UI.
Completing the second authentication enables login.
Issue 3: Automatic second authentication occurs, but login still fails
What happens due to this issue:
A second automatic authentication UI appears.
Login still does not complete.
Tapping the ID field no longer opens the passkey UI; instead, the password auto-fill panel appears.
Passkey login becomes impossible.
Observed reproduction steps (not guaranteed but most consistently observed):
On iPhone, navigate to a passkey-enabled login page (e.g., Amazon, GitHub, Adobe) using a browser.
Create a shortcut from the browser's share menu and place it on the Home Screen.
Launch the login page from the Home Screen shortcut.
Tap the ID/username field to invoke the passkey prompt.
Complete passkey authentication.
→ One of the issues described above occurs.
Environment:
Device: iPhone SE
OS: iOS 18.6.2
Topic:
Safari & Web
SubTopic:
General
Tags:
WebKit
Safari
Safari and Web
Passkeys in iCloud Keychain
Hi, so this is my first app, it's actually almost finished, however coming closer to the app store publishing i have a few questions.
First of all, i tried making an app so it's easier for people to download it instead of a website and the app has notifications so PWA are also sometimes hit or miss and my collegues are a tad older so explaining to them how to safe to homescreen for like 50 people is not the best way.
So my app is actually only made for collegues of mine, when the app opens it's a registration page which most of the time will be locked.(i assume that's allowed?)
There's $ prices involved (max $100) at the end if they win but there's nowhere that they need to pay or anything inside the app, it's leftovers from work related activities that gets distributed amongst the winnners.
Nothing goes towards me, i earn nothing.
Also it's a football pool(for the world cup) they need to predict the score, get it right and get some points, highest points winners received the prizes.
To the people who have made countless apps, is Apple going to allow this app you think?
Thanks in advance.
Topic:
App Store Distribution & Marketing
SubTopic:
General
I am writing to request a status update on my organization’s enrollment in the Apple Developer Program. Our application has been in "Pending" status for 10 days, and we have not received any requests for further documentation, 0 answer from my support request.
Please help to solve my issue
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Hi!
I'm building a Screen Time management app using FamilyControls and ManagedSettings. When a user taps the primary button on a ShieldActionExtension, I need to open my main app to guide them through an intervention exercise.
Other approved App Store apps like Jomo - Screen Time Blocker do exactly this: tapping their shield's primary button opens the main Jomo app directly.
Screen recording: https://drive.google.com/file/d/15yubtTdTkFskGCIaAw_HGB57-boHPl3a/view?usp=sharing
I've tried:
URL schemes (UIApplication.shared.open() unavailable in extensions)
Universal links
Local notifications (works, but adds an extra tap)
NSUserActivity
Is there a supported API I'm missing? Or another accepted solution? Any guidance is appreciated.
Topic:
App & System Services
SubTopic:
General
Tags:
Extensions
Family Controls
Managed Settings
Screen Time
In iOS 18, when a contact with multiple phone numbers called, the system clearly indicated which specific number was used—often by highlighting it in red for missed calls or tagging it as 'recent.' However, in iOS 26, this distinction is missing, and there is no way to determine which of the contact's numbers the call originated from.