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

ITMS-90338: Non-public API usage-_cJSON_Delete
Hi, I created a new app for customers, test on local was all ok, but when submit to App Store I received a notification mail: ITMS-90338: Non-public API usage - The app references non-public symbols in Caiseyu: _cJSON_Delete, _cJSON_GetArrayItem, _cJSON_GetArraySize, _cJSON_Parse. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information. I searched the internet whole day, can't find any information about the _cJSON_XX APIs are the Non-public API. Can you help me.
1
0
12
8m
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!
2
0
55
19m
privacy and collect data of user
I'm developing an application for a client. This app is intended to be sold with a subscription. My client wants that at the time of registration, the user's data (name, date of birth, address, etc.) be sent to a server to be saved in a database for commercial purposes. What is Apple's policy knowing that the user will have the ability to give their consent
1
0
60
1h
Reviewer cannot connect to server of the IOS app.
Hi we tried submitting our app , but the reviewer keeps rejecting the app multiple times stating that "your app was still loading indefinitely after we had tapped on the “LOGIN” button" after this we have inspected on our backend, we found that there were no request on our server. My testers didn't run into errors when testing our app with Testflight. Below is the URL of my server https://mobile.shcilservices.net/Mobile_1/Hello.html It should give response as : "Hello World !" I have been rejected multiple times,I wonder if anyone has same experience and the way to resolve it. Thank you.
2
0
407
1h
Guideline 3.1.1 - Business - Payments - In-App Purchase
I have been spending countless amounts of time making sure my application abides by the rules laid out by Apple App Guidelines. Most recently I got this rejection from App Review: _**Guideline 3.1.1 - Business - Payments - In-App Purchase ** The app includes an account registration feature for businesses and organizations, which is considered access to external mechanisms for purchases or subscriptions to be used in the app. **Next Steps ** Remove the account registration features for business and organizations._ After asking for the review to clarify what they mean they said: _"Regarding guideline 3.1.1, users were still able to create an entirely independent business account, when they create a new account without the invite code. To resolve this issue, it would be appropriate to remove the account registration features for business and organizations."_ But the problem is that There are no different account types in our app. ALL users create company accounts - there is no individual vs business distinction. Users either join existing companies (with invite codes) or create new companies (without invite codes), but the account type is identical in both cases. I think the App Review has a problem that I am using the word "Company" during registration but users do not sign up business accounts. they are all the same. there are MANAGER users and MEMBER users. Managers can upgrade and they MUST use Apple's IAP to upgrade (I have it set up so there's no other way they can upgrade without using Apple's IAP). Members are just assigned to Manager teams/company/organization (what ever you want to call the group). I think they are getting completely hung up on the word when in reality it's fine. Any help here? Please this has been going on for weeks. I am happy to meet with Support too.
2
1
105
2h
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?
1
1
85
4h
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
4
1
129
4h
App Rejected
Hi, I recently make an app for my podcast, news, and music without copyright and you not accept why you say Rechazado 1.5.0 Safety: Developer Information 5.2.3 Legal: Intellectual Property - Audio/Video Downloading I dont make app for download, only stream my podcast live, news information and music without copyright. Now I like to make radio podcast, interviews, etc What I need for you accept? Thanks
0
0
11
4h
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.
10
7
634
4h
My indie puzzle app was treated as a repackaged app from a banned account (4.3a) — asking for reinstatement
Title: Mistaken 4.3(a) “Spam/Copycat” Flag → 3.2(f) Termination — Seeking Guidance on Reinstatement Hi everyone, I’m an independent developer and I believe my account was escalated to termination because of a misunderstanding around Guideline 4.3(a) – Design – Spam and 4.1 – Design – Copycats. I want to explain the full timeline so I can get advice on how to present this correctly in the “Re-instate a terminated membership” request. 1. What I submitted I submitted an app called “Anime Jigsaw: Waifu Puzzles.” The idea was simple: it’s a jigsaw puzzle app, but I wanted to make it more relaxing by combining anime/waifu themed puzzle images with built-in lo‑fi music. So the concept I was aiming for was: puzzle + themed art + calming music, not just another generic jigsaw clone. 2. First rejection Apple rejected it under 4.3(a) – Design – Spam and also mentioned 4.1 – Copycats. The exact wording in App Store Connect said my app’s binary, metadata and/or concept was similar to apps that were previously submitted by a terminated Apple Developer Program account. They also reminded me that resubmitting similar or repackaged apps makes it harder for users to discover new apps. At this point I was confused, because I do not own or control any terminated developer account. I wrote the code myself. So my first answer inside App Store Connect tried to clarify the unique part: anime‑style jigsaw + lo‑fi music to create a “relaxing puzzle session.” 3. Where the problem started When I replied, I accidentally selected the same build (1.0.2) again. I thought I was only replying to the reviewer in the same thread. But from Apple’s side it now looked like: the app was warned for spam/repackaged → developer sends the same binary and concept again → violation not fixed. Because of that, the system can easily read this as “attempt to bypass or evade review.” 4. Second message from Apple Apple repeated 4.3(a) with exactly the same explanation: they still saw a similar binary/metadata/concept to a previously terminated account. So even though my text explanation was different, my actual uploaded build was not different. This is on me — I understand now that for 4.3/4.1 cases, textual explanation is not enough. You must show the difference in the binary, assets, screenshots, name and description. 5. Escalation to 3.2(f) After these repeated submissions, I received the more serious mail: my developer membership (or an account associated with me) had been used for dishonest or fraudulent activity under Section 3.2(f). The reason they gave was basically: “after multiple resubmissions, the guideline violations remain unresolved.” From their point of view this is a pattern similar to re‑packaging or circulating a template that had already been rejected. 6. Why I believe this was not dishonest I am a single indie dev. There is no group of accounts behind me. I did not try to resubmit for a banned seller. My mistake was operational: I replied with the same build, so it kept triggering the spam signal. I really thought clarifying “this is a puzzle app + lo‑fi music” would be enough, but that doesn’t prove originality in their system. 7. What I plan to tell Apple in the reinstatement form I acknowledge that re‑submitting the same build in the same thread made it look like spam. I will upload a completely new binary (or even a new bundle ID) so the reviewer can actually see a changed app. I will replace or document all puzzle assets to show they are original / licensed / generated and not taken from a terminated account. I will rewrite the App Store metadata so it doesn’t look like another anime puzzle clone and so it highlights the “relaxing session” feature. I will not re‑submit small incremental changes to a previously rejected build. I will only submit again when the violation is actually fixed. 8. What I’m asking the community Has anyone been flagged as “similar to a terminated account” even though they had only one account? Is choosing the same build during the reply flow enough to make it look like 4.3(a) spam? What level of asset/source proof did you send to convince App Review that the app is fully your own work? I respect Apple’s need to keep the App Store clean, but in this case I believe the escalation happened because my resubmission did not show the changes they were asking for, not because I was trying to cheat the system. Any guidance or examples from people who successfully explained this would be really helpful. Thanks.
1
0
28
6h
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.
2
0
205
18h
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
124
1d
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
33
1d
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
52
1d
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
311
1d
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
23
1d
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
70
1d