Overview

Post

Replies

Boosts

Views

Created

Support your app on compatible devices
Apple platforms make it easy to distribute your app to a variety of compatible devices, so it’s important to maximize your app experience on each platform you support. Here are some tips from App Review to help you understand how device compatibility impacts your app’s distribution — and how to make sure your apps shine on every platform they’re on. Understand device compatibility There are many ways an app built for one Apple device can run on other Apple devices: Apps designed for iPhone can run on iPad devices in compatibility mode if there are no dependencies on iPhone device capabilities. Compatible iPhone and iPad apps can run unmodified on Macs with Apple Silicon. Compatible iPhone and iPad apps can run unmodified on Apple Vision Pro. Xcode provides options to configure settings for apps on multiple platforms. You can specify which platforms your app’s target supports in the Supported Destination field. However, it’s important to note: People may still be able to run your app on a device even if you remove it or don't include it as a Supported Destination in Xcode. For example, as long as an app designed for iPhone doesn’t depend on a capability that’s only available on iPhone, it can be downloaded from the App Store onto iPad. Adding or removing iPad as a Supported Destination in Xcode won’t change that app’s availability on iPad. To view examples of cases where it's appropriate to restrict availability, see Restrict device distribution below. Follow compatibility best practices 1. Plan and test for compatibility modes so your app works on every device where it can be downloaded. Do: Use Xcode simulators to verify basic functionality across different device types. Leverage TestFlight with external testers who have access to a wide range of Apple devices. Don't: Don’t submit for review without testing your app’s behavior in compatibility modes. Don’t assume removing a supported destination in Xcode prevents distribution to that device type. 2. Build adaptive interfaces that work across device variations. Do: Build interfaces that respond to different screen sizes and orientations. Adapt features based on available hardware, providing alternatives for a consistent experience. Don't: Don’t design rigid interfaces that assume only one type of device or input method. Don’t let your app crash or become unusable when optional hardware is unavailable. Restrict device distribution Wherever possible, it’s best to make your app available on multiple platforms to increase its reach and provide people with a consistent experience across devices. But there are cases where it does makes sense to restrict an app’s availability. For example: iPhone apps that rely on iPhone-specific hardware won’t function as expected on iPad. Use the UIRequiredDeviceCapabilities key in the information property list file to specify hardware dependencies. Note: Apps should only use the UIRequiredDeviceCapabilities key for genuine hardware dependencies, not to indicate distribution preferences. Navigation- or camera-based apps are not well suited for visionOS. Learn more about managing availability of iPhone and iPad apps on Apple Vision Pro. Apps that rely heavily on touch inputs that can’t be replicated on a keyboard are not well suited for macOS. Learn more about restricting distribution to Apple Silicon devices. Learn more about how to configure multiplatform apps in Xcode. Support If you need more assistance, explore these support options: If your submission has been rejected, reply to the message from App Review in App Store Connect and request clarification. Request an App Review appointment through Meet with Apple. Appointments are available during local business hours on Tuesdays and Thursdays. If you believe your app follows the App Review Guidelines, consider submitting an appeal to the App Review Board.
0
0
3
4m
Extended “Waiting for Review” & No Communication Despite Multiple Contact Attempts
Hello, I would like to formally raise a concern regarding an ongoing lack of communication in the review process. Two of my applications have been in the “Waiting for Review” stage for an unusually extended period. During this time, I have: • Sent multiple support emails • Submitted an expedited review request • Attempted to follow up through official channels Despite these efforts, I have not received a single response or status update. I understand that review timelines can fluctuate depending on workload and complexity. However, prolonged silence without acknowledgment creates uncertainty and directly impacts release planning, user acquisition strategy, and overall operational decisions. This is not a complaint about review duration alone. It is primarily about the absence of communication. Even a brief confirmation or estimated timeline would significantly improve the situation. I respectfully request clarification on the status of these submissions and the reason for the continued “Waiting for Review” state. I sincerely hope this matter can be resolved promptly. Thank you for your time. Best regards, Berkay
0
0
5
18m
Having trouble getting Apple Fitness move ring to be updated without Apple Watch
Some users have switched to wearing smart rings instead of an Apple Watch, but they still want their rings to close throughout the day in Apple Fitness to keep their streaks going. I've noticed that the 3rd party smart ring apps do not affect the progress of the exercise and move rings unless the user puts on their Apple Watch and syncs with there iPhone throughout the day. Is there a way to make the progress rings update throughout the day without having to connect an Apple Watch periodically?
0
0
2
36m
Enrollment Stuck on "Pending" for 3 Days After Payment
I’m looking for some insight regarding the Apple Developer Program enrollment. I completed my payment (649 TL) 3 days ago, and my account status is still showing as "Pending." I have already ensured that my Apple ID name (Ulaş Cem Budak) matches my legal ID perfectly. However, I haven't received any activation email or requests for further documentation yet. Is a 3-day (or longer) wait normal for the initial activation in 2026? Should I continue to wait, or is it better to contact support via phone at this stage? Any advice from those who recently enrolled would be greatly appreciated.
0
0
1
1h
FileManager.replaceItemAt(_:withItemAt:) fails sporadically on ubiquitous items
I’m encountering a strange, sporadic error in FileManager.replaceItemAt(_:withItemAt:) when trying to update files that happen to be stored in cloud containers such as iCloud Drive or Dropbox. Here’s my setup: I have an NSDocument-based app which uses a zip file format (although the error can be reproduced using any kind of file). In my NSDocument.writeToURL: implementation, I do the following: Create a temp folder using FileManager.url(for: .itemReplacementDirectory, in: .userDomainMask, appropriateFor: fileURL, create: true). Copy the original zip file into the temp directory. Update the zip file in the temp directory. Move the updated zip file into place by moving it from the temp directory to the original location using FileManager.replaceItemAt(_:withItemAt:). This all works perfectly - most of the time. However, very occasionally I receive a save error caused by replaceItemAt(_withItemAt:) failing. Saving can work fine for hundreds of times, but then, once in a while, I’ll receive an “operation not permitted” error in replaceItemAt. I have narrowed the issue down and found that it only occurs when the original file is in a cloud container - when FileManager.isUbiquitousItem(at:) returns true for the original fileURL I am trying to replace. (e.g. Because the user has placed the file in iCloud Drive.) Although strangely, the permissions issue seems to be with the temp file rather than with the original (if I try copying or deleting the temp file after this error occurs, I’m not allowed; I am allowed to delete the original though - not that I’d want to of course). Here’s an example of the error thrown by replaceItemAt: Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “test-file.txt” in the folder “Dropbox”." UserInfo={NSFileBackupItemLeftBehindLocationKey=file:///var/folders/mt/0snrr8fx7270rm0b14ll5k500000gn/T/TemporaryItems/NSIRD_TempFolderBug_y3UvzP/test-file.txt, NSFileOriginalItemLocationKey=file:///var/folders/mt/0snrr8fx7270rm0b14ll5k500000gn/T/TemporaryItems/NSIRD_TempFolderBug_y3UvzP/test-file.txt, NSURL=file:///Users/username/Library/CloudStorage/Dropbox/test-file.txt, NSFileNewItemLocationKey=file:///Users/username/Library/CloudStorage/Dropbox/test-file.txt, NSUnderlyingError=0xb1e22ff90 {Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “test-file.txt” in the folder “NSIRD_TempFolderBug_y3UvzP”." UserInfo={NSURL=file:///var/folders/mt/0snrr8fx7270rm0b14ll5k500000gn/T/TemporaryItems/NSIRD_TempFolderBug_y3UvzP/test-file.txt, NSFilePath=/var/folders/mt/0snrr8fx7270rm0b14ll5k500000gn/T/TemporaryItems/NSIRD_TempFolderBug_y3UvzP/test-file.txt, NSUnderlyingError=0xb1e22ffc0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}}} And here’s some very simple sample code that reproduces the issue in a test app: // Ask user to choose this via a save panel. var savingURL: URL? { didSet { setUpSpamSave() } } var spamSaveTimer: Timer? // Set up a timer to save the file every 0.2 seconds so that we can see the sporadic save problem quickly. func setUpSpamSave() { spamSaveTimer?.invalidate() let timer = Timer(fire: Date(), interval: 0.2, repeats: true) { [weak self] _ in self?.spamSave() } spamSaveTimer = timer RunLoop.main.add(timer, forMode: .default) } func spamSave() { guard let savingURL else { return } let fileManager = FileManager.default // Create a new file in a temp folder. guard let replacementDirURL = try? fileManager.url(for: .itemReplacementDirectory, in: .userDomainMask, appropriateFor: savingURL, create: true) else { return } let tempURL = replacementDirURL.appendingPathComponent(savingURL.lastPathComponent) guard (try? "Dummy text".write(to: tempURL, atomically: false, encoding: .utf8)) != nil else { return } do { // Use replaceItemAt to safely move the new file into place. _ = try fileManager.replaceItemAt(savingURL, withItemAt: tempURL) print("save succeeded!") try? fileManager.removeItem(at: replacementDirURL) // Clean up. } catch { print("save failed with error: \(error)") // Note: if we try to remove replaceDirURL here or do anything with tempURL we will be refused permission. NSAlert(error: error).runModal() } } If you run this code and set savingURL to a location in a non-cloud container such as your ~/Documents directory, it will run forever, resaving the file over and over again without any problems. But if you run the code and set savingURL to a location in a cloud container, such as in an iCloud Drive folder, it will work fine for a while, but after a few minutes - after maybe 100 saves, maybe 500 - it will throw a permissions error in replaceItemAt. (Note that my real app has all the save code wrapped in file coordination via NSDocument methods, so I don’t believe file coordination to be the problem.) What am I doing wrong here? How do I avoid this error? Thanks in advance for any suggestions.
0
0
18
1h
App Review Rejection for Common Feature
When creating the marketing/promotional material for my app, I reviewed many popular apps to see what was permitted and accepted to the app store. I saw many apps like headlines and image content of text saying "Quit Porn" or similar. Upon submitting my app for review, it was later rejected and one of the reasons was having titles and texts in the marketing saying "Quit Porn". Why is this? (The app is an app to quit porn addiction)
1
0
17
2h
Apple Developer Program Enrollment
I paid the £79 enrollment fee on 17th Feb and received both the receipt and payment confirmation email. However, there is no visible indication in my account that the enrollment is under review or in progress — the portal does not show any status update. Because of this lack of status information, I mistakenly initiated a second enrollment, assuming the first one had not gone through. I later withdrew the second application and immediately received a confirmation email for that withdrawal. However, I never received any confirmation that my original enrollment is being processed — only the payment receipt. This is currently blocking my app release, as I’m ready to publish and have already launched on the Play Store. Has anyone found a reliable way to get clarity on enrollment status or escalate this? Any guidance would be greatly appreciated.
0
0
11
3h
Wrong value for storekit custom purchase link allowed regions entitlement
Greetings fellow devs, After accepting the Alternative Terms Addendum for Apps in the EU and adding the Storekit External Purchases or Offers capability via App Store Connect in our app identifier, the entitlement showing up in xcode is com.apple.developer.storekit.custom-purchase-link.allowed-regions and has the value 'jp'. How can we change the value for that entitlement to 'gr'? We tried changing it in xcode, but we get the error <Provisioning profile "iOS Team Provisioning Profile: [app identifier]" doesn't match the entitlements file's value for the com.apple.developer.storekit.custom-purchase-link.allowed-regions entitlement.>. In Certificates, Identifiers and Profiles in the developer account there is no way to configure that capability. We sent a request to support and they only gave a link to documentation and to the forum here. We have a completed every business agreement requested and we have chosen Greece as the organisation region and the app's availability region wherever possible. We haven't found anywhere that Japan would be chosen to explain the entitlement given. So where can this entitlement about allowed regions be configured? Xcode version is 16.4 and iOS minimum deployments is 18
0
0
11
3h
No Response to Support or Expedited Review Requests – Apps Still Waiting
Hello, I would like to raise a concern regarding the review status of my apps. Both of my submissions have been in the “Waiting for Review” stage for an extended period of time. Additionally, I have sent multiple support emails and even submitted an expedited review request. Unfortunately, I have not received a single response to any of them. As a long-time Apple developer and someone who genuinely values the Apple ecosystem, I find this prolonged silence concerning. Extended waiting periods without any feedback create uncertainty and negatively impact the overall developer experience. I fully understand that review times can vary. However, the lack of communication is the primary issue here. Even a brief status update would be greatly appreciated. I sincerely hope the review process moves forward soon and that we can resolve the current “Waiting for Review” situation as quickly as possible. Thank you for your time and consideration. Best regards, Berkay
0
0
10
3h
What is the state of EventKit going forward?
I'm building an app that heavily relies on EKEventStore for calendar and reminder integration. The API is simple - and limited. Change notifications amount to "something changed, you'd better refetch everything you care about." There's no way to know whether the calendar was updated while your app was closed or backgrounded. EKEvents and EKReminders don't trigger SwiftUI view updates, so you end up shunting them into your own observable state and keeping the two in sync. My app is fairly complex rendering-wise, and I lament being locked into treating EKEventStore as a first-class citizen of my view and data layer. It makes everything clunkier, essentially shuts the door on modern features like undo/redo, and makes integrating with other calendar providers that much harder. I'm exploring a custom SwiftData DataStore ↔ EKEventStore sync engine, but this is no easy task. There are still many unknowns I'd need to spike out before I can even attempt a proper implementation. Still, I'm curious - is this something being actively worked on behind the scenes? Will we see a more modern, observable, SwiftUI-native EventKit integration in the future?
0
0
16
4h
Account migration from Individual to Organization pending for 3+ weeks – App updates blocked
Hello, I’m currently experiencing a major issue while migrating my Apple Developer account from an Individual account to an Organization account. The migration process has been ongoing for more than 3 weeks, and during this transition: My app release is delayed. I am unable to submit updates. I also cannot use the old (individual) account normally because it appears to be locked in this transition state. This situation is critically affecting our product launch timeline. We already provided all requested documentation, including D-U-N-S verification and company details. However, the account status remains in transition, and no clear timeline has been provided. My main concerns: Is it normal for this migration to take more than 3 weeks? Is there any way to temporarily regain publishing capability while the migration is processed? Is there a specific escalation channel for cases where the transition blocks production releases? Case IDs: Case ID: 102820894024 Case ID: 2000010840072 We have an upcoming app launch depending on this migration, so any guidance would be greatly appreciated. Thank you in advance.
0
0
6
4h
First attempt at a PKPass
This is my first attempt at creating a Wallet pass, actually a generic store card. When I see it with Pass Viewer on macOS, I get 1 look, when I see it with the iPhone simulator or iPhone proper, I get a different view. Neither is what I was hoping for, a simple vertical layout of an address. Could someone steer me in the correct direction? My json: "formatVersion": 1, "passTypeIdentifier": "pass.org.danleys.4KSBarcode", "serialNumber": "__SERIAL__", "teamIdentifier": "----", "organizationName": "4 K.I.D.S. Sake", "description": "4KSBarcode", "logoText": "4 K.I.D.S. Sake", "foregroundColor": "rgb(255, 255, 255)", "backgroundColor": "rgb(255,0,0)", "storeCard" : { "primaryFields" : [ { "key" : "ClientID", "label" : "", "value" : "" } ], "auxiliaryFields": [ { "key": "street", "label": "Address", "value": "339 Remington Blvd" }, { "key": "city", "label": "", "value": "Bolingbrook, IL 60440" } ] }, "barcode": { "format": "PKBarcodeFormatCode128", "message": "__SERIAL__", "altText": "__SERIAL__", "messageEncoding": "iso-8859-1" } } On macOS: On iOS: Thank you. Ed
Topic: Design SubTopic: General Tags:
0
0
10
5h
Apple Developer registration for customer company
We have tried numerous times to register a developer account for a company that is one of our clients. Each time, the application has been denied for a different reason. The last time, they said that the website ‘does not load,’ which is untrue. The website belongs to a government entity and is fully accessible from our country and from around the world, as verified by Google Analytics. We do not know what is happening, but we would like to know if anyone has experienced something similar and how they resolved it. Thank you. Translated with DeepL.com (free version)
0
0
12
5h
Long delay of app update since Feb 10
I am looking for some guidance regarding a significant delay in the review process for my app update. Platform: iOS Submission Date: February 10, 2026 Current Status: Waiting for Review It has now been 16 days, and the status has not progressed to "In Review." I have checked my App Store Connect "App Review" section, but there are no outstanding requests for information or messages from the review team. I have already attempted to contact the App Review team via the official "Contact Us" form but have only received generic automated responses. Is anyone else experiencing similar delays this month? Are there currently known backlogs, or should I consider canceling this release and re-submitting? Thank you for any insights.
1
0
19
6h
Apps Stuck in “Waiting for Review” – No Visible Issues in App Store Connect
Hello, I am writing to ask for assistance regarding two of my apps that have been stuck in “Waiting for Review” for an extended period. At the moment: App ID 6497716649 — Waiting for Review since Feb, 19 at 11:45 AM App ID 6743224713 — Waiting for Review since Feb, 15 at 10:26 PM There are no warnings, Resolution Center messages, or visible issues in App Store Connect. All Agreements, Tax, and Banking information are active and up to date. The builds were uploaded successfully, and no further action appears to be required on my side. Could you please help confirm: Whether there is any hidden blocker or account-related issue? Or if this delay is currently due to review queue processing times? If additional details are needed (bundle IDs, app category, sign-in requirements, encryption/export compliance, etc.), I will be happy to provide them immediately. Thank you very much for your time and support. Best regards,
0
0
13
6h
App Review Guideline 4.3: How is ‘Uniqueness’ evaluated for Dating Apps?
Hello, I have a policy-related question regarding App Store Review for dating apps. As a development agency, we build apps based on client requirements. Recently, we received feedback from App Review stating that the dating app category is saturated and that the app should demonstrate unique features to avoid being considered spam or a duplicate of existing apps. In such cases, what is the recommended approach for developers working on client projects? If a client requests a standard dating app with common features (profiles, matching, chat, etc.), is it likely to be rejected under the spam/duplicate guideline (4.3)? Should developers proactively advise clients to include clearly differentiated features before submission, even if the app is functionally complete and complies with technical guidelines? Any clarification on how App Review evaluates dating apps for uniqueness under Guideline 4.3 would be very helpful. Thank you.
0
0
7
6h