Navigate the App Store landscape. Share strategies for app submission, distribution, marketing, and user acquisition. Discuss best practices for getting your app discovered and downloaded.

All subtopics
Posts under App Store Distribution & Marketing topic

Post

Replies

Boosts

Views

Activity

Unable to submit my macOS window‑manager app
Hello Apple Developer Support, I’m writing with a mix of enthusiasm and frustration after more than six months of full‑time development on my macOS window‑manager TilesWM (a feature‑rich competitor to Magnet, Divvy, BetterSnapTool, etc.). I have completed the Application, the product page, a knowledge-base with 90+ entries, an in-app onboarding flow, preparing the feedback-hub for submissions, all required marketing assets and finally; signing up for the $99 Developer Program... I am now blocked at App Store Connect validation. What I’m trying to submit App name: TilesWM Bundle ID: dev.steinhorst.tileswm Core functionality: Detect window movement & resize windows, optional global hot‑keys, persistent user settings are stored in a SQLite-DB located at: ~/Library/Application Support/<bundle‑identifier> Privacy: No analytics, no data collection, no runtime downloads. Tested on: macOS 15.6.1 (Apple Silicon M1) & macOS 26.0.1 (M3‑Max). The app works exactly like the existing mainstream window managers: it runs non‑sandboxed and requests Accessibility (AX) permissions on demand to control other windows dimensions and positioning. Validation errors Validation failed Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on macOS. Specifically, key 'com.apple.security.accessibility' in 'dev.steinhorst.tileswm.pkg/Payload/TilesWM.app/Contents/MacOS/TilesWM' is not supported. (ID: 13b13813-edd6-4be6-b392-9db5bddd39a0) Validation failed App sandbox not enabled. The following executables must include the "com.apple.security.app-sandbox" entitlement with a Boolean value of true in the entitlements property list: [( "dev.steinhorst.tileswm.pkg/Payload/TilesWM.app/Contents/MacOS/TilesWM" )] Refer to App Sandbox page at https://developer.apple.com/documentation/security/app_sandbox for more information on sandboxing your app. (ID: 28aa17e8-e7b2-4f3f-8def-15922c68ec8a) . In short, App Store Connect refuses to accept an app that uses the Accessibility API and is not sandboxed. Yet the same capability is openly used by Magnet, Divvy, BetterSnapTool and other competitors that are currently on the Mac App Store. Why this matters to me I am a full‑stack engineer with 15+ years of enterprise experience; side projects keep my skills sharp and give back to the macOS community. This would be my entry to the software-side of MacOS, the next product-ideas are scribbled already. Over the last six months I have designed, coded, documented, created marketing assets, purchased a domain, paid for hosting, and funded the Apple Developer Program, all in good faith that the app could be submitted. What I need help with Clarification – Is the com.apple.security.accessibility entitlement truly unsupported for macOS distribution, how can Magnet and other competitors exist in that case, shouldn't they be able to receive competition? Guidance – If sandboxing is mandatory (even though the competition doesn't use it either, looking at their entitlements with codesign -d --entitlements :-<path>). What is the recommended way to retain full window‑management functionality while remaining within Apple’s policies, I tried sandboxing it, but the only app I was able to "resize" was TilesWM (my App) itself. Additional resources A "basic"-demo video, feature comparisons, FAQ & knowledge-base as well as the feedback hub: https://www.tileswm.app I appreciate any insight you can provide. My goal is to bring a polished, useful tool to the Mac App Store while fully respecting Apple’s security requirements, without having to discard months of work or resort to an external distribution model. Thank you for your time and assistance. Best regards, Denis Steinhorst Full‑Stack Engineer – macOS enthusiast Bundle ID: dev.steinhorst.tileswm
1
1
52
1h
Apps Stuck in "In Review" Status - No Response from Apple
Hi all, I have two apps stuck in "In Review" status with no response from Apple: Future Kid App Apple ID: 6754333416 In Review since: October 15th, resubmitted on October 21st, still in review as of October 22nd, 12:12 AM. Trade AI Apple ID: 6753766459 In Review since: October 27th, 9:31 PM, still no update. Team ID: CQNXC8J5R4 Both apps have been stuck for a long time with no feedback. Has anyone faced similar delays or know how to resolve this? Any help would be appreciated! Thanks!
0
0
12
1h
External Link Account Application & App Review
Hi, I am developing a Reader App, and am about to submit it for review, and complete the External Link Account Application. The application form asks a series of questions & my app ticks all the boxes and the final question is whether I have submitted the app for review. No answer means I don't get to submit. The instructions for External Link Account says, I should first get approval and then add this entitlement and code it. However, I can't get it till I submit the app for review. Does this mean, I should first submit the app without the External Link Account feature? However, this will not allow the reviewer to fully test the app, as my app is a reader app and uses my website for account set-up which allows for digital content to be seen in the app. Perhaps I should anticipate approval and build in the External Link Account entitelement in the version that I submit for review. Can someone clarify?
3
0
121
3h
Appeal Submitted But Not in System - Yet App Being Reviewed?
I'm experiencing a confusing situation and need guidance. SITUATION: Oct 12-15: Rejected 3 times with identical automated message (4.3a) Oct 15: Submitted appeal (saw "Successfully submitted") NO confirmation email, NO case number in "My Requests" Oct 23: Status inquiry → no response HOWEVER: Oct 18 & 22: US-based IP addresses systematically tested my app (confirmed in GA4) Clear reviewer activity pattern in analytics QUESTION: How can my app be under review if the appeal isn't in the system? Possible explanations: Appeal WAS received but UI bug prevents me from seeing it? Automatic re-review process separate from appeals? Submission failed but triggered something else? What should I do: Should I resubmit the appeal? If the appeal was properly received and is under review, should I wait? Is this a known system issue and normal behavior? Any insights appreciated. I don't want to disrupt an active review by resubmitting, but I have no record of my submission at all. My App id is 6753706909 Thanks for any advice.
1
0
150
3h
Unreasonable Rejection
I've got rejected 3 times because of this: Guideline 1.2 - Safety - User-Generated Content We found in our review that your app includes user-generated content but does not have all the required precautions. Apps with user-generated content must take specific steps to moderate content and prevent abusive behavior. To resolve this issue, please revise your app to implement the following precautions: A mechanism for users to block abusive users My app already includes a full blocking mechanism. Users can block others at any time — once blocked, both users are restricted from viewing each other’s content, profiles, and interactions within the app. Additionally, administrators (marked with a verified checkmark) cannot be blocked, as they are responsible for moderating user-generated content and maintaining community safety. This is an intentional design choice to ensure compliance with moderation and safety requirements. Any ideas if I'm doing anything wrong?
1
0
21
3h
No response to appeal after one week
Hello, I submitted a detailed appeal for our app on October 22nd but haven’t received any response or follow-up yet. Could someone from the App Review team please confirm whether the appeal is being evaluated or advise on typical response times? The delay is significantly impacting our operations. Thank you for your help - any update would be greatly appreciated.
1
0
44
3h
Urgent: new build for TestFlight could not install
When I create new build for TestFlight, it could not install from Test Flight, and show any error/warning/tip, from device's console, I got this error: -[IXSDataPromise cancelForReason:client:error:]: <IXSPlaceholder(0xc1acd7480) Name:App Placeholder: XXXXXXX(com.YYYYYY) Creator:App Store UUID:8AB2A59C-C367-42E1-990A-ACAFD8F9F4B9 Location:[system-defined]> : canceled by client 17 for reason Error Domain=IXUserPresentableErrorDomain Code=1 "This app could not be installed at this time." UserInfo={NSUnderlyingError=0xc1b1751a0 {Error Domain=MIInstallerErrorDomain Code=99 "WatchKit 2.0 app has disallowed Info.plist key: ISIconPlatform" UserInfo={LegacyErrorString=WatchKitAppIllegalInfoPlistKey, FunctionName=-[MIExecutableBundle hasOnlyAllowedWatchKitAppInfoPlistKeysForWatchKitVersion:error:], SourceFileLine=2715, NSLocalizedDescription=WatchKit 2.0 app has disallowed Info.plist key: ISIconPlatform}}, NSLocalizedDescription=This app could not be installed at this time., NSLocalizedRecoverySuggestion=WatchKit 2.0 app has disallowed Info.plist key: ISIconPlatform, NSLocalizedFailureReason=Could not install at this time.} After I remove watch app in this app, It could install successful, but this watch app still needed. I count not find anything about [IconPlatform] in my code, and could not find it in the info.plist files in the .ipa file. I only do some tiny code change for my app, and it could install in yesterday, but could not install for today. So how to resolve this issue? I need submit my new build for a urgent company events.
3
2
127
4h
App Store Connect “Missing Metadata” Nightmare: The Solution I Spent HOURS Searching For
I just spent way too many hours trying to figure out why my in-app subscription was stuck in “Missing Metadata” in App Store Connect, even though I had filled out everything. If you're here because you're in the same boat, this is the solution Apple doesn't make obvious. The Problem I created an auto-renewable subscription (Kanabloom Premium) and filled in all required fields. The subscription was still marked "Missing Metadata", preventing me from submitting it. The “In-App Purchases” section wasn’t showing up in my App Store version submission, which meant I couldn't even attach the subscription to my app version. I triple-checked the metadata, pricing, tax settings, review screenshot, and even resaved everything, but nothing worked. What I Tried (Before Finding the Fix) Checked that pricing was set up correctly for all countries. Uploaded the required review screenshot for the subscription. Made sure the subscription group existed and was linked properly. Refreshed, logged out/in, and tried different browsers. Read every Stack Overflow, Reddit, and Apple Developer Forum post I could find. Even tried creating a dummy subscription to see if that would reset the system. The Solution: Localizing the Subscription Group Here’s the stupidly hidden requirement that finally fixed it: ✅ Your subscription group itself (not just the subscription) needs a localized display name. App Store Connect requires each subscription group to have at least one localized display name for it to be valid. If this is missing, all subscriptions inside that group will stay stuck in “Missing Metadata” no matter how complete they are. How to Fix It: Go to App Store Connect > Subscriptions > Subscription Group Click on your subscription group (not the individual subscription). Check if there's a localization added under "Group Reference Name." If missing, add a localization (e.g., English) and save. Refresh the page and boom – the subscription will finally be "Ready to Submit." Conclusion Apple really needs to make this requirement clearer. Now that I’ve finally figured it out, hopefully, this post helps someone else avoid losing hours of their life to the same issue. If you're still stuck, double-check that: You’ve set pricing and enabled "Cleared for Sale." You’ve uploaded a review screenshot for the subscription. You’ve signed all App Store agreements and banking/tax documents. Your app's In-App Purchase capability is enabled in Xcode. Let me know if this helped you! I wish I had found a post like this sooner. 😂 This should make for a useful and searchable post in case other devs run into the same headache. Let me know if you want any tweaks before posting! 🚀
2
3
308
4h
App Transfer auth/usermigrationinfo access_denied
I'm facing the following issue when I try to use the API https://appleid.apple.com/auth/usermigrationinfo I am currently preparing for app migration and planning to use auth/usermigrationinfo to generate a transfer identifier. My request parameters are as follows. sub=( team-scoped user identifier) target=(Team ID Target 10 letters) client_id=Bundle id client_secret= Secret generated with private key However, after calling the API, I received the following error response. { "error": "access_denied" } Does this API call have a time limit, and must it be called only after the app migration is completed? Thanks & regards
0
0
19
6h
Can you only launch an app to specific state in the U.S.?
Can you confirm that if you launch an app in the U.S. (in the iOS store) that is you cannot select a specific state (i.e. Rhode Island, North Carolina etc.) to roll out your app? In other words when you launch your app in the U.S. it has to be for the entire country right? Can someone please confirm that this is the case and has always been the case in any app store (i.e. Google Play and IOS)? Thanks. - Erik
1
0
64
10h
The Apple Developer Program License Agreement Update
When I try to publish a new version of our app I am met by a popup "Agreement Update" "The Apple Developer Program License Agreement has been updated and needs to be reviewed. In order to update your existing apps and submit new apps, the Account Holder must review and accept the updated agreement by signing in to their account on the Apple Developer website." I am not the account holder. But im confident he agreed to this around the 14-18 of October. He is not prompted with anything when logging in and going to agreements. Any suggestions?
0
1
67
22h
Expedited Review Request: Critical Bug Fix for App ID: 6482296993
Dear App Review Team, We are respectfully requesting an expedited review for our app,Tonomy ID, (Submission ID : 0635f631-10d4-49fb-a9d6-bc3dab197624 , Version: 2.2.5). The app has been in the review state since [Last Thursday's Date, e.g., October 23th]. We have a scheduled, public launch set for today, [Today's Date, e.g., October 28th]. The release of this version is critical for a coordinated go-live announcement that has been communicated to our users. A delay in approval would directly impact the success of this launch and our business commitments. We have ensured the app meets all App Store Review Guidelines and are ready to immediately address any questions you may have. Thank you for your time and consideration. We greatly appreciate your support in helping us meet this critical deadline. Thank you,
1
0
65
1d
Publishing similar apps
Hi everyone, I’m looking for clarification regarding App Store Review Guideline 4.3 (Spam) and how it applies to unlisted apps. The guideline mentions that “Apps that are duplicates of others, or that spam the App Store with similar content, may be removed from the App Store or from the Apple Developer Program.” In my case, I’m considering distributing several unlisted apps that share a similar codebase but are customized for different clients (for example, with distinct branding and configurations). These apps would not be searchable or publicly listed on the App Store — they would only be accessible through direct links. Could anyone confirm whether Guideline 4.3 still applies to unlisted apps in the same way it does to publicly listed apps? If not, what is the recommended approach for distributing such client-specific builds while remaining compliant with Apple’s policies? Thanks in advance for any clarification.
1
0
140
1d
iOS 26 - SKOverlay Not Opening Custom Product Page instead opening default product page
Issue: SKOverlay configured with a Custom Product Page identifier opens the default product page instead of the custom one on iOS 26. This works correctly on iOS 18 and earlier. Details: Custom Product Page is published and valid in App Store Connect customProductPageIdentifier is correctly set on SKOverlayAppConfiguration Same code works fine on iOS 18 and lower Code: - (void)presentSKOverlayInWindowScene:(UIWindowScene *)scene { SKOverlayAppConfiguration *config = [[SKOverlayAppConfiguration alloc] initWithAppIdentifier:@"my_app_id" position:SKOverlayPositionBottom]; config.userDismissible = YES; if (@available(iOS 15.0, *)) { [config setCustomProductPageIdentifier:@"my_apps_custom_product_page_id"]; } SKOverlay *overlay = [[SKOverlay alloc] initWithConfiguration:config]; overlay.delegate = self; [overlay presentInScene:scene]; } Are there any known iOS 26 changes affecting Custom Product Pages with SKOverlay, or is additional configuration now required. Thank you
0
0
31
1d
The App Store Connect team refused to communicate and Termination my account.
I submitted a puzzle app called “Anime Jigsaw” to App Store Connect. The App Store Connect team initially rejected the app due to minor errors. I then fixed the errors and resubmitted it, but this time they said it violated “Guideline 4.1 - Design - Copycats” and that I didn't write the code. I responded that I wrote the code and could prove it. They rejected it again, citing "Guideline 4.1 - Design - Copycats,“ and I explained that my app was different from other puzzle apps because you solve puzzles while listening to Lo-Fi music. But this time, they issued a ”Pending Termination Notice“ and started saying ”Evidence of Dishonest or Fraudulent Activity." I am definitely not a scammer. I am trying to communicate with the App Store Connect team, but they are trying to close my account and label it as “Fraudulent Activity.” Why are you doing this? How can I resolve this? My account will be closed in 30 days, and I can't communicate with anyone. Team ID: 93LGGK4LG4 Apple ID: 6751961511 Please Apple Team Help Me.
5
0
231
1d
App stuck in 'Waiting for Review' for 2 weeks
I have two apps on my account. Both apps are older than 3-4 months, and I have published a few updates as well. However, since last week, I've tried to update both apps, and they've been showing "Waiting for Review." Since this was happening for both apps, I resubmitted them and requested an expedited review. Now only one has been accepted for expedited review and its status changed to "In Review," but it's still not ready for sale. I've been trying to update both of my apps for two weeks now, but there's been no progress from "Waiting for Review." Has anybody else faced this issue? Can anyone help?
2
1
317
1d
Apps won't upload after XCode update.
Hello. I work on Windows with Visual Studio 2026 Insider , .Net 10 rc1, MAUI , wifi connected to Mac Mini , XCode 16 and upload to App Store to the public. This was all working fine. Yesterday Apple forced me to update XCode to 26.0.1. Now I cannot publish to the Store like I used to. I do not get any errors , instead I get "Publishing project 'Referee' completed." , but the app never shows up in App Store Connect like it usually does. I tried this many times with two different apps that were fine last week. After the XCode update, do I need to reconnect something to somewhere? . . (I shortened paths here for character limit) Validating Mac operating system version compatibility... Checking Xcode version compatibility... Validating Xcode license state... Verifying installed Xcode tools... Initializing Build agent... Checking Build 26.0.10970-net10-rc.2 installation... Starting Build 26.0.10970-net10-rc.2 in port 59237... Agent Build 26.0.10970-net10-rc.2 is running Build 26.0.10970-net10-rc.2 started successfully Checking installed iOS runtimes... Checking for compatible simulators... Performing server validations against 'Ray’s Mac mini'... Connection to 'Ray’s Mac mini' completed successfully Build properties for C:\TCR\TCR Referee\Referee.csproj: VisualStudioProcessId: 17564, SolutionPath: C:\TCR\TCR MAUI Mar 24.sln, SolutionName: TCR MAUI Mar 24, RunConfiguration: Default, ArchiveOnBuild: False, ArchivePath: , IsAppDistribution: False, DeviceSpecificBuild: false, TargetiOSDevice: , _iOSRuntimeIdentifier: ios-arm64, KeepLocalOutputUpToDate: False, MessagingVersion: 26.0.10970-net10-rc.2, _DotNetRootRemoteDirectory: /Users/Library/Caches/maui/PairToMac/SDKs/dotnet/, LocalBasePath: C:\Users\maui\iOS\PairToMac, BasePath: /Users/raybrennan/Library/Caches/maui/PairToMac, LogsPath: /Users/Library/Logs, DotNetRuntimePath: /Users/maui/PairToMac/Runtimes/dotnet/dotnet, ServerSshPort: 22, ServerTcpPort: 59237, ServerUser: RB, ContinueOnDisconnected: False, ServerAddress: 10.101.101.101 Archiving App Bundle 'Referee'... Build properties for C:\TCR\TCR Referee\Referee.csproj: VisualStudioProcessId: 17564, SolutionPath: C:\TCR\TCR MAUI Mar 24.sln, SolutionName: TCR MAUI Mar 24, RunConfiguration: Default, ArchiveOnBuild: False, ArchivePath: , IsAppDistribution: False, DeviceSpecificBuild: false, TargetiOSDevice: , _iOSRuntimeIdentifier: ios-arm64, KeepLocalOutputUpToDate: False, MessagingVersion: 26.0.10970-net10-rc.2, _DotNetRootRemoteDirectory: /Users/raybrennan/Library/Caches/maui/PairToMac/SDKs/dotnet/, LocalBasePath: C:\Users\mrray\AppData\Local\maui\iOS\PairToMac, BasePath: /Users/raybrennan/Library/Caches/maui/PairToMac, LogsPath: /Users/raybrennan/Library/Logs, DotNetRuntimePath: /Users/raybrennan/Library/Caches/maui/PairToMac/Runtimes/dotnet/dotnet, ServerSshPort: 22, ServerTcpPort: 59237, ServerUser: Ray Brennan, ContinueOnDisconnected: False, ServerAddress: 10.101.101.101 App archive 'Referee' completed successfully. Begining distribution, 23/10/2025 15:36:09 Channel: App Store App Bundle Id: com.theclubreferee.referee, Version: 0.3 Publishing to 'C:\Users\mrray\AppData\Local\maui\iOS\Archives\2025-10-23\Referee 10-23-25 3.33 PM.xcarchive\Published\Referee0.3.ipa' Build properties for C:\TCR\TCR Referee\Referee.csproj: VisualStudioProcessId: 17564, SolutionPath: C:\TCR\TCR MAUI Mar 24.sln, SolutionName: TCR MAUI Mar 24, RunConfiguration: Default, ArchiveOnBuild: False, ArchivePath: , IsAppDistribution: False, DeviceSpecificBuild: false, TargetiOSDevice: , _iOSRuntimeIdentifier: ios-arm64, KeepLocalOutputUpToDate: False, MessagingVersion: 26.0.10970-net10-rc.2, _DotNetRootRemoteDirectory: /Users/raybrennan/Library/Caches/maui/PairToMac/SDKs/dotnet/, LocalBasePath: C:\Users\mrray\AppData\Local\maui\iOS\PairToMac, BasePath: /Users/raybrennan/Library/Caches/maui/PairToMac, LogsPath: /Users/raybrennan/Library/Logs, DotNetRuntimePath: /Users/raybrennan/Library/Caches/maui/PairToMac/Runtimes/dotnet/dotnet, ServerSshPort: 22, ServerTcpPort: 59237, ServerUser: Ray Brennan, ContinueOnDisconnected: False, ServerAddress: 10.101.101.101 Build properties for C:\TCR\TCR Referee\Referee.csproj: VisualStudioProcessId: 17564, SolutionPath: C:\TCR\TCR MAUI Mar 24.sln, SolutionName: TCR MAUI Mar 24, RunConfiguration: Default, ArchiveOnBuild: False, ArchivePath: , IsAppDistribution: False, DeviceSpecificBuild: false, TargetiOSDevice: , _iOSRuntimeIdentifier: ios-arm64, KeepLocalOutputUpToDate: False, MessagingVersion: 26.0.10970-net10-rc.2, _DotNetRootRemoteDirectory: /Users/raybrennan/Library/Caches/maui/PairToMac/SDKs/dotnet/, LocalBasePath: C:\Users\mrray\AppData\Local\maui\iOS\PairToMac, BasePath: /Users/raybrennan/Library/Caches/maui/PairToMac, LogsPath: /Users/raybrennan/Library/Logs, DotNetRuntimePath: /Users/raybrennan/Library/Caches/maui/PairToMac/Runtimes/dotnet/dotnet, ServerSshPort: 22, ServerTcpPort: 59237, ServerUser: Ray Brennan, ContinueOnDisconnected: False, ServerAddress: 10.101.101.101 Validating bundle... Build properties for C:\TCR.csproj: VisualStudioProcessId: 17564, SolutionPath: C:\TCR.sln, SolutionName: TCR , RunConfiguration: Default, ArchiveOnBuild: False, ArchivePath: , IsAppDistribution: False, DeviceSpecificBuild: false, TargetiOSDevice: , _iOSRuntimeIdentifier: ios-arm64, KeepLocalOutputUpToDate: False, MessagingVersion: 26.0.10970-net10-rc.2, _DotNetRootRemoteDirectory: /Users/raybrennan/Library/Caches/maui/PairToMac/SDKs/dotnet/, LocalBasePath: C:\Users\maui\iOS\PairToMac, BasePath: /Users//maui/PairToMac, LogsPath: /Users/Logs, DotNetRuntimePath: /Users/maui/PairToMac/Runtimes/dotnet/dotnet, ServerSshPort: 22, ServerTcpPort: 59237, ServerUser: Ray Brennan, ContinueOnDisconnected: False, ServerAddress: 10.101.101.101 Uploading 'C:\Users\maui\iOS\Archives\2025-10-23\Referee 10-23-25 3.33 PM.xcarchive\Published\Referee0.3.ipa' Build properties for C:\TCR.csproj: VisualStudioProcessId: 17564, SolutionPath: C:\TCR.sln, SolutionName: TCR, RunConfiguration: Default, ArchiveOnBuild: False, ArchivePath: , IsAppDistribution: False, DeviceSpecificBuild: false, TargetiOSDevice: , _iOSRuntimeIdentifier: ios-arm64, KeepLocalOutputUpToDate: False, MessagingVersion: 26.0.10970-net10-rc.2, _DotNetRootRemoteDirectory: /Users/maui/PairToMac/SDKs/dotnet/, LocalBasePath: C:\Users\iOS\PairToMac, BasePath: /Users/raybrennan/Library/Caches/maui/PairToMac, LogsPath: /Users/raybrennan/Library/Logs, DotNetRuntimePath: /Users/maui/PairToMac/Runtimes/dotnet/dotnet, ServerSshPort: 22, ServerTcpPort: 59237, ServerUser: Ray Brennan, ContinueOnDisconnected: False, ServerAddress: 10.101.101.101 Publishing project 'Referee' completed.
2
0
59
1d