App Store Connect

RSS for tag

App Store Connect is a suite of tools for submitting and managing your apps and in-app purchases on the App Store.

Posts under App Store Connect tag

200 Posts

Post

Replies

Boosts

Views

Activity

Unable to Download App Version Information in Xcode Organizer Despite Admin Privileges. (from Reports Hangs, Launches, Disk Writes)
I am writing to report a critical issue with the Xcode Organizer. It is failing to download App Version Information from App Store Connect, which prevents our team from accessing vital performance reports like disk writes, hangs, and launches. Other features such as Crashes, Metric's items work fine. When I open the "Reports" tab in the Xcode Organizer, it consistently shows the following error: Xcode failed to load builds for "{Service}". "{Account}" failed with error: No Versions. [Important Context] What is particularly concerning is that this functionality used to work correctly. We were able to see build versions and access their reports up until a certain build in the past. However, at some point, this stopped working, and now no versions are loaded. Given that I am an Admin and this feature was previously working, the issue does not appear to be a simple permissions problem. It seems a change has occurred, either on the server-side or in how Xcode interacts with our app's record on App Store Connect. Could you please help us understand: What might have caused this sudden change that prevents build versions from being loaded? What steps can we take to resolve this "No Versions" error and restore access to our performance reports? Thank you for your investigation into this matter.
2
0
371
Aug ’25
[StoreKit1] IAP Works in TestFlight but Fails During App Review (2.1 Rejection)
Hello Apple Developer Team, We're experiencing consistent IAP approval rejections under Guideline 2.1, despite successful TestFlight verification. Here's our detailed situation: Environment StoreKit 1 implementation Tested on iOS 18.5 or 18.6 devices Sandbox environment works perfectly Verification Steps Taken ✅ Confirmed all Product IDs match App Store Connect exactly ✅ Validated 10+ successful TestFlight transactions (attached screenshot samples) ✅ Verified banking/tax agreements are active Objective-C Code (StoreKit1 Implementation) - (void)buyProductId:(NSString *)pid AndSetGameOrderID:(NSString *)orderID{ if([SKPaymentQueue canMakePayments]){ if (!hasAddObserver) { [[SKPaymentQueue defaultQueue] addTransactionObserver:_neo]; hasAddObserver = YES; } self.neoOrderID = orderID; [[NSUserDefaults standardUserDefaults] setValue:orderID forKey:Pay_OrderId_Key]; self.productID = pid; NSArray * product = [[NSArray alloc]initWithObjects:self.productID, nil]; NSSet * nsset = [NSSet setWithArray:product]; SKProductsRequest * request = [[SKProductsRequest alloc]initWithProductIdentifiers:nsset]; request.delegate = self; [request start]; }else{ NSString * Err = @"Pembelian tidak diizinkan. Silakan aktifkan perizinan di pengaturan"; // UnitySendMessage("GameManager", "IAPPurchaseFailed", [Err UTF8String]); return; } } - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { NSArray * product = response.products; if ([product count] == 0) { [[SKPaymentQueue defaultQueue]removeTransactionObserver:_neo]; hasAddObserver = NO; NSString * Err = [NSString stringWithFormat:@"Err = 01, Item tidak ditemukan %@",self.productID]; // UnitySendMessage("GameManager", "IAPPurchaseFailed", [Err UTF8String]); return; } SKProduct * p = nil; for (SKProduct * pro in product) { if ([pro.productIdentifier isEqualToString:self.productID]){ p = pro; }else{ [request cancel]; [[SKPaymentQueue defaultQueue]removeTransactionObserver:_neo]; hasAddObserver = NO; NSString * Err = [NSString stringWithFormat:@"Err = 02, %@",self.productID]; // UnitySendMessage("GameManager", "IAPPurchaseFailed", [Err UTF8String]); return; } } SKMutablePayment * mPayment = [SKMutablePayment paymentWithProduct:p]; mPayment.applicationUsername = [NSString stringWithFormat:@"%@",self.neoOrderID]; if(!hasAddObserver){ [[SKPaymentQueue defaultQueue] addTransactionObserver:_neo]; hasAddObserver = YES; } [[SKPaymentQueue defaultQueue] addPayment:mPayment]; } - (void)request:(SKRequest *)request didFailWithError:(NSError *)error{ [[SKPaymentQueue defaultQueue]removeTransactionObserver:_neo]; hasAddObserver = NO; NSString * Err = [NSString stringWithFormat:@"Err = 0%ld %@", (long)error.code, self.productID]; // UnitySendMessage("GameManager", "IAPPurchaseFailed", [Err UTF8String]); } - (void)requestDidFinish:(SKRequest *)request{ } - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transaction{ for(SKPaymentTransaction *tran in transaction){ if (SKPaymentTransactionStatePurchased == tran.transactionState){ [self completeTransaction:tran]; }else if(SKPaymentTransactionStateFailed == tran.transactionState){ [self failedTransaction:tran]; } } } - (void)failedTransaction: (SKPaymentTransaction *)transaction { NSString * detail = [NSString stringWithFormat:@"%ld",(long)transaction.error.code]; // UnitySendMessage("GameManager", "IAPPurchaseFailed", [detail UTF8String]); [[SKPaymentQueue defaultQueue]removeTransactionObserver:_neo]; hasAddObserver = NO; [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; } - (void)completeTransaction:(SKPaymentTransaction *)transaction{ NSMutableDictionary * mdic = [NSMutableDictionary dictionary]; NSString * productIdentifier = transaction.payment.productIdentifier; NSData * _recep = nil; NSString * _receipt = @""; if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { _recep = transaction.transactionReceipt; _receipt = [[NSString alloc]initWithData:_recep encoding:NSUTF8StringEncoding]; } else { _recep = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]; _receipt = [_recep base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]; } NSString * gameOrderid = [transaction payment].applicationUsername; if (gameOrderid == nil) { gameOrderid = [[NSUserDefaults standardUserDefaults] objectForKey:Pay_OrderId_Key]; } if(_receipt != nil && gameOrderid != nil){ mdic[@"orderid"] = gameOrderid; mdic[@"productid"] = productIdentifier; mdic[@"receipt"] = _receipt; }else{ [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; return; } NSData * data = [NSJSONSerialization dataWithJSONObject:mdic options:kNilOptions error:nil]; NSString * jsonString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; if (hasAddObserver) { [[SKPaymentQueue defaultQueue] removeTransactionObserver:_neo]; hasAddObserver = NO; } // UnitySendMessage("GameManager", "IAPPurchaseSuecess", [jsonString UTF8String]); [self verifyReceipt:_recep completion:^(BOOL success, NSDictionary *response) { if (success) { NSLog(@"verify success"); // [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; [self verifySuecessDelTransactions]; } }]; } - (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue { for(SKPaymentTransaction *tran in queue.transactions){ if (SKPaymentTransactionStatePurchased == tran.transactionState){ [self completeTransaction:tran]; } } } - (void)verifySuecessDelTransactions{ SKPaymentQueue *paymentQueue = [SKPaymentQueue defaultQueue]; NSArray<SKPaymentTransaction *> *transactions = paymentQueue.transactions; if (transactions.count == 0) { return; } for (SKPaymentTransaction *transaction in transactions) { if (transaction.transactionState == SKPaymentTransactionStatePurchased || transaction.transactionState == SKPaymentTransactionStateRestored) { [paymentQueue finishTransaction:transaction]; } } }
1
0
175
Aug ’25
Subscription Stuck as "Missing Metadata"
Hello, We're experiencing an issue where our app’s in-app subscriptions are flagged as “Missing Metadata” in App Store Connect. After contacting Apple Developer Support over the phone, we've been informed two seperate times by two different support agents that this is because we don't have a screenshot associated with either subscription (we have a monthly and yearly option). While I can continue to see in App Store Connect that a screenshot is present, Apple Developer Support informed us that no screenshot associated with either subcription. Even after deleting and reuploading, we validated this issue persists. When talking with App Review, they provided this answer multiple times: Guideline 2.1 - Performance - App Completeness 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. Specifically, the app includes references to Radar Pro but the associated in-app purchase products have not been submitted for review. Next Steps To resolve this issue, please be sure to take action and submit your in-app purchases and upload a new binary in App Store Connect so we can proceed with our review. Note you must provide an App Review screenshot in App Store Connect in order to submit in-app purchases for review. Learn more about required in-app purchase metadata. This does not resolve this issue as changing the version from 1.0 to something else still does not present any additional UI to associated our subscriptions with our app in the main view or submission confirmation view. Per Apple guidelines in the "Subscriptions" tab: Your first subscription must be submitted with a new app version. Create your subscription, then select it from the app’s In-App Purchases and Subscriptions section on the version page before submitting the version to App Review. Once your binary has been uploaded and your first subscription has been submitted for review, additional subscriptions can be submitted from the Subscriptions section. Learn More Apple Developer Support recommended this is the best option for us to continue forward since they don't offer technical support. Any help resolving this issue would be greatly appreciated as it’s the only issue blocking re-review of our app. Thanks in advance.
1
4
386
Aug ’25
Unable to Authenticate with App Store Server API in Production (401 Error)
Our application is currently under review, and we are still facing issues because we receive a 401 Unauthorized response from the App Store Connect API when using the production environment. Our app integrates with Chargebee for subscription management, and in production, Chargebee is unable to authenticate with the App Store Server API. This results in a 401 Unauthorized error, preventing the user’s subscription from being synced correctly into our system. Interestingly, the same configuration works in the sandbox environment, but fails in production. We’ve tried authenticating using JWTs generated from multiple keys (including App Store Connect API / Team Keys with both Admin and App Manager access, and also In-App Purchase keys), all with the same result — sandbox access works, production does not. Here is our example code for testing with JWT token: const jwt = require('jsonwebtoken'); const fs = require('fs'); const https = require('https'); const config = { keyId: '<key_id>', issuerId: 'issuer_id', bundleId: 'bundle_id', privateKey: fs.readFileSync('path_to_key') }; const { keyId, issuerId, bundleId, privateKey } = config; const now = Math.floor(Date.now() / 1000); const jwtToken = jwt.sign( { iss: issuerId, iat: now, exp: now + 60 * 10, // 10 minutes is fine for test aud: 'appstoreconnect-v1', bid: bundleId }, privateKey, { algorithm: 'ES256', header: { alg: 'ES256', kid: keyId, typ: 'JWT' } } ); console.log('Generated JWT:\n', jwtToken); // prod const originalTransactionId = '<prod_transaction_id>'; const hostname = 'api.storekit.itunes.apple.com'; // sandbox // const originalTransactionId = '<sandbox_transaction_id>'; // const hostname = 'api.storekit-sandbox.itunes.apple.com' const options = { hostname, port: 443, path: `/inApps/v1/history/${originalTransactionId}`, method: 'GET', headers: { Authorization: `Bearer ${jwtToken}`, 'Content-Type': 'application/json', }, }; const callAppStoreConnectApi = async () => { const req = https.request(options, (res) => { console.log(`\nStatus Code: ${res.statusCode}`); let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { console.log('Response Body:\n', data || '[Empty]'); }); }); req.on('error', (e) => { console.error('Request Error:', e); }); req.end(); }; callAppStoreConnectApi(); With this code, we were able to authenticate successfully in the sandbox environment, but not in production. I read in this discussion: https://developer.apple.com/forums/thread/711801 that the issue was resolved once the app was published to the App Store, but I haven’t found any official documentation confirming this. Does anyone know what the issue could be?
3
2
444
Oct ’25
Can I Release an iPhone-Only Update for a Universal App with Active Subscriptions?
Our app is currently live on the App Store as a universal app (iPhone + iPad) and supports a subscription model — meaning users with an active subscription can access the app on both devices. We recently redesigned the iPhone UI and would like to push an iPhone-only update, without affecting the existing iPad experience (which remains unchanged). The goal is to prevent iPad users from receiving the new update, while iPhone users get the latest UI enhancements. Questions: Is it possible to release an update that targets only iPhone devices while keeping the current version available for iPad? If yes, what are the proper deployment or App Store Connect configurations required to achieve this? Any guidance or clarification would be greatly appreciated. Thanks in advance!
0
0
105
Aug ’25
StoreKit 2 Sandbox Testing - Product not found
Hi, I've been unable to successfully test in the sandbox environment for a StoreKit 2 subscription group and can't seem to find the missing piece. I am calling the following line of code: let products = try await Product.products(for: [subscriptionID]) Expected behavior: The product is returned in the products array. Actual result: The array is empty I have done the following: Successfully tested our logic using a storekit configuration file locally in Xcode. Created the Subscription group in App Store Connect. The subscription product is currently "Waiting for Review", but it is our first so will not be approved without being attached to a distribution build review. Created a Sandbox user account in App Store Connect -> Users -> Sandbox Signed into the sandbox user account in Settings -> Developer -> Sandbox Apple Account Signed the Paid Apps Agreement for our organization A few debugging notes: I deleted all apps before installing from Xcode I've tried both locally and in TestFlight builds Restarted my device Verified productID matches the productID in App Store Connect I'm not sure if I'm missing something, but any help would be appreciated. Thanks
1
0
145
Aug ’25
App Store Rejection: "AppTrackingTransparency permission request not found" — But ATT Completely Removed
Hi everyone, I'm facing a frustrating App Store rejection that I can't seem to resolve. My app was rejected under Guideline 2.1 - Information Needed with the following message: "The app uses the AppTrackingTransparency framework, but we are unable to locate the App Tracking Transparency permission request when reviewed on iPadOS 18.5." However, in my latest version (2.9 Build 18), I have: Removed all SDKs that collect IDFA or perform tracking. Removed the AppTrackingTransparency framework entirely. Removed the NSUserTrackingUsageDescription key from Info.plist. Confirmed that no third-party SDKs are accessing IDFA or similar. Not using the app_tracking_transparency package (I'm using Flutter). I included a detailed review note explaining all of this, yet the app still gets rejected for not showing the ATT prompt — even though ATT is not used at all. Also, I can't update the App Privacy section until this new version is approved, which still reflects tracking from a previous live version (2.3). Has anyone faced something similar? Questions: Is there a way to confirm what part of the build might still be triggering ATT detection on Apple's side? Could an unused pod or leftover reference be the issue? How do I fully verify that ATT is not linked anywhere in the final binary? Any guidance or tips from others who’ve resolved this would be hugely appreciated! Thanks
1
1
427
Aug ’25
[Urgent] No Response from App Review Team – Need Help Verifying Appeal Submission
Hello, We are currently facing an issue where our app was removed from the App Store due to an alleged policy violation. We submitted an appeal on July 25, 2025, but we have not received any confirmation, response, or update since then. This prolonged silence has seriously impacted our operations and caused numerous user complaints and negative feedback. We would appreciate any guidance on: How to verify whether our appeal has been received and is under review. How to escalate the case to get timely attention from the App Review Team. We are fully committed to cooperating with Apple and making any necessary adjustments to comply with guidelines. Thank you very much for any assistance or advice.
2
0
94
Aug ’25
Can't attach In-App Purchase to Version
I just created my first in-app purchase. I got this message: Your first in-app purchase must be submitted with a new app version. Create your in-app purchase, then select it from the app’s In-App Purchases and Subscriptions section on the version page before submitting the version to App Review. Once your binary has been uploaded and your first-in app purchase has been submitted for review, additional in-app purchases can be submitted from the In-App Purchases section. Learn More However when I go to the new version of the app I am preparing to send for review. There is NO section to attach the in app purchase to that version. Its supposed to be underneath the screenshots and such but its not there no matter what
1
0
114
Aug ’25
Submit iOS App for another Developer Program Account
Hi all - I used to run a development studio, but shut down around ~8 years ago. Since then, I've kept a personal $99/year Individual developer account to access documentation, apps, etc, as I still work in the mobile iOS development space, just for corporate projects. I have a friend who has an app that was built years back, but was removed from the store ~2-3 years ago due to just letting account lapse. He's asked me to help him get it back on the App Store, with some updates, etc. His account is an Individuals or sole proprietors/single-person businesses account as well. He granted me Admin access on his account, but I can't see or select his team in Xcode when handling automatic code signing in order to upload to App Store Connect. He's not a developer, and he lives several states/hours away. We worked remotely and I was able to get a development certificate and provisioning profile that I walked through setting up with him, that he exported and sent over to me. However, when I compile a build this way, Xcode won't allow upload because I am not logged in to his developer account. Outside of him giving me his personal account password, which isn't advisable and I would be reluctant to ask him for, is there a way I can submit this app for him up to App Store Connect?
3
0
220
Aug ’25
subscriptions before submitting a review
We distribute apps that offer auto-renewing subscriptions. In order to test a new service, we would like to create a new subscription group and subscription product (hereinafter referred to as “test subscription”) for this app. If the “In-app purchase statuses” of the test subscription is “Ready to Submit” is the following behavior correct? ・General end users cannot purchase the test subscription. ・Users with SANDBOX Apple accounts can purchase the test subscription.
1
0
107
Aug ’25
Apple 403 detected - Access forbidden
Requesting your assistance with the error shown in the screenshot below. Our team hit this snag in our first attempt to get a build out. X Failed to register bundle identifier com.fourleaf.clara Apple 403 detected - Access forbidden. This request is forbidden for security reasons - You currently don't have access to this membership resource. Contact your team's Account Holder, Alyssa L*****, or an Admin. Error: build command failed. Our initial thought was that the Apple account admin (Alyssa) needed to log in to https://developer.apple.com/account and accept the latest Terms Of Services. Alyssa logged in, but does not have any agreements awaiting acceptance. The last agreement issued -- she approved on 6/10. Screenshot also attached below. Can you please advise us as to how to resolve this build error and issue?
0
1
229
Aug ’25
App rejected by App Store Connect with ITMS-90714: Invalid binary
Hi, I am on Mac OS Sequoia 15.5, XCode 16.4 (16F6) Uploading via XCode or Transporter is successful, then binary gets refused by App Store Connect. I have tried: Removing all Other Linker Flags except -ld64 as the app cannot be generated without ld64. My original Other Linker Flags: -all_load -w -Xlinker -no_objc_category_merging -ld64 2. Running xcrun dyld_info -objc Payload/YourApp.app/YourApp | grep "(null)" return nothing. Please, advise what else can I do.
2
0
185
Aug ’25
Unroll app from macOS platform while keeping iOS in AppStore Connect
Hi AppStore Connect Team, We have an application that we were distributing to macOS and iOS via the same Bundle ID and App ID. The macOS platform is no longer maintained and we would like to remove it from the store. At the same time iOS is still being worked on, receiving regular updates. Is there a way to remove platform for an app in AppStore Connet? Thanks
0
0
150
Aug ’25
App Still in 'Waiting for Review' After 1 Month (Submitted 25/7/2025) – Need Help
My app has been stuck in "Waiting for Review" status since July 25, 2025 (24 days and counting), far exceeding Apple’s typical review timeline. Despite multiple checks, I’ve received no updates or communication from App Review. Is this delay related to a known system issue? How can I escalate this to Apple’s review team? (Email/phone options?) Are there hidden rejections or metadata problems not shown in App Store Connect? Hopefully get help. Best regards!
2
0
172
Sep ’25
Not being able to remove app from sale
Hello, I am trying to remove one of my apps from sale on the App Store, but I’m running into an error. I followed the steps provided by Apple Support: Go to My Apps in App Store Connect and select the app Open the Pricing and Availability tab Under the Availability section, click Edit Deselect all territories Press Done When I click Done/Confirm, I get this error: "Your app availability changes could not be saved. Try again later.” What I’ve tried: Different browsers and devices Multiple attempts on different days Contacted Apple Support via email multiple times (no response so far) Additional info: My Developer Program membership has expired (not sure if that is the cause). Screenshot of the error is attached. Has anyone else experienced this? Do I need to renew membership just to remove the app, or is there another way to resolve this? Thanks in advance!
0
0
104
Aug ’25
Unable to Remove App from Sale
Hello, I am trying to remove one of my apps from sale on the App Store, but I’m running into an error. I followed the steps provided by Apple Support: Go to My Apps → select app Open Pricing and Availability Under Availability, click Edit Deselect all territories Press Done/Confirm When I click Done/Confirm, I get this error: “Your app availability changes could not be saved. Try again later.” What I’ve tried: Different browsers and devices Multiple attempts on different days Contacted Apple Support via email multiple times (no response so far) Additional info: My Developer Program membership has expired (not sure if that is the cause). Screenshot of the error is attached. Has anyone else experienced this? Do I need to renew membership just to remove the app, or is there another way to resolve this? Thanks in advance!
0
0
116
Aug ’25
Unable to Download App Version Information in Xcode Organizer Despite Admin Privileges. (from Reports Hangs, Launches, Disk Writes)
I am writing to report a critical issue with the Xcode Organizer. It is failing to download App Version Information from App Store Connect, which prevents our team from accessing vital performance reports like disk writes, hangs, and launches. Other features such as Crashes, Metric's items work fine. When I open the "Reports" tab in the Xcode Organizer, it consistently shows the following error: Xcode failed to load builds for "{Service}". "{Account}" failed with error: No Versions. [Important Context] What is particularly concerning is that this functionality used to work correctly. We were able to see build versions and access their reports up until a certain build in the past. However, at some point, this stopped working, and now no versions are loaded. Given that I am an Admin and this feature was previously working, the issue does not appear to be a simple permissions problem. It seems a change has occurred, either on the server-side or in how Xcode interacts with our app's record on App Store Connect. Could you please help us understand: What might have caused this sudden change that prevents build versions from being loaded? What steps can we take to resolve this "No Versions" error and restore access to our performance reports? Thank you for your investigation into this matter.
Replies
2
Boosts
0
Views
371
Activity
Aug ’25
[StoreKit1] IAP Works in TestFlight but Fails During App Review (2.1 Rejection)
Hello Apple Developer Team, We're experiencing consistent IAP approval rejections under Guideline 2.1, despite successful TestFlight verification. Here's our detailed situation: Environment StoreKit 1 implementation Tested on iOS 18.5 or 18.6 devices Sandbox environment works perfectly Verification Steps Taken ✅ Confirmed all Product IDs match App Store Connect exactly ✅ Validated 10+ successful TestFlight transactions (attached screenshot samples) ✅ Verified banking/tax agreements are active Objective-C Code (StoreKit1 Implementation) - (void)buyProductId:(NSString *)pid AndSetGameOrderID:(NSString *)orderID{ if([SKPaymentQueue canMakePayments]){ if (!hasAddObserver) { [[SKPaymentQueue defaultQueue] addTransactionObserver:_neo]; hasAddObserver = YES; } self.neoOrderID = orderID; [[NSUserDefaults standardUserDefaults] setValue:orderID forKey:Pay_OrderId_Key]; self.productID = pid; NSArray * product = [[NSArray alloc]initWithObjects:self.productID, nil]; NSSet * nsset = [NSSet setWithArray:product]; SKProductsRequest * request = [[SKProductsRequest alloc]initWithProductIdentifiers:nsset]; request.delegate = self; [request start]; }else{ NSString * Err = @"Pembelian tidak diizinkan. Silakan aktifkan perizinan di pengaturan"; // UnitySendMessage("GameManager", "IAPPurchaseFailed", [Err UTF8String]); return; } } - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { NSArray * product = response.products; if ([product count] == 0) { [[SKPaymentQueue defaultQueue]removeTransactionObserver:_neo]; hasAddObserver = NO; NSString * Err = [NSString stringWithFormat:@"Err = 01, Item tidak ditemukan %@",self.productID]; // UnitySendMessage("GameManager", "IAPPurchaseFailed", [Err UTF8String]); return; } SKProduct * p = nil; for (SKProduct * pro in product) { if ([pro.productIdentifier isEqualToString:self.productID]){ p = pro; }else{ [request cancel]; [[SKPaymentQueue defaultQueue]removeTransactionObserver:_neo]; hasAddObserver = NO; NSString * Err = [NSString stringWithFormat:@"Err = 02, %@",self.productID]; // UnitySendMessage("GameManager", "IAPPurchaseFailed", [Err UTF8String]); return; } } SKMutablePayment * mPayment = [SKMutablePayment paymentWithProduct:p]; mPayment.applicationUsername = [NSString stringWithFormat:@"%@",self.neoOrderID]; if(!hasAddObserver){ [[SKPaymentQueue defaultQueue] addTransactionObserver:_neo]; hasAddObserver = YES; } [[SKPaymentQueue defaultQueue] addPayment:mPayment]; } - (void)request:(SKRequest *)request didFailWithError:(NSError *)error{ [[SKPaymentQueue defaultQueue]removeTransactionObserver:_neo]; hasAddObserver = NO; NSString * Err = [NSString stringWithFormat:@"Err = 0%ld %@", (long)error.code, self.productID]; // UnitySendMessage("GameManager", "IAPPurchaseFailed", [Err UTF8String]); } - (void)requestDidFinish:(SKRequest *)request{ } - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transaction{ for(SKPaymentTransaction *tran in transaction){ if (SKPaymentTransactionStatePurchased == tran.transactionState){ [self completeTransaction:tran]; }else if(SKPaymentTransactionStateFailed == tran.transactionState){ [self failedTransaction:tran]; } } } - (void)failedTransaction: (SKPaymentTransaction *)transaction { NSString * detail = [NSString stringWithFormat:@"%ld",(long)transaction.error.code]; // UnitySendMessage("GameManager", "IAPPurchaseFailed", [detail UTF8String]); [[SKPaymentQueue defaultQueue]removeTransactionObserver:_neo]; hasAddObserver = NO; [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; } - (void)completeTransaction:(SKPaymentTransaction *)transaction{ NSMutableDictionary * mdic = [NSMutableDictionary dictionary]; NSString * productIdentifier = transaction.payment.productIdentifier; NSData * _recep = nil; NSString * _receipt = @""; if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { _recep = transaction.transactionReceipt; _receipt = [[NSString alloc]initWithData:_recep encoding:NSUTF8StringEncoding]; } else { _recep = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]; _receipt = [_recep base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]; } NSString * gameOrderid = [transaction payment].applicationUsername; if (gameOrderid == nil) { gameOrderid = [[NSUserDefaults standardUserDefaults] objectForKey:Pay_OrderId_Key]; } if(_receipt != nil && gameOrderid != nil){ mdic[@"orderid"] = gameOrderid; mdic[@"productid"] = productIdentifier; mdic[@"receipt"] = _receipt; }else{ [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; return; } NSData * data = [NSJSONSerialization dataWithJSONObject:mdic options:kNilOptions error:nil]; NSString * jsonString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; if (hasAddObserver) { [[SKPaymentQueue defaultQueue] removeTransactionObserver:_neo]; hasAddObserver = NO; } // UnitySendMessage("GameManager", "IAPPurchaseSuecess", [jsonString UTF8String]); [self verifyReceipt:_recep completion:^(BOOL success, NSDictionary *response) { if (success) { NSLog(@"verify success"); // [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; [self verifySuecessDelTransactions]; } }]; } - (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue { for(SKPaymentTransaction *tran in queue.transactions){ if (SKPaymentTransactionStatePurchased == tran.transactionState){ [self completeTransaction:tran]; } } } - (void)verifySuecessDelTransactions{ SKPaymentQueue *paymentQueue = [SKPaymentQueue defaultQueue]; NSArray<SKPaymentTransaction *> *transactions = paymentQueue.transactions; if (transactions.count == 0) { return; } for (SKPaymentTransaction *transaction in transactions) { if (transaction.transactionState == SKPaymentTransactionStatePurchased || transaction.transactionState == SKPaymentTransactionStateRestored) { [paymentQueue finishTransaction:transaction]; } } }
Replies
1
Boosts
0
Views
175
Activity
Aug ’25
Subscription Stuck as "Missing Metadata"
Hello, We're experiencing an issue where our app’s in-app subscriptions are flagged as “Missing Metadata” in App Store Connect. After contacting Apple Developer Support over the phone, we've been informed two seperate times by two different support agents that this is because we don't have a screenshot associated with either subscription (we have a monthly and yearly option). While I can continue to see in App Store Connect that a screenshot is present, Apple Developer Support informed us that no screenshot associated with either subcription. Even after deleting and reuploading, we validated this issue persists. When talking with App Review, they provided this answer multiple times: Guideline 2.1 - Performance - App Completeness 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. Specifically, the app includes references to Radar Pro but the associated in-app purchase products have not been submitted for review. Next Steps To resolve this issue, please be sure to take action and submit your in-app purchases and upload a new binary in App Store Connect so we can proceed with our review. Note you must provide an App Review screenshot in App Store Connect in order to submit in-app purchases for review. Learn more about required in-app purchase metadata. This does not resolve this issue as changing the version from 1.0 to something else still does not present any additional UI to associated our subscriptions with our app in the main view or submission confirmation view. Per Apple guidelines in the "Subscriptions" tab: Your first subscription must be submitted with a new app version. Create your subscription, then select it from the app’s In-App Purchases and Subscriptions section on the version page before submitting the version to App Review. Once your binary has been uploaded and your first subscription has been submitted for review, additional subscriptions can be submitted from the Subscriptions section. Learn More Apple Developer Support recommended this is the best option for us to continue forward since they don't offer technical support. Any help resolving this issue would be greatly appreciated as it’s the only issue blocking re-review of our app. Thanks in advance.
Replies
1
Boosts
4
Views
386
Activity
Aug ’25
Unable to Authenticate with App Store Server API in Production (401 Error)
Our application is currently under review, and we are still facing issues because we receive a 401 Unauthorized response from the App Store Connect API when using the production environment. Our app integrates with Chargebee for subscription management, and in production, Chargebee is unable to authenticate with the App Store Server API. This results in a 401 Unauthorized error, preventing the user’s subscription from being synced correctly into our system. Interestingly, the same configuration works in the sandbox environment, but fails in production. We’ve tried authenticating using JWTs generated from multiple keys (including App Store Connect API / Team Keys with both Admin and App Manager access, and also In-App Purchase keys), all with the same result — sandbox access works, production does not. Here is our example code for testing with JWT token: const jwt = require('jsonwebtoken'); const fs = require('fs'); const https = require('https'); const config = { keyId: '<key_id>', issuerId: 'issuer_id', bundleId: 'bundle_id', privateKey: fs.readFileSync('path_to_key') }; const { keyId, issuerId, bundleId, privateKey } = config; const now = Math.floor(Date.now() / 1000); const jwtToken = jwt.sign( { iss: issuerId, iat: now, exp: now + 60 * 10, // 10 minutes is fine for test aud: 'appstoreconnect-v1', bid: bundleId }, privateKey, { algorithm: 'ES256', header: { alg: 'ES256', kid: keyId, typ: 'JWT' } } ); console.log('Generated JWT:\n', jwtToken); // prod const originalTransactionId = '<prod_transaction_id>'; const hostname = 'api.storekit.itunes.apple.com'; // sandbox // const originalTransactionId = '<sandbox_transaction_id>'; // const hostname = 'api.storekit-sandbox.itunes.apple.com' const options = { hostname, port: 443, path: `/inApps/v1/history/${originalTransactionId}`, method: 'GET', headers: { Authorization: `Bearer ${jwtToken}`, 'Content-Type': 'application/json', }, }; const callAppStoreConnectApi = async () => { const req = https.request(options, (res) => { console.log(`\nStatus Code: ${res.statusCode}`); let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { console.log('Response Body:\n', data || '[Empty]'); }); }); req.on('error', (e) => { console.error('Request Error:', e); }); req.end(); }; callAppStoreConnectApi(); With this code, we were able to authenticate successfully in the sandbox environment, but not in production. I read in this discussion: https://developer.apple.com/forums/thread/711801 that the issue was resolved once the app was published to the App Store, but I haven’t found any official documentation confirming this. Does anyone know what the issue could be?
Replies
3
Boosts
2
Views
444
Activity
Oct ’25
Can I Release an iPhone-Only Update for a Universal App with Active Subscriptions?
Our app is currently live on the App Store as a universal app (iPhone + iPad) and supports a subscription model — meaning users with an active subscription can access the app on both devices. We recently redesigned the iPhone UI and would like to push an iPhone-only update, without affecting the existing iPad experience (which remains unchanged). The goal is to prevent iPad users from receiving the new update, while iPhone users get the latest UI enhancements. Questions: Is it possible to release an update that targets only iPhone devices while keeping the current version available for iPad? If yes, what are the proper deployment or App Store Connect configurations required to achieve this? Any guidance or clarification would be greatly appreciated. Thanks in advance!
Replies
0
Boosts
0
Views
105
Activity
Aug ’25
StoreKit 2 Sandbox Testing - Product not found
Hi, I've been unable to successfully test in the sandbox environment for a StoreKit 2 subscription group and can't seem to find the missing piece. I am calling the following line of code: let products = try await Product.products(for: [subscriptionID]) Expected behavior: The product is returned in the products array. Actual result: The array is empty I have done the following: Successfully tested our logic using a storekit configuration file locally in Xcode. Created the Subscription group in App Store Connect. The subscription product is currently "Waiting for Review", but it is our first so will not be approved without being attached to a distribution build review. Created a Sandbox user account in App Store Connect -> Users -> Sandbox Signed into the sandbox user account in Settings -> Developer -> Sandbox Apple Account Signed the Paid Apps Agreement for our organization A few debugging notes: I deleted all apps before installing from Xcode I've tried both locally and in TestFlight builds Restarted my device Verified productID matches the productID in App Store Connect I'm not sure if I'm missing something, but any help would be appreciated. Thanks
Replies
1
Boosts
0
Views
145
Activity
Aug ’25
App Store Rejection: "AppTrackingTransparency permission request not found" — But ATT Completely Removed
Hi everyone, I'm facing a frustrating App Store rejection that I can't seem to resolve. My app was rejected under Guideline 2.1 - Information Needed with the following message: "The app uses the AppTrackingTransparency framework, but we are unable to locate the App Tracking Transparency permission request when reviewed on iPadOS 18.5." However, in my latest version (2.9 Build 18), I have: Removed all SDKs that collect IDFA or perform tracking. Removed the AppTrackingTransparency framework entirely. Removed the NSUserTrackingUsageDescription key from Info.plist. Confirmed that no third-party SDKs are accessing IDFA or similar. Not using the app_tracking_transparency package (I'm using Flutter). I included a detailed review note explaining all of this, yet the app still gets rejected for not showing the ATT prompt — even though ATT is not used at all. Also, I can't update the App Privacy section until this new version is approved, which still reflects tracking from a previous live version (2.3). Has anyone faced something similar? Questions: Is there a way to confirm what part of the build might still be triggering ATT detection on Apple's side? Could an unused pod or leftover reference be the issue? How do I fully verify that ATT is not linked anywhere in the final binary? Any guidance or tips from others who’ve resolved this would be hugely appreciated! Thanks
Replies
1
Boosts
1
Views
427
Activity
Aug ’25
[Urgent] No Response from App Review Team – Need Help Verifying Appeal Submission
Hello, We are currently facing an issue where our app was removed from the App Store due to an alleged policy violation. We submitted an appeal on July 25, 2025, but we have not received any confirmation, response, or update since then. This prolonged silence has seriously impacted our operations and caused numerous user complaints and negative feedback. We would appreciate any guidance on: How to verify whether our appeal has been received and is under review. How to escalate the case to get timely attention from the App Review Team. We are fully committed to cooperating with Apple and making any necessary adjustments to comply with guidelines. Thank you very much for any assistance or advice.
Replies
2
Boosts
0
Views
94
Activity
Aug ’25
Can't attach In-App Purchase to Version
I just created my first in-app purchase. I got this message: Your first in-app purchase must be submitted with a new app version. Create your in-app purchase, then select it from the app’s In-App Purchases and Subscriptions section on the version page before submitting the version to App Review. Once your binary has been uploaded and your first-in app purchase has been submitted for review, additional in-app purchases can be submitted from the In-App Purchases section. Learn More However when I go to the new version of the app I am preparing to send for review. There is NO section to attach the in app purchase to that version. Its supposed to be underneath the screenshots and such but its not there no matter what
Replies
1
Boosts
0
Views
114
Activity
Aug ’25
Submit iOS App for another Developer Program Account
Hi all - I used to run a development studio, but shut down around ~8 years ago. Since then, I've kept a personal $99/year Individual developer account to access documentation, apps, etc, as I still work in the mobile iOS development space, just for corporate projects. I have a friend who has an app that was built years back, but was removed from the store ~2-3 years ago due to just letting account lapse. He's asked me to help him get it back on the App Store, with some updates, etc. His account is an Individuals or sole proprietors/single-person businesses account as well. He granted me Admin access on his account, but I can't see or select his team in Xcode when handling automatic code signing in order to upload to App Store Connect. He's not a developer, and he lives several states/hours away. We worked remotely and I was able to get a development certificate and provisioning profile that I walked through setting up with him, that he exported and sent over to me. However, when I compile a build this way, Xcode won't allow upload because I am not logged in to his developer account. Outside of him giving me his personal account password, which isn't advisable and I would be reluctant to ask him for, is there a way I can submit this app for him up to App Store Connect?
Replies
3
Boosts
0
Views
220
Activity
Aug ’25
subscriptions before submitting a review
We distribute apps that offer auto-renewing subscriptions. In order to test a new service, we would like to create a new subscription group and subscription product (hereinafter referred to as “test subscription”) for this app. If the “In-app purchase statuses” of the test subscription is “Ready to Submit” is the following behavior correct? ・General end users cannot purchase the test subscription. ・Users with SANDBOX Apple accounts can purchase the test subscription.
Replies
1
Boosts
0
Views
107
Activity
Aug ’25
Any recommendations for ASO tools for iOS apps?
Requesting you all any recommendations for iOS ASO tools covering keyword research, metadata optimisation, competitor tracking, and A/B testing.
Replies
2
Boosts
1
Views
182
Activity
Jan ’26
Apple 403 detected - Access forbidden
Requesting your assistance with the error shown in the screenshot below. Our team hit this snag in our first attempt to get a build out. X Failed to register bundle identifier com.fourleaf.clara Apple 403 detected - Access forbidden. This request is forbidden for security reasons - You currently don't have access to this membership resource. Contact your team's Account Holder, Alyssa L*****, or an Admin. Error: build command failed. Our initial thought was that the Apple account admin (Alyssa) needed to log in to https://developer.apple.com/account and accept the latest Terms Of Services. Alyssa logged in, but does not have any agreements awaiting acceptance. The last agreement issued -- she approved on 6/10. Screenshot also attached below. Can you please advise us as to how to resolve this build error and issue?
Replies
0
Boosts
1
Views
229
Activity
Aug ’25
Juicy Defend - Fruit vs Robot app "waiting for review" for +6 days
Hello, My app Juicy Defend - Fruit vs Robot has been "waiting for review" for +6 days. I want to know if this hold up is because of something I need to do on my end or if this is normal. Thank you! Khoa
Replies
2
Boosts
0
Views
120
Activity
Aug ’25
App rejected by App Store Connect with ITMS-90714: Invalid binary
Hi, I am on Mac OS Sequoia 15.5, XCode 16.4 (16F6) Uploading via XCode or Transporter is successful, then binary gets refused by App Store Connect. I have tried: Removing all Other Linker Flags except -ld64 as the app cannot be generated without ld64. My original Other Linker Flags: -all_load -w -Xlinker -no_objc_category_merging -ld64 2. Running xcrun dyld_info -objc Payload/YourApp.app/YourApp | grep "(null)" return nothing. Please, advise what else can I do.
Replies
2
Boosts
0
Views
185
Activity
Aug ’25
Unroll app from macOS platform while keeping iOS in AppStore Connect
Hi AppStore Connect Team, We have an application that we were distributing to macOS and iOS via the same Bundle ID and App ID. The macOS platform is no longer maintained and we would like to remove it from the store. At the same time iOS is still being worked on, receiving regular updates. Is there a way to remove platform for an app in AppStore Connet? Thanks
Replies
0
Boosts
0
Views
150
Activity
Aug ’25
App Still in 'Waiting for Review' After 1 Month (Submitted 25/7/2025) – Need Help
My app has been stuck in "Waiting for Review" status since July 25, 2025 (24 days and counting), far exceeding Apple’s typical review timeline. Despite multiple checks, I’ve received no updates or communication from App Review. Is this delay related to a known system issue? How can I escalate this to Apple’s review team? (Email/phone options?) Are there hidden rejections or metadata problems not shown in App Store Connect? Hopefully get help. Best regards!
Replies
2
Boosts
0
Views
172
Activity
Sep ’25
Not being able to remove app from sale
Hello, I am trying to remove one of my apps from sale on the App Store, but I’m running into an error. I followed the steps provided by Apple Support: Go to My Apps in App Store Connect and select the app Open the Pricing and Availability tab Under the Availability section, click Edit Deselect all territories Press Done When I click Done/Confirm, I get this error: "Your app availability changes could not be saved. Try again later.” What I’ve tried: Different browsers and devices Multiple attempts on different days Contacted Apple Support via email multiple times (no response so far) Additional info: My Developer Program membership has expired (not sure if that is the cause). Screenshot of the error is attached. Has anyone else experienced this? Do I need to renew membership just to remove the app, or is there another way to resolve this? Thanks in advance!
Replies
0
Boosts
0
Views
104
Activity
Aug ’25
Are You Facing These ASO Struggles as an Indie iOS Developer?
As an indie iOS dev, ASO often feels frustrating and unpredictable. Any proven tips, or is it just a grind we all face.
Replies
2
Boosts
0
Views
198
Activity
Jan ’26
Unable to Remove App from Sale
Hello, I am trying to remove one of my apps from sale on the App Store, but I’m running into an error. I followed the steps provided by Apple Support: Go to My Apps → select app Open Pricing and Availability Under Availability, click Edit Deselect all territories Press Done/Confirm When I click Done/Confirm, I get this error: “Your app availability changes could not be saved. Try again later.” What I’ve tried: Different browsers and devices Multiple attempts on different days Contacted Apple Support via email multiple times (no response so far) Additional info: My Developer Program membership has expired (not sure if that is the cause). Screenshot of the error is attached. Has anyone else experienced this? Do I need to renew membership just to remove the app, or is there another way to resolve this? Thanks in advance!
Replies
0
Boosts
0
Views
116
Activity
Aug ’25