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

I can't submit my app to Apple Store Connect
I created my app with Ionic in its latest version 8. Everything worked in tests on simulators and on iPhone devices. However, when I compile and generate the file to submit to App Store Connect, I receive the error: Validation failed Invalid Signature. Code failed to satisfy specified code requirement(s). The file at path “App.app/App” is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose “Clean All” in Xcode, delete the “build” directory in the Finder, and rebuild your release target. For more information, please consult https://developer.apple.com/support/code-signing. (ID: 435c30f9-12d0-4367-a930-33c3b39229be)
3
0
160
3d
Strange warning after transporting app
Hi guys, I have an app ready for testing/distribution. But when I used Transporter to send the app to Apple Store Connect, I got the following warning. ITMS-90885: 'Cannot be used with TestFlight because the executable “${executable}” in bundle “${bundle}” is missing a provisioning profile but has an application identifier in its signature. Nested executables are expected to have provisioning profiles with application identifiers matching the identifier in the signature in order to be eligible for TestFlight.' The executable and bundle values were missing from this warning message, which does not help find the warning cause. Could someone give me some advice to resolve this issue? Thanks!
2
0
84
3d
IAP Product Not Getting Approved – Stuck in Review Loop
I’m stuck in a loop where my in-app purchase (IAP) product cannot be reviewed because my app version is in “Rejected” status. In order to submit the IAP for review, I need to submit a new app version and select the IAP product. But since the current version is rejected, I can't select the IAP during submission. As a result, RevenueCat can't fetch the IAP products, and the app appears to not use in-app purchases, which leads to another rejection. I’d like to know the correct steps to break this cycle and properly submit both the app and the IAP for review. Any guidance is appreciated!
1
0
61
3d
App stuck in review for 10 days.
Hi everyone, Our app (ID: 6744578596) seems to be stuck in review for 10 days now. Timeline: Jul 13, 2025 at 8:47 PM: Waiting for Review Jul 14, 2025 at 7:31 PM: In review Jul 14, 2025 at 8:16 PM: Rejected Jul 14, 2025 at 10:55 PM: Waiting for Review (Addressed rejection reason and resubmitted for review) Jul 15, 2025 at 3:47 PM: In review Jul 15, 2025 at 5:27 PM: Rejected Jul 15, 2025 at 5:43 PM: Waiting for Review (Addressed rejection reason and resubmitted for review) Jul 15, 2025 at 5:49 PM In review Jul 15, 2025 at 6:29 PM Rejected Jul 15, 2025 at 9:31 PM Waiting for Review (Addressed rejection reason and resubmitted for review) Jul 15, 2025 at 9:36 PM In review Jul 15, 2025 at 9:45 PM Rejected Jul 15, 2025 at 9:54 PM Waiting for Review (Addressed rejection reason and resubmitted for review) Jul 15, 2025 at 9:57 PM Rejected Jul 15, 2025 at 10:53 PM Waiting for Review (Addressed rejection reason and resubmitted for review) Jul 15, 2025 at 11:08 PM Rejected Jul 16, 2025 at 12:23 AM Waiting for Review (Addressed rejection reason and resubmitted for review) Jul 16, 2025 at 12:30 AM In Review Jul 16, 2025 at 6:02 PM Rejected Jul 16, 2025 at 6:21 PM Waiting for Review (Addressed rejection reason and resubmitted for review) Jul 16, 2025 at 6:25 PM In Review Stuck "In Review" for two days. Removed from review and resubmitted a build based on advice from an App developer on X. Jul 18, 2025 at 6:14 PM Waiting for Review Jul 18, 2025 at 6:19 PM In review. The status hasn't changed since then. Also worth noting that the reviewer(s?) keep insisting that our app is an OpenAI wrapper app and most of the rejections were on this point. We painstakingly train our own models and port them to CoreML to run on-device. A lot of the back and forth rejections were because of this confusion. On the other hand, I see plenty of OpenAI wrapper app developers ({Plant, Bird, Cat, Dog, Rock, etc} identifiers) on social media, bragging about how their non-novel app was approved in under a day. Seems quite unfair for the few developers like us, developing user privacy respecting, offline AI apps.
1
0
33
3d
App Rejected for Guideline 5.2.1 without explanation
Hello everyone, I hope you all are doing well. I’m facing some challenges in getting my app approved for the App Store. It’s consistently being rejected for Guideline 5.2.1 - Legal - Intellectual Property. This seems to be related to the app’s connection to an e-bike called the VanMoof. I’ve tried reaching out to App Store Review, but I’ve only received a generic response. The response states the following: Your app still includes content or features from VanMoof, or is marketed to control external hardware from VanMoof, without the necessary authorization. The inclusion of third-party content within your app, whether retrieved from the internet by the app or embedded in the app, is subject to the terms of the Apple Developer Program License Agreement. I’ve also tried contacting Apple through the Apple Contact Us module, but I haven’t received any response yet. Does anyone know what I can do to resolve this issue or what the problem with my app could be?
1
0
134
3d
ITMS-90338: Non-public API usage
I am using multi-targeted react native app i have deployed most of then but i didi''t get any error but one of my app greeted validated successfully and uploaded successfully but i got error message from play store that's is given below , ITMS-90338: Non-public API usage - The app references non-public selectors in ETCiso: _isKeyDown, _modifiedInput, _modifierFlags. 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 at every setting are same as other, If there any error and issue in binaory then why its geeting approved in validation and geeted upload
1
0
68
3d
Can't restore purchases on some devices
Hi, we have published a flutter app on the App Store offering additional content via one-time in-app purchases. Everything is working as expected when distributing the app via TestFlight but we're reportedly having issues with users not being able to restore purchases on some devices with the app loaded from the Apple App Store. We noticed the issue when some user were unable to unlock the in-app purchases via promotion codes we supplied for marketing reasons. Most of them were able to unlock the purchases using the promotion codes without a problem. Some had to try several times using a new code each time but for some users (on some of their devices) it's not working at all and we can't seem to find the reason for it. Here is one users case in detail: the user tried to unlock our "complete bundle" using a promo code first code did not seem to work, so I provided a new code it seems that both codes were redeemed correctly because both of the show up in the users purchase history in his App Store profile Now, the user is unable to unlock the content inside our app on his iPhone, he is however able to unlock it on its iPad without a problem. Both devices run the same iOS version, same Apple ID and the exact same app version. Even stranger: when using the TestFlight version of the app, again everything is working correctly even on the users iPhone. I took a look at the device logs and here's what I found: This is a snapshot of the users iPad. As you can see products are found and listed correctly storekitd seems to find and return products in receipt with the correct identifier we get the correct information and are able to restore the correct purchase 14:48:17.032895+0200  Runner  flutter: Found id: de.BUNDLEID.01, title: TITLE 1, price: €29.99 14:48:17.032922+0200  Runner  flutter: Found id: de.BUNDLEID.bundle, title: TITLE Gesamtpaket, price: €59.99 14:48:17.032975+0200  Runner  flutter: Found id: de.BUNDLEID.02, title: TITLE 2, price: €29.99 14:48:17.033001+0200  Runner  flutter: Found id: de.BUNDLEID.extension, title: TITLE Plus, price: €9.99 14:48:20.656702+0200  storekitd  [70D5C079]: Found 2 products in receipt with ID de.BUNDLEID.bundle 14:48:20.667793+0200  Runner  flutter: Called purchaseListener (purchaseDetailsList: 1) 14:48:20.667838+0200  Runner  flutter: Purchase restored 14:48:20.667869+0200  Runner  flutter: Unlock permission TITLE_1 14:48:20.667892+0200  Runner  flutter: Update TITLE_1 with true 14:48:20.672199+0200  Runner  flutter: Unlock permission TITLE_2 14:48:20.672243+0200  Runner  flutter: Update TITLE_2 with true 14:48:20.677849+0200  Runner  flutter: Unlock permission TITLE_3 14:48:20.677897+0200  Runner  flutter: Update TITLE_3 with true 14:48:20.679079+0200  Runner  flutter: Calling completePurchase... Same exact behavior can be observed on the users iPhone when running the TestFlight version of the app. However, running the app from the Apple App Store on the users iPhone (same Apple ID, same OS and app version), the log looks like this: ​14:23:26.150484+0200 Runner flutter: Found id: de.BUNDLEID.bundle, title: TITLE Gesamtpaket, price: €59.99 14:23:26.150513+0200 Runner flutter: Found id: de.BUNDLEID.02, title: TITLE 2, price: €29.99 14:23:26.150619+0200 Runner flutter: Found id: de.BUDNLEID.extension, title: TITLE Plus, price: €9.99 14:23:26.150657+0200 Runner flutter: Found id: de.BUNDLEID.01, title: TITLE 1, price: €29.99 14:23:27.125353+0200 dasd com.apple.icloud.searchpartyd.ProductInfoManager:C25423:[ (name: Thundering Herd Policy, policyWeight: 14:23:27.376336+0200 storekitd [Client] (Runner) Initialized with server Production bundle ID de.ds-infocenter.guk and request bundl 14:23:27.390026+0200 storekitd AMSURRequestEncoder: (7BA6012D] Encoding request for URL: https://mzstorekit.itunes.apple.com/inApps/ 14:23:27.984831+0200 storekitd [7BA6012D]: Found 2 products in receipt with ID de.BUNDLEID.bundle 14:23:27.990235+0200 Runner flutter: Called purchaseListener (purchaseDetailsList: 0) 14:23:27.990271+0200 Runner flutter: Purchase details list is empty! StoreKit seems to return the same exact products but for some reason the purchaseDetails list seems to be empty this time. Here is the code responsible for restoring the purchases. Nothing fancy going on here if you ask me. @override void initState() { super.initState(); db = context.read<Database>(); inAppPurchase = InAppPurchase.instance; inAppPurchase.purchaseStream.listen( purchaseListener, onError: (error) { print('Purchase stream error: $error'); showErrorDialog(); }, cancelOnError: true, ); queryProductInformation().then((value) { if (value == null) { print('value in queryProductInformation is null!'); updateProcessing(false); return; } setState(() { for (var details in value.productDetails) { products[details.id] = details; } }); updateProcessing(false); }); } Future<void> restorePurchases() async { updateProcessing(true); await inAppPurchase.restorePurchases(); } void purchaseListener(List<PurchaseDetails> purchaseDetailsList) async { print( 'Called purchaseListener (purchaseDetailsList: ${purchaseDetailsList.length})'); if (purchaseDetailsList.isEmpty) { print('Purchase details list is empty!'); updateProcessing(false); return; } for (var purchaseDetails in purchaseDetailsList) { switch (purchaseDetails.status) { case PurchaseStatus.purchased: print('Purchase successful: ${purchaseDetails.productID}'); completePurchase(purchaseDetails.productID); break; case PurchaseStatus.canceled: print('Purchase was canceled'); updateProcessing(false); break; case PurchaseStatus.restored: print('Purchase restored'); completePurchase(purchaseDetails.productID); break; case PurchaseStatus.pending: print('Purchase pending'); break; case PurchaseStatus.error: print('Purchase error'); showErrorDialog(); break; } print('Calling completePurchase...'); await inAppPurchase.completePurchase(purchaseDetails); } } Could this be an issue on Apples API or flutters in_app_purchase package?
0
0
66
3d
App removed from Top Charts after DPLA notice, What now?
I got a “DPLA violation” email. About an hour later my app disappeared from Top Charts in multiple countries. The app is still live, searchable, and on the product page it still says “Chart No.2 – Education.” I only posted it on Reddit and made lifetime free to get feedback from the community. Here's the email: "Notification of Apple Developer Program License Agreement (“DPLA”) violation: Hello xx, We're writing to inform you that your company isn't in compliance with the Apple Developer Program License Agreement (DPLA). Section 11.2 (Termination) states: (g) if You engage, or encourage others to engage, in any misleading, fraudulent, improper, unlawful or dishonest act relating to this Agreement, including, but not limited to, misrepresenting the nature of Your Application (e.g., hiding or trying to hide functionality from Apple’s review, falsifying consumer reviews for Your Application, engaging in payment fraud, etc.). Be aware that manipulating App Store chart rankings, user reviews or search index may result in the loss of your developer program membership." The weird part: • The product page still shows ranks like “Chart No.2 – Education” (Hong Kong, and similar positions in a few other countries). • Search still finds the app normally. • But in the actual Top Charts lists the app is gone. Territories affected (so far): Hong Kong, Taiwan, Macao, South Korea, Singapore, Malaysia, Portugal and a few more. I did not buy installs, did not pay for reviews, did not gate features behind ratings. After the email I double checked and removed any copy that could be read as an incentive for reviews, just in case. I have already emailed Support (Search & Discoverability and App Review). I am waiting, but thought I should ask here too. My questions 1. Has anyone else seen their app silently removed from charts right after a DPLA warning? 2. Did it come back on its own? How long did it take? 3. Is there anything specific I should fix besides waiting and cleaning wording? 4. Is there an official appeal path for chart suppression, not full removal? Reddit posts for context: • https://www.reddit.com/r/iosapps/comments/1m4klxs/giving_away_lifetime_free_for_limited_time_i/ • https://www.reddit.com/r/SideProject/comments/1m5d7gh/im_giving_away_free_lifetime_access_for_my/ Thanks in advance for any guidance or shared experience.
0
0
34
3d
APP Submission
Hi good day, I submitted my app for review and it got rejected under these rules This item has been rejected for the following reasons: 2.3.1 Performance: Accurate Metadata 5.2.2 Legal: Intellectual Property - Third Party Sites/Services Can someone kindly explain to me what this can be? I dont have any information on my app other than my store and the products?
0
0
12
3d
Consultation on the update process of the new version of the APP
New APP version must require users to upgrade is to use the old version will not be able to normal use, if I can be detected in application by "http://itunes.apple.com/cn/lookup?id=%@" in the latest version, then popup UIAlertController, Keep only one "Update Now" button. Will this operation be approved by Apple's review? If customers are not forced to update, the documents they made on the old version of the APP will be incorrect
0
0
8
3d
ITMS-90207: Invalid Bundle. The bundle at 'Runner.app' does not contain a bundle executable.
My app (com.onon.app) consistently fails App Store Connect validation (ITMS-90207: Invalid Bundle) despite passing all local diagnostics (valid arm64 binary, correctly signed, appropriate entitlements). Is there a known issue with Apple's validation server, or are there obscure validation rules I might be missing?" Diagnosic info Architecture Check (lipo -info Runner): Non-fat file: Runner is architecture: arm64 Code Signing Verification (codesign -vvv Runner): Runner: valid on disk Runner: satisfies its Designated Requirement Local Environment Details: Operating System: macOS 15.5 24F74 (arm64) Xcode Version: 16.3 (16E140) Transporter Version: 1.3.3-13326 Flutter Version: 3.29.0 CocoaPods Version: 1.16.2 Has anyone encountered a similar issue with a Flutter app that passes local code signing checks but is rejected by App Store Connect? Are there any known edge cases or obscure validation rules that aren't covered by standard code signing diagnostics?" I've also opened a Technical Support Incident with Apple Support and am waiting to hear back from them. (Apple developers: my case number is 102647258274)
1
0
52
3d
In-App Purchases vs Subscriptions
The question is related to getting rejected by Apple when the app does only have Subscriptions but no In-App Purchases. My understanding is that an in-app purchase is consumable or non-consumable as that's how the UI on appstoreconnect shows it. My app has 3 tier subscription, paid monthly, and that's it. But "We are unable to complete the review of the app because one or more of the in-app purchase products have not been submitted for review." Which I have none?
3
0
89
4d
What URLs can I include in an app?
I'm working on my first app, and I want to be careful to avoid violating restrictions that will prevent it from being listed. My question is about links to other products that may not be in the App Store. What I mean is that along with the app's primary functionality, I want to include value by allowing it to connect to other company's resource files that they sell or provide. I would have a Settings page that lets users set up a link to the files that they have on their machines. Can I provide a link to some of the popular resource files so users recognize that my app will work with those files — and the link would help them get those files. For example, let's say I have a movie app and there were versions of IMDB or Rotten Tomatoes databases that they sold. Would I be able to specify the URLs for IMDB or Rotten Tomatoes so they know they could go buy the resource file from those companies and then incorporate it into my app?
0
0
120
4d
Inquiry About TestFlight App Review Status – App ID: 6748887468
Dear Apple Developer Support Team, I recently registered a personal Apple Developer account successfully and submitted an app for TestFlight beta review with the App ID 6748887468. However, the status has remained in "Waiting for Review" for quite a long time. I’ve read that TestFlight beta app reviews are usually completed within 24 hours. Given the extended delay, I’m concerned there might be an issue with my submission, or that my developer account might be missing some required documentation. Could you kindly help me verify if there is any issue preventing the review process from moving forward? Thank you very much for your support.
1
1
136
4d
IAP and subscriptions
Apple is now saying I need to add the EULA and provacy policy links to my Apple auto re-enable subscriptions and from everything I’ve read, the only way to do that is under the IAP section but I can’t do that because I’m not able to create an auto re-enable subscription in the IAP section, some one please help as this has been the last issue I can’t resolve Guideline 3.1.2 - Business - Payments - Subscriptions Issue Description The submission did not include all the required information for apps offering auto-renewable subscriptions. The app's metadata is missing the following required information: A functional link to the Terms of Use (EULA). If you are using the standard Apple Terms of Use (EULA), include a link to the Terms of Use in the App Description. If you are using a custom EULA, add it in App Store Connect. Next Steps Update the metadata to include the information specified above. Resources Apps offering auto-renewable subscriptions must include all of the following required information in the binary: Title of auto-renewing subscription (this may be the same as the in-app purchase product name) Length of subscription Price of subscription, and price per unit if appropriate Functional links to the privacy policy and Terms of Use (EULA) The app metadata must also include functional links to the privacy policy in the Privacy Policy field in App Store Connect and the Terms of Use (EULA) in the App Description or EULA field in App Store Connect.
0
0
63
4d