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

Post

Replies

Boosts

Views

Activity

NSPrivacyTrackingDomains has NOT block connections
Xcode 15.0 iPhone15 iOS17.0 Simulator I created demo app with Privacy manifest defined NSPrivacyTracking to YES, and NSPrivacyTrackingDomains with specific domain (used CDTFA Tax Rate API as example and string value is ca.gov). However, after selecting Ask App not to Track on ATT dialog, URLSession was successed and got response from the domain. Is there any wrong on my implementation? or is this feature has not released yet?
2
2
1.8k
Oct ’23
TestFlight: Moving internal tester to new group removes them from test program
I am changing a group of internal testers from automatic to manual distribution of an iOS app. I need to do this seamlessly to avoid disrupting ongoing testing. A group's distribution method (automatic vs. manual) can only be set when creating a group, so I created a new group set to manual distribution and moved users to the new group like this but it doesn't work as expected: At start: Internal testers are in an existing group set to automatic build distribution. Create new group set to manual build distribution. Add new group to same builds as existing group. Add tester to new group. Delete tester from existing group. I expected the tester to be able to continue testing as a member of the new group. Instead, the user's TestFlight says "Tester Removed" and "The developer removed you from the test program". But the TestFlight admin web page shows a green checkmark and "Installed" next to the user in the new group. Status in the tester's TestFlight app doesn't match the TestFlight admin page. Is this a bug in TestFlight, or did I miss a step? Waiting 30 minutes for TestFlight changes to propagate doesn't help. Having the user uninstall and reinstall TestFlight doesn't help. TestFlight still says "Tester Removed". The only solution seems to be completely removing the tester from the app and adding them back in the new group (swap steps 3 & 4). Thanks, Gustav
2
1
1.8k
Oct ’23
Subscription Summary not appearing in App Store Connect
This week I released an app with an IAP and subscription in. Whilst I'd be stunned if anyone had subscribed, I'd like to at least confirm that. However, in App Store Connect, apparently I should have a "Subscription Summary" according to this article here: https://developer.apple.com/help/app-store-connect/view-sales-and-trends/view-subscription-data But I don't have one: Is there any criteria you have to hit to see the subscriptions?
3
1
604
Oct ’23
Sales Report from API - Units question
Hello I've used the AppStore Connect API to download a sales report because I wanted to do a more thorough analysis. But I've noticed that, for example, when downloading the month of March, when summing up the units sold, the number doesn't match at all with the result I can see on the AppStore Connect website. It's a very different result. Like 3x or even more. Does anyone know why?
3
0
1.1k
Oct ’23
Error when uploading app that uses Accelerate LAPACK functions to App Store Connect
Hello I'm using functions from the Accelerate framework in my app as mentioned in this developer documentation: https://developer.apple.com/documentation/accelerate/solving_systems_of_linear_equations_with_lapack I've built the app and tested it and I get no errors, but when I try to upload to the App Store Connect I get the error: he app references non-public symbols in Payload/***.app/Frameworks/Matrix.framework/Matrix: _dgeev$NEWLAPACK$ILP64, _dposv$NEWLAPACK$ILP64, _dsyev$NEWLAPACK$ILP64, _dsysv$NEWLAPACK$ILP64 Please advise on how to resolve this issue. Thank you.
3
1
987
Oct ’23
Updating contentRightsDeclaration now returns FORBIDDEN_ERROR
Recently I've started receiving a "FORBIDDEN_ERROR" error when submitting a PATCH to "/v1/apps/xxxx". The data below is what is being sent: { "data": { "type": "apps", "id": "xxxx", "attributes": { "contentRightsDeclaration": "DOES_NOT_USE_THIRD_PARTY_CONTENT" } } } This used to work (for over a year) fine. We also update several other things (Category, Age Rating, Available Territories etc) and they still work as expected; this is the only type that has started (about a month or so ago) to behave this way. I also generated a new API key with full Admin privileges but the issue still occurs. The specific error returned is: { "errors" : [ { "id" : "1cfb7772-940c-46d5-bfe5-a97bbe314", "status" : "403", "code" : "FORBIDDEN_ERROR", "title" : "This request is forbidden for security reasons", "detail" : "The API key in use does not allow this request" } ] } Any ideas how to fix this or what's going on? Thanks in advance.
2
0
784
Oct ’23
appAccountToken is missing in JWSTransactionDecodedPayload
We use store kit original API for in-app purchase,I set a UUID to the SKMutablePayment object applicationUsername property, when finish the payment, In the App Store Server API, the JWSTransactionDecodedPayload object returns no appAccountToken field.This probability is extremely small, about 17 in 100,000.Does anyone have the same situation?
5
1
1.2k
Oct ’23
Testflight Store Region Issue - Mac Catalyst
We have an iOS app which is currently available in AppStore. Now we are enabling Mac Catalyst support for the Mac users. As our app is contains In App purchases and it is working fine in iOS devices. But when we try to purchase subscriptions from Mac Catalyst app using TestFlight, it gives the error “Your account is not valid for use in the U.S. store. You must switch to the Japan store before purchasing.” Then after we have checked an AppStore region and the region is already Japan. Any assistance would be appreciated.
3
0
642
Nov ’23
No warning email received from Apple even though we upload an app version WITHOUT Privacy manifest
Being a software company we create and distribute an iOS SDK with our customers world wide. The distribution of the software is in the form of a static library / XCFramework to our customers. They will integrate the SDK and use it to collect data from their hosting as first party. As Apple enforced through this article “Describing use of required reason API” - “starting from Fall 2023 you’ll receive an email from Apple if you upload an app to App Store Connect that uses required reason API without describing the reason in its privacy manifest file”. We are using "NSUserDefaults” in our SDK which is one among the required API listed, and as of now we didn’t create a Privacy manifest file and declared this on the SDK. We tried uploading our app to the Appstore connect portal, as we are not complying with the requirement from Apple we expect to see the warning message. Currently we are unknown about the impact of not having the Privacy manifest, and we would like to test the scenarios and make sure we are declaring the correct information on our SDK. Please could you review this and let us know why we are not receiving the emails. Or is that Apple didn’t harden the uploads yet and something planned for future date?
2
1
1.8k
Nov ’23
In App Purchase sanbox reopens repeatedly and does not send purchased status in stream
I am facing a weird issue while making auto renewable subscription through in_app_purchase package in IOS simulator 17.0. This is the preview of my issue: https://www.loom.com/share/0a483d3dcba44807bec0a38e0a752e66?sid=b42a575e-aa3b-46c9-8fa5-8ee24cf40900 What works well: I am able to fetch my subscription product from the app store. Future<void> _getProducts() async { ProductDetailsResponse response = await _iap.queryProductDetails(productIds.toSet()); if (response.notFoundIDs.isNotEmpty) { print('These products were not found: ${response.notFoundIDs.join(', ')}'); } _products = response.productDetails; notifyListeners(); } I am able to open the sandbox and start the pruchase using sanbox tester account in the apple app store. Future<void> buyProduct(ProductDetails product) async { final PurchaseParam purchaseParam = PurchaseParam(productDetails: product); try { await _iap.buyNonConsumable(purchaseParam: purchaseParam); } catch (e) { print("$e"); } } The sanbox shows the "DONE" UI, but I NEVER get the PurchasedStatus.purchased in my stream, and the sandbox reopens again. The cycle repeats Here is the output of my flutter doctor -v • Flutter version 3.13.1 on channel stable at /Users/muhammadhamadjamal/Documents/FlutterDev/sdk/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision e1e47221e8 (3 months ago), 2023-08-22 21:43:18 -0700 • Engine revision b20183e040 • Dart version 3.1.0 • DevTools version 2.25.0 [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2) • Android SDK at /Users/muhammadhamadjamal/Library/Android/sdk • Platform android-33, build-tools 33.0.2 • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS (Xcode 15.0) • Xcode at /Applications/Xcode.app/Contents/Developer • Build 15A240d • CocoaPods version 1.13.0 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [✓] Android Studio (version 2022.1) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301) [✓] VS Code (version 1.84.1) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.76.0 [✓] Connected device (3 available) • iPhone 15 Pro Max (mobile) • DC9EDD04-0B17-4D27-BD2A-966F06BFCF7F • ios • com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator) • macOS (desktop) • macos • darwin-x64 • macOS 14.0 23A344 darwin-x64 • Chrome (web) • chrome • web-javascript • Google Chrome 119.0.6045.105 [✓] Network resources • All expected network resources are available. • No issues found!
1
1
462
Nov ’23
No longer able to sign in with sandbox account in the App Store app on macOS 14 Sonoma
After updating to macOS 14 I am unable to sing in to a test Sandbox account in the App Store app. Steps to reproduce: Open macOS "App Store" app Go to settings (CMD + ,) If already a sandbox account is listed in the bottom section then sign out Click "Sign In" button in the bottom section Follow authentication prompts Current behavior: Authentication completes, but the state of the bottom section does not change. Only the "Sign In" button becomes active again. Expected result: Authentication completes and the bottom section displays current Sandbox user.
4
1
886
Nov ’23
Add an iOS companion app to a Apple Watch only app
Hi everyone, We're fighting an issue that's driving us up the wall. We developed an Apple Watch Only standalone app, which cost $2.99; once you paid, you could download and use the app on your Apple Watch. We've released a companion iOS app for iPhone that goes into the same bundle (as it's the same app, now supporting two platforms). Nevertheless, the Watch app is still available as a separate app (you can download the Watch app only if you wish without needing to download the iPhone app as well). The iOS companion reads information from the watch and provides more insights into the data it displays. Similar to the sleep tracking apps where you use the watch to sleep and track and the iPhone to see the results. When we released the latest version, including both, we changed the price to Free in all countries. After this, we now have a huge problem we haven't been able to solve: Our existing users (who paid for the Apple Watch-only app) cannot download the companion iOS app. If they go to the App Store, it'd just say "Purchased" with no option to download it (nor the "Get" button or the "Cloud" icon). If you go to your App Store account in your iPhone and then to "Purchases," the app won't appear there. Because technically, you never bought it, and it's now free. If you do the same on your Apple Watch, you can still see the app on your purchases, but that would only download the Apple Watch app, not both. But on top of that, I want my users to be able to download the companion app from the App Store with their iPhones because that's what they'll do anyway (only 9% of our app downloads happen straight in an Apple Watch; most come from iPhones). Did anyone have this problem? I'm already talking with support because this is having a very negative impact on our app, and it all looks to be a bug on the App Store or an edge case that Apple hasn't considered. The thing is, I experienced this issue myself with an app from another dev previously where I had the Apple Watch app installed and paid for it. When I wanted to download the companion they released, it was impossible for the same reasons stated above. He managed to fix it, but I couldn't find any information.
4
2
2k
Nov ’23
How to prevent access to new apps for AppStore connect users?
We have some users with App Manager role on our Apple Developer account. They should be having access to exactly the apps that we have assigned for them. Seems like when we create a new app record in AppStore account, these users are automatically getting the updates regarding new TestFlight releases and the app review and store updates. How do we make sure that these App Managers do not 'automatically' get access to new apps?
1
0
322
Nov ’23
Sandbox App Store receipt cannot be refreshed because auth-sandbox.itunes.apple.com has an invalid certificate
When trying to refresh a sandbox receipt of my macOS app by using exit(173), storekitd on macOS Sonoma 14.1 logs the following (German) error: fehler 18:32:58.421785+0100 storekitagent com.(redacted): Failed to renew receipt for exit(173): Error Domain=AMSErrorDomain Code=100 "Authentication Failed" UserInfo={NSMultipleUnderlyingErrorsKey=(``` "Error Domain=AMSErrorDomain Code=2 \"Ein unbekannter Fehler ist aufgetreten. Versuche es erneut.\" UserInfo={NSLocalizedDescription=Ein unbekannter Fehler ist aufgetreten. Versuche es erneut.}", "Error Domain=NSURLErrorDomain Code=-1202 \"Das Zertifikat f\U00fcr diesen Server ist ung\U00fcltig. Eventuell wird eine Verbindung mit einem Server hergestellt, der vorgibt, \U201eauth-sandbox.itunes.apple.com\U201c zu sein und vertrauliche Daten gef\U00e4hrdet.\" UserInfo={NSLocalizedRecoverySuggestion=Soll die Verbindung zum Server trotzdem hergestellt werden?, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9843, NSErrorPeerCertificateChainKey=(\n \"<cert(0x14f033000) s: daiquiri-ext.itunes.apple.com i: Apple Public EV Server RSA CA 2 - G1>\",\n \"<cert(0x14f01d000) s: Apple Public EV Server RSA CA 2 - G1 i: DigiCert High Assurance EV Root CA>\",\n`` The error translates to: The certificate for this server is invalid. A connection may be established with a server pretending to be "auth-sandbox.itunes.apple.com" and compromising confidential data. The certificate returned by the sandbox auth server seems to be for daiquiri-ext.itunes.apple.com and not valid for auth-sandbox.itunes.apple.com. When I try to enter https://auth-sandbox.itunes.apple.com in Safari, it tells me that it cannot establish a secure connection to the server. curl -v https://auth-sandbox.itunes.apple.com logs this: * Connected to auth-sandbox.itunes.apple.com (17.36.202.9) port 443 (#0) * ALPN: offers h2,http/1.1 * (304) (OUT), TLS handshake, Client hello (1): * CAfile: /etc/ssl/cert.pem * CApath: none * (304) (IN), TLS handshake, Server hello (2): * (304) (IN), TLS handshake, Unknown (8): * (304) (IN), TLS handshake, Certificate (11): * (304) (IN), TLS handshake, CERT verify (15): * (304) (IN), TLS handshake, Finished (20): * (304) (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384 * ALPN: server accepted h2 * Server certificate: * subject: businessCategory=Private Organization; jurisdictionCountryName=US; jurisdictionStateOrProvinceName=California; serialNumber=C0806592; C=US; ST=California; L=Cupertino; O=Apple Inc.; CN=daiquiri-ext.itunes.apple.com * start date: Aug 28 18:07:16 2023 GMT * expire date: Dec 30 18:17:16 2023 GMT * subjectAltName does not match auth-sandbox.itunes.apple.com * SSL: no alternative certificate subject name matches target host name 'auth-sandbox.itunes.apple.com' * Closing connection 0 curl: (60) SSL: no alternative certificate subject name matches target host name 'auth-sandbox.itunes.apple.com'
3
1
974
Nov ’23
Randomly registered users
I am distributing my apps via the App Store and testing before release with TestFlight. Today I noticed a user registered with the TestFlight version. So I checked another user and I saw an old version of my app used to register. All those users were registered with Apple sign-in. Does Apple randomly register bot users to make automation tests? Normally Google does this when I send for approval. Immediately 3 users register with Google account and use Google Sign in. So if this is the case how can I eliminate those bot users from real ones? If it is not how can be possible a user can install the from the TestFlight? (install with link is disabled, only test users can install)
0
1
441
Nov ’23
App review team IPs range
Hi All, for security reason our Mobile Banking App is restricted to UAE region only. Anytime Apple review Team reject the app because they are unable to login in the app and review it . Is it possible to have the list of the possible IPs range from where the App Review Team is performing the review? This will allow our security team to whitelist them.
1
1
346
Nov ’23
App stuck in review for 2.5 weeks and unable to get a clear answer from Apple
Our app (App ID: 1582937571) has been stuck "in review" for 2.5 weeks now, and we have been unable to get a clear answer from Apple. This submission process started on October 24, 2023. Actions I've taken so far include: Contact Apple Developer Support via phone and follow up on the case ID multiple times. Submitting an expedited review request. Filing an appeal request. Resubmitting the app with a changed version name. What next steps should I take? Is there a possibility that a bug is causing the delay, leaving our app mysteriously stuck in the review system? As iOS developers, we deserve a more efficient and transparent review process. Any assistance or guidance from this community would be invaluable.
0
0
272
Nov ’23