I am currently developing a feature to support global privacy compliance, which relies on accurately obtaining the user’s App Store country/region. Based on this country/region information, out App dynamically display privacy policies that comply with local regulations.
To retrieve this information, I use the relevant StoreKit APIs.
API usage examples:
Objective-C:
NSString *countryCode = [SKPaymentQueue defaultQueue].storefront.countryCode;
Swift
let storefront = await Storefront.current
let code = storefront?.countryCode
However, during sandbox account testing on iOS 18.0 and above, I noticed that the returned country code does not match the actual country/region configured in the sandbox Apple ID.
This issue does not occur on systems below iOS 18.0, where the country code returned by the API matches the account setting.
Since this discrepancy can directly affect the accuracy of our compliance logic, I would appreciate your clarification on the following points:
Is this a known change in behavior for iOS 18?
In production environments, does the country code returned by the above APIs accurately reflect the App Store region of the user’s signed-in Apple ID?
Is there a recommended approach to reliably obtain the user’s App Store account country/region?
General
RSS for tagNavigate the App Store landscape. Share strategies for app submission, distribution, marketing, and user acquisition. Discuss best practices for getting your app discovered and downloaded.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hello, I tried to find the answer to this but unfortunately I couldn't...
I am gonna release my PAID game and I want to make pre-orders available for those who want to get it first hand.
Also, I want to add 50% discount to the pre-order page. So if my gonna gonna cost $4.99 I want people able to pre-order it for $2.49. I think it's gonna be a good marketing offer and will attract more people at launch.
Is it allowed? If so, how can I do it? Write the discount on the game's AppStore page description? Or is there a better way to do this.
Thanks! :)
Topic:
App Store Distribution & Marketing
SubTopic:
General
The use case that I want to implement is as follows: user A has the app, user B doesn't have the app yet. User A wants to referral user B to get points. User B scans the QR code present in user A's app. User B gets redirected to the App Store and when downloads the app, the code will be automatically present in the sign up request (so the referral code will be cashed during first launch of the app).
In Android it was implemented using Google Play Install Referrer. Based on my research, in Apple apparently there isn't an alternative, can you please confirm me this.
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
Developer Tools
App Store
StoreKit
Hello Apple Support Team,
We are planning to discontinue support for older macOS versions (macOS 11 and below). However, I have a concern regarding the analytics I see in App Store Connect.
When I filter Paying Users by platform version, I see that about 23% of users are on macOS 11 or lower. This is a significant portion of our user base, and I would like to clarify:
Does this “platform version” metric reflect the current operating system version that the paying user is running?
Or does it reflect the macOS version at the time when the user first purchased a subscription?
Thank you in advance for your clarification.
Topic:
App Store Distribution & Marketing
SubTopic:
General
Hello everyone,
I published my game Boulder Dash 40 which was created in Unity, exported as an Xcode project, and uploaded using Xcode’s Archive and Distribute functionality. The game successfully passed Apple’s review process and is available on the App Store.
However, two users have reported that they are unable to install the game on their Macs. After downloading, the installation fails with an error message. The game installs and runs correctly for other users, including myself.
Both affected users installed the game using redeem codes and had no prior installation of the game on their devices. The installation failure also occurs when attempting to install the app via TestFlight.
I have made several changes to settings in both Unity and Xcode, but the issue persists. Could anyone provide insights or suggestions on what might be causing this installation failure?
Thank you in advance for your help!
Best regards, Jan
Part of installation log with error attached
install.log
Topic:
App Store Distribution & Marketing
SubTopic:
General
Apple Search ADs showing this error for adding a credit card based out of India.
I have ICICI Bank Credit Card and it is enabled for International Payments also .
Please check attached screenshot
I realised after coding my new app that it is possible to give it as an update to an older app via light weight migration.
i dont mind removing the new app. Better if i can merge the Into a single product.
is it possible?
FB20444423 was already filed, please help us on:
Is it possible to fix the following issue on new Macos version?
Is there any AppStore configuration that can mitigate this issue?
Similar issues:
https://developer.apple.com/forums/thread/778746
https://developer.apple.com/forums/thread/781317?page=1#836167022
Reproduce Version: Macos 15.3.2 and above. Reproduce Steps:
Copy and run the following desktop watermark app(attachment);
2.After the watermark app running a watermark window is showing at the left top corner. 3. Open App Store and try to install any app, after the confirm installation dialog appears, move the App Store window to desktop watermark area, the confirm installation button will disappear.
On some Mac, we can see a different app installation behavior, as the following picture shows, with the following behavior the app installation works on Macos15.3 and above.
#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"App started");
//TODO1:Get current screens and get screen's NSRect
NSScreen *screen;
NSRect frame = NSMakeRect(0, 0, 1000, 1000);
NSWindow* window = [[NSWindow alloc] initWithContentRect:frame
styleMask: NSWindowStyleMaskTitled //0x80
backing:NSBackingStoreBuffered
defer:NO];
// ant-setttings
[window setAcceptsMouseMovedEvents:NO];
//[window setFloatingPanel:true]; ==> only valid for NSPanel
//0x111 = 1 << 0 | 1 << 4 | 1 << 8
[window setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces
| NSWindowCollectionBehaviorStationary
| NSWindowCollectionBehaviorFullScreenAuxiliary ];
[window setMovableByWindowBackground:YES];
[window setExcludedFromWindowsMenu:YES];
// [window setAlphaValue:0x3FF0000000000000];
[window setOpaque:NO];
[window setHasShadow:NO];
[window setHidesOnDeactivate:NO];
[window setLevel:NSScreenSaverWindowLevel];
[window setIgnoresMouseEvents:YES];
[window setReleasedWhenClosed:NO];
[window setStyleMask:NSWindowStyleMaskBorderless];
// get screen rect and set to NSWindow
[window setFrame:frame display:YES animate:NO];
[window setMovable:NO];
//Step1. Create a NSImage object with user-infomation embedded; ==> get this done
NSSize size;
size.width = 100;
size.height = 300;
NSImage* watermark_image = [NSImage imageWithSize:size flipped:NO drawingHandler:^(NSRect dstRect) {
NSGraphicsContext* current_ctx = [NSGraphicsContext currentContext];
[current_ctx saveGraphicsState];
//current_ctx = [NSGraphicsContext currentContext];
CGContextRef context = [current_ctx CGContext];
//Rotates the user coordinate system in a context.
CGFloat tilt_angle = 20*M_PI/180;
CGContextRotateCTM(context, tilt_angle);
NSString* data = @"12345";
NSPoint point;
point.x = 20;
point.y = 0;
NSFont *font = [NSFont fontWithName:@"Arial" size:20.f];
NSDictionary *attributes = [NSDictionary dictionaryWithObjects:
@[font, [NSColor redColor]]
forKeys:
@[NSFontAttributeName, NSForegroundColorAttributeName]];
[data drawAtPoint:point withAttributes:attributes];
[current_ctx restoreGraphicsState];
return YES;
}];
//Step2. Create a UIColor object based on the NSImage object created above;
NSColor* backgroud_color = [NSColor colorWithPatternImage:watermark_image];
//Step3. Set the new UIColor object as NSWindow background;
[window setBackgroundColor:backgroud_color];
// TODO:Double check again;
[window makeKeyAndOrderFront:NSApp];
CFRunLoopRun();
NSLog(@"App ended");
}
//sleep(10*1000);
return 0;
}
Context:
Back on March 4th, we scheduled a price increase for April 16th on one of our monthly subscription plans with several hundred active subscribers, to change the price from $18.99/mo to $19.99/mo and it has sat unedited in App Store Connect since.
Expected:
Based on this documentation (Increase the price of an auto-renewable subscription), I would expect that 27 days prior to the price increase (which would be 4 days ago, on March 20th), that users would start receiving notifications about the price increase in the form of emails to their Apple IDs and push notifications when they open up the app. We also have App Store Server Notifications V2 set up. Therefore, I expected to start receiving PRICE_INCREASE notifications as users either got emails and/or push notifications.
Actual:
We have yet to see any PRICE_INCREASE events come through. Additionally, we have one employee subscribed to this plan on production with a subscription that would renew on April 17th, which would mean that the 21st (3 days ago) was 27 days prior to his subscription renewing. He has checked his email and the app and has still not been notified in any way about the price increase and his subscription manager shows he will renew April 17th at the same price.
Questions:
Is there some other step that needs to happen for the price increase to take place?
Are my expectations wrong about what we should see by this point, or else why might we not have had any indication of customer notifications of the price increase occuring yet?
Hi
After several successful development builds of my iOS app (built with Adobe Animate 24.0 Build 305 + AIR SDK 51.2.2.4), I moved to the distribution stage. The build was rejected by App Review due to crashing.
To investigate, I uploaded the app to TestFlight and tested it myself. It immediately crashes on launch. To rule out my project code, I created a minimal build containing only one image (no code), but that also crashes in TestFlight.
Development builds run fine on my device when using a development provisioning profile — the issue only occurs with TestFlight / distribution builds.
Is there a way to identify the crash reason from Apple’s side? Or does iOS no longer support Animate / AIR SDK builds in distribution?
I have crash logs (.ips) available and can share them if needed. Any guidance would be greatly appreciated.
Thanks in advance.
Topic:
App Store Distribution & Marketing
SubTopic:
General
Hello,
I programmed a universal app and is was released on the App Store: https://apps.apple.com/app/ble-scout/id6752802063
I think I did all necessary settings in XCode:
It also shows both architectures in the Archive view:
But when trying to install it on my M3 MacBook Air I get this error message:
On the apps page in the App Store it shows that it would run on this Mac.
Strangely I can install it on my older Intel MacBook Pro and a friend can even install it from the App Store on his M4 MacBook Pro. All run either MacOS 15.6.1 or 15.7. Another friend cannot install on M3 MacBook.
Anyone having any clue what's missing? It's my first app to distribute on the App Store, so sort of new into this.
Thanks,
ER!K
Topic:
App Store Distribution & Marketing
SubTopic:
General
We’ve been using the new Icon Composer–generated app icons for our existing universal bundle (iOS + Mac Catalyst) app. The icons work perfectly for iOS on the App Store.
On macOS Tahoe (macOS 26), however, the App Store listing doesn’t display the app icon — it just shows placeholder while downloading. After the app is installed, the icon displays fine everywhere (Dock, Finder, Launchpad, etc.).
Setup:
using .iconset generated via Icon Composer, bundled with .png inside the .icon file.
On older macOS App Stores, the app icon shows as expected.
On Tahoe App Store only, the issue appears.
Could this be because the App Store expects .svg variants inside the .icon file for proper display in the Store? Or is there any updated requirement for Mac App Store metadata icons vs. bundled app icons?
Any guidance would be much appreciated.
I keep having problems getting the certificate from the Apple Developers file to actually record. I do notice that my keychain file is corrupted and despite reloading it repetitively after sending it to the trashcan, it makes no difference.
Withouth authorization Bearer token:
public static JWKSet getApplePublicKeys(String token) throws Exception {
URL url = new URL("https://api.storekit.itunes.apple.com/inApps/v1/jwsPublicKeys");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
int status = conn.getResponseCode();
InputStream stream = (status >= 200 && status < 300)
? conn.getInputStream()
: conn.getErrorStream();
String body = new BufferedReader(new InputStreamReader(stream))
.lines()
.reduce("", (acc, line) -> acc + line);
System.out.println("HTTP " + status + ": " + body);
// load JWKSet from JSON string
try (InputStream in = new ByteArrayInputStream(body.getBytes(StandardCharsets.UTF_8))) {
return JWKSet.load(in);
}
}
With authorization Bearer token:
public static JWKSet getApplePublicKeys(String token) throws Exception {
URL url = new URL("https://api.storekit.itunes.apple.com/inApps/v1/jwsPublicKeys");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("Authorization", "Bearer ");
int status = conn.getResponseCode();
InputStream stream = (status >= 200 && status < 300)
? conn.getInputStream()
: conn.getErrorStream();
String body = new BufferedReader(new InputStreamReader(stream))
.lines()
.reduce("", (acc, line) -> acc + line);
System.out.println("HTTP " + status + ": " + body);
// load JWKSet from JSON string
try (InputStream in = new ByteArrayInputStream(body.getBytes(StandardCharsets.UTF_8))) {
return JWKSet.load(in);
}
}
Below is the my production and sandbox URls:
Sandbox: https://api.storekit-sandbox.itunes.apple.com/inApps/v1/jwsPublicKeys
Production: https://api.storekit.itunes.apple.com/inApps/v1/jwsPublicKeys
Kindly help me with this. If I am doing anything wrong, please let me know. I tried using the token in the URL, and it gives me a 404. If I hit the endpoint without the token, it returns a 401. Please assist me.
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
StoreKit Test
StoreKit
App Store Server Notifications
The app icon of my iPad app appears as a placeholder/template instead of the correct app icon when viewed through the App Store. It is correctly displayed on the website version of the App Store, in App Store Connect, and when running the app.
I noticed that another app with the same issue is "Things 3 for iPad." This might be related to the fact that both apps are iPad-only.
I implemented a new app icon using the new Icon Composer. Since users can switch between different icons, some are created with Icon Composer and others are still included traditionally within the asset folder.
This is my app (Bubbles' Journal):
https://apps.apple.com/app/id1547297023
Hi all,
I reached out to AppStoreConnect support and they told me to ask here... I think this is on Apple to fix, but want to follow what they recommend me to do
We launched a new app called "Dubsy". On the AppStore, if you search for "Dubsy", you'll get results for Subway, with a note like "Showing results for Subway, tap to search for Dubsy". This is not good for app discovery, particularly with a pretty unique name
Have any of you had success with Apple fixing their autocorrect in AppStore search? We could add "subway" to our keywords, but that sounds shady...
Any guidance is appreciated
Hi Everyone,
I’ve recently launched a utility app focused on cleaning, optimizing, and improving device performance while protecting user privacy. It includes features like Junk cleaning, Duplicate/Large/Old file removal, App Uninstallation/Updater, Browser cleanup, and Startup Management tips.
I’m trying to better understand how App Store search ranking works for this type of app so it can feature higher in search results. Specifically, I’d like to know:
What factors influence whether an app shows up at the top for keywords like “storage cleaner”, “duplicate finder”, or “privacy cleaner”?
How important are title, subtitle, and keyword fields compared to downloads, ratings, and reviews?
Does keyword repetition in the description improve ranking, or does Apple ignore that?
Are there any proven strategies for utility apps (like system optimizers/cleaners) to compete with big, established apps in search visibility?
Does localization (multiple languages) significantly improve search exposure, even if the app is English-first?
I want to make sure I’m optimizing everything correctly—title, subtitle, keywords, and descriptions—without wasting character space or doing anything that Apple might flag.
Any guidance, best practices, or resources on App Store search optimization (ASO) specifically for cleaner/duplicate/optimizer apps would be hugely appreciated!
https://apps.apple.com/us/app/dustbyte/id6751766823
Thanks in advance 🙏
iOS build not appearing in App Store Connect after upload via Xcode and Transporter (React Native), Uploaded IPA “successfully” but build never shows in App Store Connect — React Native iOS.
App type: React Native mobile app
Android: Already published on Google Play (works fine)
iOS goal: Upload the iOS build so it appears in App Store Connect (for TestFlight/release)
No matter how I upload (Xcode Organizer Archive or the Transporter app), the build never appears in App Store Connect. It does not show under My Apps > [My iOS App] > TestFlight, nor under App Store Connect > Activity > All Builds. I’ve tried multiple times over several days. Xcode Organizer: “Upload to apple" there is no error,
Transporter: delivered but app is processing ,
Email : there is no feedback with my problem
please contact me
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
App Store Connect
App Submission
TestFlight
Is it possible to create a sandboxed app that uses accessibility permission? And if so, how do I ask the user for that permission in a way that is allowed by the App Store?
Im creating a small menubar app and my current (rejected) solution is to create a pop-up, with link to Security & Privacy > Accessibility and the pop-up asks the user to manually add the app to the list and check the checkbox. This works in sandbox.
Reason for rejection:
"Specifically, your app requires to grant accessibility access, but once we opened the accessibility settings, your app was not listed."
I know it's not listed there and it has to be added manually. But its the only solution I've found to this issue. Is there perhaps any way to add the app there programmatically?
Im a bit confused since I've seen other apps in App Store that work the same way, where you have to add the app to the list manually. Eg. Flycut. :man-shrugging:
I know about this alternative solution, and it's not allowed in sandboxed apps. It also adds the app to the accessibility list automagically:
func getPermission() {
AXIsProcessTrustedWithOptions([kAXTrustedCheckOptionPrompt.takeUnretainedValue():true] as CFDictionary).
}
Does anyone have a solution for this?
Best regards,
Daniel
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
Mac App Store
App Sandbox
Privacy
Accessibility
Dear Apple Support,
We are encountering an issue with deep linking on iOS 26 when using Safari and App Store redirection. Below are the detailed steps to reproduce the problem:
The app is not installed on the device.
User clicks on a Branch link:
For example:- https://qewed.app.link/99u88ef9f?uuid=88dbwh5ubd4b
Safari opens and displays the fallback page.
User taps on “Get the App”, which navigates to the App Store.
User installs and opens the app.
Expected Behavior:
The app should receive the Branch link parameters (in this case, uuid=88dbwh5ubd4b) upon first open.
Actual Behavior:
The app opens successfully, but the uuid parameter is not passed to the app.
This issue seems specific to the Safari → App Store → App flow on iOS 26, as other flows behave correctly.
Could you please advise whether this is a known issue or if there are recommended adjustments on our side to ensure parameters are consistently delivered after App Store redirection?
Note: We are using Branch SDK version 3.11.0 (Cocoapods dependency)
Thank you for your assistance.