I'm trying to understand how Apple handles dragging windows around in an immersive space. 3d Gestures seem to be only half of the solution in that they are great if you're standing still and want to move the window an exaggerated amount around the environment, but if you then start walking while dragging, the amplified gesture sends the entity flying off into the distance. It seems they quickly transition from one coordinate system to another depending on if the user is physically moving. If you drag a window and start walking the movement suddenly matches your speed. When you stop moving, you can push and pull the windows around again like a super hero. Am I missing something obvious in how to copy this behavior? Hello world, which uses the 3d gesture has the same problem. You can move the world around but if you walk with it, it flies off. Are they tracking the head movement and if it's moved more than a certain amount it uses that offset instead? Is there anything out of the box that can do this before I try and hack my own solution?
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Our solo traveler safety app has been rejected multiple times; for random reasons.
Latest rejection demands "manual check-in each time" for location display — this requirement doesn't appear in published Guidelines 5.1.2 or 5.1.5.
BUT!! We built the feature anyway: users invisible by default, must tap Check In to appear on map, auto-expires 24hrs. Submitted video proof, screenshots, detailed notes. Age rating set to 18+. (its not even adult but we did it anyway as to match our own policy)
Comparable apps (Couchsurfing, Life360, Snap Map) approved without this requirement.
Time-critical: investor meetings Bangkok Dec 11, flight Dec 10 11pm GMT - 15 months development. UK registered company.
Has anyone dealt with unpublished requirements being applied inconsistently? Any advice appreciated - I cant get through to dev/app review team or senior advisors. And lovely call handlers in cork tried his. best but cannot do anything - ive not slept for near 24 hours due to unknown reasons - some minor make sense, and other just made - but we covered it anyway; im not sure what to do??? HELP
I want to add more cipher suites. I use NWConnection to make a connection.
Before I use sec_protocol_options_append_tls_ciphersuite method to add more cipher suites, I found that Apple provided 20 cipher suites shown in the client hello packet. But after I added three more cipher suites, I found that nothing changed, and still original 20 cipher suites shown in the client hello packet when I made a new connection.
The following is the code about connection. I want to add three more cipher suites: tls_ciphersuite_t.ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
tls_ciphersuite_t.ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
tls_ciphersuite_t.ECDHE_RSA_WITH_AES_256_CBC_SHA384
Can you give me some advice about how to add more cipher suites? Thanks.
By the way, I working on a MacOS app.
Xcode version: 16
MacOS version: 15.6
We’re developing an AVFoundation-based video recording app (4K @ 60 fps required for biomechanical analysis). On most devices this works perfectly (iPhone 12/14/15/16 non-Pro models), but on several iPhone Pro models (12 Pro, 13 Pro, 14 Pro, 15 Pro/Pro Max), we consistently get 4K 30 fps recordings—even when the device should support 4K 60 fps on the wide-angle camera.
What we observe
We configure the session for .hd4K3840x2160.
We iterate through AVCaptureDevice.formats and select formats that:
have 3840×2160 resolution
support ≥60 fps (videoSupportedFrameRateRanges)
On some Pro devices, this format search returns no results, even though:
The Camera app records 4K60 fine.
External references list the wide camera as 4K60 capable.
The fallback becomes the device's default 4K30 format, so final files are 3840×2160 @ 30 fps.
This happens immediately on app launch (not after heating), so not thermal-related.
What we’ve tried
Force selecting .builtInWideAngleCamera instead of dual/triple cameras.
Disabling HDR (videoHDREnabled = false).
Disabling low-light boost.
Allowing 59.94 fps formats (in case exact 60.0 isn’t exposed).
Logging all videoSupportedFrameRateRanges per format.
What we’re seeing in logs
On affected Pro devices, the capture device reports only 4K formats with maxFrameRate ≈ 30 fps, despite the hardware being able to do 4K60.
Main question
Has anyone encountered cases where 4K60 formats are available in the Camera app but not exposed through AVFoundation, especially on Pro models or multi-camera devices?
Could HEVC/HDR capability or multi-camera constraints be preventing certain formats from appearing?
Are there known conditions where 4K60 formats are hidden unless specific device configuration is applied?
Any guidance on reliably locking 4K60 on iPhone Pro models via AVFoundation would be hugely appreciated.
iosアプリをAppStoreへ公開した後に何らかの理由で戻しが必要になった場合、緊急申請で問題無いアプリを再リリースするのが最速の方法でしょうか?
もしも、より良い方法があれば教えてください。
戻し用のアプリバージョンを用意しておいてリリース予定のアプリを公開した後にすぐ審査を回すという方法を見つけたのですが、審査の90%が24時間以内(ちょっと数字が違うかも?)と言われている以上緊急申請の方が早いですか?
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
App Store
App Store Connect
Was able to use ai to help code my idea for a haptic heart rate monitor using watch se‘s ppg and accelerometer. Now if I could just get it on the App Store…
On the latest iOS 26.2 betas I’ve noticed a consistent bug across every 2048-type number-merge game I’ve tested. At some point during gameplay the app freezes and the entire system becomes unresponsive for a few seconds. When control returns, the game is still stuck, looping its selection animation until it’s force-closed. Frame-rate limits and reduced-transparency settings don’t solve it. Is anyone else seeing similar behavior?
Topic:
Community
SubTopic:
Apple Developers
Hello,
I've discovered a buffer initialization bug in AVAudioUnitSampler that happens when loading presets with multiple zones referencing different regions in the same audio file (monolith/concatenated samples approach).
Almost all zones output silence (i.e. zeros) at the beginning of playback instead of starting with actual audio data.
The Problem
Setup:
Single audio file (monolith) containing multiple concatenated samples
Multiple zones in an .aupreset, each with different sample start and sample end values pointing to different regions of the same file
All zones load successfully without errors
Expected Behavior:
All zones should play their respective audio regions immediately from the first sample.
Actual Behavior:
Last zone in the zone list: Works perfectly - plays audio immediately
All other zones: Output [0, 0, 0, 0, ..., _audio_data] instead of [real_audio_data]
The number of zeros varies from event to event for each zone. It can be a couple of samples (<30) up to several buffers.
After the initial zeros, the correct audio plays normally, so there is no shift in audio playback, just missing samples at the beginning.
Minimal Reproduction
1. Create Test Monolith Audio File
Create a single Wav file with 3 concatenated 1-second samples (44.1kHz):
Sample 1: frames 0-44099 (constant amplitude 0.3)
Sample 2: frames 44100-88199 (constant amplitude 0.6)
Sample 3: frames 88200-132299 (constant amplitude 0.9)
2. Create Test Preset
Create an .aupreset with 3 zones all referencing the same file:
Pseudo code
<Zone array>
<zone 1> start : 0, end: 44099, note: 60, waveform: ref_to_monolith.wav;
<zone 2> start sample: 44100, note: 62, end sample: 88199, waveform: ref_to_monolith.wav;
<zone 3> start sample: 88200, note: 64, end sample: 132299, waveform: ref_to_monolith.wav;
</Zone array>
3. Load and Test
// Load preset into AVAudioUnitSampler
let sampler = AVAudioUnitSampler()
try sampler.loadAudioFiles(from: presetURL)
// Play each zone (MIDI notes C4=60, D4=62, E4=64)
sampler.startNote(60, withVelocity: 64, onChannel: 0) // Zone 1
sampler.startNote(62, withVelocity: 64, onChannel: 0) // Zone 2
sampler.startNote(64, withVelocity: 64, onChannel: 0) // Zone 3
4. Observed Result
Zone 1 (C4): [0, 0, 0, ..., 0.3, 0.3, 0.3] ❌ Zeros at beginning
Zone 2 (D4): [0, 0, 0, ..., 0.6, 0.6, 0.6] ❌ Zeros at beginning
Zone 3 (E4): [0.9, 0.9, 0.9, ...] ✅ Works correctly (last zone)
What I've Extensively Tested
What DOES Work
Separate files per zone:
Each zone references its own individual audio file
All zones play correctly without zeros
Problem: Not viable for iOS apps with 500+ sample libraries due to file handle limitations
What DOESN'T Work (All Tested)
1. Different Audio Formats:
CAF (Float32 PCM, Int16 PCM, both interleaved and non-interleaved)
M4A (AAC compressed)
WAV (uncompressed)
SF2 (SoundFont2)
Bug persists across all formats
2. CAF Region Chunks:
Created CAF files with embedded region chunks defining zone boundaries
Set zones with no sampleStart/sampleEnd in preset (nil values)
AVAudioUnitSampler completely ignores CAF region metadata
Bug persists
3. Unique Waveform IDs:
Gave each zone a unique waveform ID (268435456, 268435457, 268435458)
Each ID has its own file reference entry (all pointing to same physical file)
Hypothesized this might trigger separate buffer initialization
Bug persists - no improvement
4. Different Sample Rates:
Tested: 44.1kHz, 48kHz, 96kHz
Bug occurs at all sample rates
5. Mono vs Stereo:
Bug occurs with both mono and stereo files
Environment
macOS: Sonoma 14.x (tested across multiple minor versions)
iOS: Tested on iOS 17.x with same results
Xcode: 16.x
Frameworks: AVFoundation, AudioToolbox
Reproducibility: 100% reproducible with setup described above
Impact & Use Case
This bug severely impacts professional music applications that need:
Small file sizes: Monolith files allow sharing compressed audio data (AAC/M4A)
iOS file handle limits: Opening 400+ individual sample files is not viable on iOS
Performance: Single file loading is much faster than hundreds of individual files
Standard industry practice: Monolith/concatenated samples are used by EXS24, Kontakt, and most professional samplers
Current Impact:
Cannot use monolith files with AVAudioUnitSampler on iOS
Forced to choose between: unusable audio (zeros at start) OR hitting iOS file limits
No viable workaround exists
Root Cause Hypothesis
The bug appears to be in AVAudioUnitSampler's internal buffer initialization when:
Multiple zones share the same source audio file
Each zone specifies different sampleStart/sampleEnd offsets
Key observation: The last zone in the zone array always works correctly.
This is NOT related to:
File permissions or security-scoped resources (separate files work fine)
Audio codec issues (happens with uncompressed PCM too)
Preset parsing (preset loads correctly, all zones are valid)
Questions
Is this a known issue? I couldn't find any documentation, bug reports, or discussions about this.
Is there ANY workaround that allows monolith files to work with AVAudioUnitSampler?
Alternative APIs? Is there a different API or approach for iOS that properly supports monolith sample files?
Hi,
We are operating a service that uses Sign in with Apple for user registration and login.
As part of our security incident response and periodic security improvements, we are planning to rotate the private key used to generate the client secret (JWT) for Sign in with Apple.
I have read the Human Interface Guidelines and the AuthenticationServices documentation, but I could not find a clear description of the behavior and user impact when rotating this private key. I would like to ask the following questions:
Background:
We issue a Sign in with Apple private key (with a Key ID) in our Apple Developer account.
Our server uses this private key to generate the client secret (JWT).
This is used for Sign in with Apple login on our web / mobile app.
We are planning to invalidate the existing private key and switch to a newly issued one.
Questions:
Impact on existing logged-in sessions
Will rotating the private key force already logged-in users (who previously signed in with Apple) to be logged out from our service?
Can the user identifier (such as the "sub" claim) for existing Sign in with Apple users change due to key rotation?
Recommended frequency and best practices
Does Apple recommend rotating this private key only when it is compromised, or on a regular basis?
If there are any official documents or examples that describe how to safely perform key rotation in production, we would appreciate a pointer.
Impact on marketing / analytics
We are using user IDs (linked via Sign in with Apple) for analytics and marketing attribution.
Is there any expected impact on such use cases caused by rotating the private key?
For example, is there any possibility that user identifiers change as a result of key rotation, or anything we should be careful about from a data linkage perspective?
Our goal is to rotate the private key in a secure way without causing service downtime, mass logouts, or loss of account linkage.
If there is already an official document that covers this, please let me know the URL.
Thank you in advance.
Hi,
I am trying to update my apps and i couldn't do it, can anyone please help? this is what happened to me.
Once my membership renewed, i couldn't compile my apps due to signing error. here is the error message:
Xcode archive done. 31.7s
Failed to build iOS app
Error (Xcode): Communication with Apple failed: 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/
/Users/tony/vn246/ios/Runner.xcodeproj
when I go to the portal developer.apple.com/account to create the Provisioning Profile manually then it said there is no device, and when i go into the Devices section then the machine uuid is added and it's there and registered, i had always been compiling with it before the old membership was expired. I tried to remove those and re-added and the error still persisted.
P.S.: I renewed all my certificates (removed old and recreated new)
thank you
I have something like this drawing in an MTKView (see at bottom).
I am finding it difficult to figure out when can the Swift-land resources used in making the MTLBuffer(s) be released? Below, for example, is it ok if args goes out of scope (or is otherwise deallocated) at point 1, 2, or 3? Or perhaps even earlier, as soon as argsBuffer has been created?
I have been reading through various articles such as
Setting resource storage modes
Choosing a resource storage mode for Apple GPUs
Copying data to a private resource
but it's a lot to absorb and I haven't been really able to find an authoritative description of the required lifetime of the resources in CPU land.
I should mention that this is Metal 4 code. In previous versions of Metal, the MTLCommandBuffer had the ability to add a completion handler to be called by the GPU after it has finished running the commands in the buffer but in Metal 4 there is no such thing (it it were even needed for the purpose I am interested in).
Any advice and/or pointers to the definitive literature will be appreciated.
guard let argsBuffer = device.makeBuffer(bytes: &args,...
argumentTable.setAddress(argsBuffer.gpuAddress, ...
encoder.setArgumentTable(argumentTable, stages: .vertex)
// encode drawing
renderEncoder.draw...
...
encoder.endEncoding() // 1
commandBuffer.endCommandBuffer() // 2
commandQueue.waitForDrawable(drawable)
commandQueue.commit([commandBuffer]) // 3
commandQueue.signalDrawable(drawable)
drawable.present()
Topic:
Graphics & Games
SubTopic:
Metal
Structs are value types, and the SwiftUI gets reinitialized many times throughout its lifecycle. Whenever it gets reinitialized, would the reference that the delegator has of it still work if the View uses @State or @StateObject that hold a persistent reference to the views data?
protocol MyDelegate: AnyObject {
func didDoSomething()
}
class Delegator {
weak var delegate: MyDelegate?
func trigger() {
delegate?.didDoSomething()
}
}
struct ContentView: View, MyDelegate {
private let delegator = Delegator()
@State counter = 1
var body: some View {
VStack {
Text("\(counter)")
Button("Trigger") {
delegator.trigger()
}
}
}
func didDoSomething() {
counter += 1 //would this call update the counter in the view even if the view's instance is copied over to the delegator?
}
}
Our company sells insurance and we'd like to offer annual renewals via Apple Pay on the Web. Most of the docs seem to point towards using recurringpaymentrequest but this method required an amount value which would only be calculated at renewal time.
It appears that Shopify is doing something akin to what we want where they do auto payments so my question is can we do annual payments with unknown renewal prices with Apple Pay for Web ?
What we cannot do is show the renewal price like this as it being insurance is almost certain to change.
This is our current code which works but won't get past the regulator.
const applePayPaymentRequestAnnual = {
countryCode: 'GB',
currencyCode: 'GBP',
supportedNetworks: ['visa', 'masterCard'],
merchantCapabilities: ['supports3DS'],
requiredBillingContactFields: ['postalAddress', 'email'],
requiredShippingContactFields: ['phone'],
recurringPaymentRequest: {
paymentDescription: 'Annual Insurance Renewal',
regularBilling: {
label: 'Annual Renewal Premium',
amount: price,
paymentTiming: "recurring",
recurringPaymentIntervalUnit: "year",
recurringPaymentStartDate: year + "-" + month + "-" + day + "T00:00:00.000Z",
type: 'final'
},
managementURL: window.location.protocol + '//' + window.location.host + '/manage-policy',
tokenNotificationURL: window.location.protocol + '//' + window.location.host + '/apple-pay-notifications'
},
lineItems: [{
label: alabel,
amount: price,
}],
total: { label: alabel, amount: price, type: "final" },
}
Apple reported a problem with my App that they are getting certain issue, While logging into the app. My App is built on Ionic Cordova.
I tried to reproduce the issue on Simulators, Actual Devices and Test Flight. But the app is functional. What do I do? Apple is not approving the builds
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Started an ASO challenge on an older mother-baby app and began by analyzing competitors’ ranked keywords to uncover gaps, relevance, and high-intent phrases using tools like Appvector.
By identifying core keyword roots and filtering by context and search intent, I narrowed down high-value opportunities to expand from 146 to over 1,000 relevant search terms for the next steps in the ASO strategy.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
App Store
App Review
App Store Connect
Dear Apple Developer Support Team,
I hope you are doing well.
We are reaching out to request clarification and guidance regarding the In-App Purchase (IAP) requirements for our upcoming iOS application.
Our app offers paid access to digital video content. Each video has a dynamic price determined by our backend based on multiple factors (such as duration, category, and promotions). Additionally, users are allowed to select and purchase multiple videos at the same time, which results in a combined total price that varies per transaction.
Challenges we face with IAP on iOS
Dynamic pricing:
Apple requires IAP products to have static pricing defined in App Store Connect.
Our video prices change frequently and cannot be represented by fixed IAP product SKUs.
Multiple-item purchases:
iOS does not support a single purchase that includes multiple different IAP products.
Processing many separate IAP transactions in sequence results in a poor user experience and is likely to cause failures.
Product creation limitations:
Since our catalog contains many videos with frequently changing prices, it is not feasible to create individual IAP products per video.
Given these restrictions, we are unclear how to remain compliant while still providing a functional purchase flow for our users.
Question
In this scenario, where:
video prices are dynamic,
users may purchase multiple videos together, and
IAP does not support multi-item purchases or dynamic pricing,
are we allowed to use Stripe or another external payment provider to handle these purchases?
If not, we would appreciate Apple’s guidance on what the recommended and compliant approach would be for apps that must price digital content dynamically and allow bulk purchasing.
We want to ensure full compliance with App Store Review Guidelines and would like confirmation on the correct implementation strategy before proceeding.
Thank you for your time, and we look forward to your clarification.
Kind regards,
Muhammad Adnan
Koderlabs
I'm really sick of Apple and their BS kickbacks they get from github and the other source control outfits restricting what source control packages we can use inside of XCode.
We have used Code Commit with AWS for YEARS! We are not switching but apple's Xcode will not allow us to add it as an account. We used to be able to use it, but Apple took away the GIT account setup so now you have to use one of their kickback outfits.
This is complete BS Apple. Even AWS realized how important Code Commit is and made it available to everyone again and pledged full support going forward.
How about you get off your collective sixes and do the same.
I'd like an explanation on why you took away the one feature that allows us to use what works for us.
Hello,
I'm experiencing an irregular issue with Apple Pay merchant domain verification. As you know, Apple requires domain verification every two months to maintain Apple Pay functionality.
The problem is that while the verification sometimes happens automatically without any issues, other times it fails to complete, even though the required file "apple-developer-merchantid-domain-association.txt" is correctly available on our server.
When automatic verification fails, the Apple Pay service becomes non-functional on our website, forcing us to perform a manual verification to restore the pending service.
Is it normal to encounter such inconsistent automatic verification processes?
What could be causing these intermittent verification failures, whereas manual verification always succeed? suggesting this might not be related to IP address restrictions described on the Apple documentation.
Thank you in advance,
In my case, when I try to block calls on iOS 26, the blocking doesn't occur; the scenarios seem intermittent. If I create two CallDirectory extensions, the first blocks the numbers, but the second doesn't. Interestingly, the extension marks the number as suspicious. There's also a case where, on iOS 26 on an iPhone 16 Pro, the functionality doesn't work at all. I'd like to know if there have been any changes to the use of CallKit in iOS 26, because users of my app on iOS 18 and below report successful blocking.
My Xcode does not show my Recent projects for a while now. I have different projects on my Mac that I open using Xcode and it can't remember the recent ones and never shows it.
Does anyone know how to fix that? I've tried to clean caches, restart the Mac, download the Xcode again...
MacOs: Tahoe 26.1
Xcode: 26.1.1
Topic:
Developer Tools & Services
SubTopic:
Xcode