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

Waiting for review
I'm having trouble with the app review process. My app has been in "Pending Review" status for almost 30 days, when normally it would be completed within 12 hours. We have a big launch event coming up, and this delay is significantly impacting our plans. I recently deleted my old review request and resubmitted it and it's still in Waiting for review status I need help Has anyone else experienced similar delays recently? Any advice on how to speed up the process or report the issue to Apple would be appreciated.
1
0
38
11h
Age verification implementation in IOS Apps
Hi Team, We are planning to implement the age verification logic in our iOS app and our app rating in AppstoreCoonnect is 16+. Our app is like eComm Application. Our customer can login into our application and order the products. Now we want to introduce the Age verification logic when user tries to purchase products from App. Could you suggest which API we should use to adhere the Age verification in our Application?
1
0
163
13h
Declared Age Range: How to support age verification on iOS < 26?
Hello, we get in touch as we need some guidance from Apple regarding age verification for minors in our app. Our app supports iOS 17 and above. The Declared Age Range API is available only starting on iOS 26, but we must comply with legal requirements (e.g., Texas SB 2420) and ensure that minor users cannot access certain sections of the app, regardless of the version of the operating system. Our question: What is the correct and Apple-approved approach for handling age verification and restricting access for minor users on iOS versions prior to 26, given that the Declared Age Range API is not available on those systems? We want to ensure that our implementation aligns with the regulations, the App Store Review Guidelines and platform expectations.
1
1
94
13h
Payments paused
I got this email from Apple "Due to the discontinuation of content associated with your vendor number x, your payments have been paused. We will continue to monitor this account and release your payments once customer refunds have been settled." Does anyone know what happened? I didn't discontinue any content.
1
0
237
15h
DeclaredAgeRange framework new cases and properties cause runtime crash with missing symbol
I'm making a wrapper library to abstract away some of the 'missing platform support' of DeclaredAgeRange until hopefully it expands to additional platforms. When I'm trying to fully enumerate all of the cases of AgeRangeDeclaration, which they all state available starting 26.0 (mysteriously added in Xcode 26.2 beta), the app crashes due to a missing symbol at launch time. This happens both for Xcode 26.1, 26.2 beta 2, and matching Xcode Cloud builds. So I've isolated it beyond "doesn't work on my machine". I just made a handful of crashes and attached a sysdiagnose to a fresh feedback. FB21121092 - DeclaredAgeRange: Eligibility property and new declaration cases unavailable on iOS 26.1 device contradicting documentation - causes runtime symbol not found crash If anyone is curious what these crashes look like I've attached the DiagnosticPayload.jsonRepresentation() generated from one of my favorite frameworks, MetricKit. Very clearly articulated in the diagnostic metadata you can see the symbol not found. "diagnosticMetaData" : { "platformArchitecture" : "arm64e", "terminationReason" : "Symbol not found: _$s16DeclaredAgeRange0bC7ServiceV0bC11DeclarationO14paymentCheckedyA2EmFWC\nReferenced from: <1894EDCB-3263-3604-8938-97D465FF3720> \/Volumes\/VOLUME\/*\/PerformanceOrganizer.app\/PerformanceOrganizer\nExpected in: <B8FD2C23-0CC9-3D94-902D-875900307A7A> \/System\/Library\/Frameworks\/DeclaredAgeRange.framework\/DeclaredAgeRange", "exceptionType" : 10, "appBuildVersion" : "745", "isTestFlightApp" : true, "osVersion" : "iPhone OS 26.1 (23B85)", "bundleIdentifier" : "dev.twincitiesapp.performanceorganizer", "deviceType" : "iPhone18,1", "exceptionCode" : 0, "signal" : 6, "regionFormat" : "US", "appVersion" : "2.0.0", "pid" : 22987, "lowPowerModeEnabled" : false } DiagnosticPayload.json This is the offending code in a type I control and make available on other platforms but leave unused. extension AgeRangeDeclaration { // A factory or initializer that takes the AgeRangeService.AgeRangeDeclaration and maps to the common AgeRangeDeclaration type public init?(platform value: AgeRangeService.AgeRangeDeclaration?) { guard let value else { return nil } switch value { // Xcode 26.1 visible cases case .selfDeclared: self = .selfDeclared case .guardianDeclared: self = .guardianDeclared // Xcode 26.2 visible cases // This is the first culprit, all of the following symbols would crash, this is just the first case .checkedByOtherMethod: self = .checkedByOtherMethod case .guardianCheckedByOtherMethod: self = .guardianCheckedByOtherMethod case .governmentIDChecked: self = .governmentIDChecked case .guardianGovernmentIDChecked: self = .guardianGovernmentIDChecked case .paymentChecked: self = .paymentChecked case .guardianPaymentChecked: self = .guardianPaymentChecked @unknown default: // Apple added new cases in Xcode 26.2 betas that were available in iOS 26.0, // so it is probable that this could happen again. If it does, assert to let developers // bring it to my attention. assertionFailure("Invalid or out of date knowledge of age range declaration \(value)") self = .unknown } } } For what it is worth, the same is also true for isEligibleForAgeFeatures which I suspect was also added to Xcode 26.2 somehow but not made available to real devices running [26.0 - 26.2). As a side note, thank you for this property, it will let me check what states I need to perform extra checks for in a clean way, I just will need it to now not crash my app on 26.0 and 26.1 runtime devices. :) Edit: DTS did confirm on a comment I had in another thread that this is a bug. Now just to wait for an Xcode beta update. https://developer.apple.com/forums/thread/807906?answerId=867205022#867205022 In any case, this is a great example of how MetricKit totally rocks capturing things other off the shelf crash tools might not have a chance to get. I did have to roll back my TestFlight to an earlier build, but MetricKit was there to send me the previous crashes as soon as the app could launch. Thanks MetricKit team!
1
0
270
1d
Family Controls (Distribution) entitlement — typical review timeline?
Hello! I recently submitted a request for the Family Controls (Distribution) entitlement for my app, and I’m trying to understand what kind of timeline to expect. I’ve seen posts suggesting anywhere from a few days to over a month for approval. Is there a typical review window for this entitlement? And is there anything I can do on my end to help the process move more smoothly? Thanks in advance!
0
0
31
1d
How to submit an app that gets approved immediately?
Hello, I would like to know how I can submit apps that get approved immediately. I have currently 2 accepted apps, 1 got denied and 1 is pending. In total 4 apps. To get these 2 accepted apps I had to make changes and it was a back and forth between me and the App Store review team. The one which is pending is a free browser (I don't charge anything, no paywall, no paid features, everything free). They rejected v1.0 and send me a list of question that I have to answer about my business model(?). Which business model? This app is free. :-)
2
0
62
1d
Is AgeRangeService / Declared Age Range capability required for a utility app?
Hello, I need clarification regarding the new Declared Age Range requirement. App Name: Hanna Lab Our app is a utility/scientific BLE app that connects to instruments, reads measurement values, and displays logs in a table or a Graph. We do not collect age data or provide any age-restricted content. I would like to confirm: Is AgeRangeService mandatory for an app that does not use age-based features? Do we need to add the Declared Age Range capability in Xcode → Signing & Capabilities for such a utility app? Thanks for any guidance.
0
0
85
1d
Test subscribe on test flight
Hi! I created a subscription class and a button that starts the purchase flow. In the Xcode environment and Simulator everything works correctly — the purchase sheet appears and the subscription flow works as expected. But when I test the app in TestFlight, the subscription button doesn’t appear at all. I cannot trigger a purchase, and I can’t find a clear tutorial that explains how to make subscriptions work specifically in TestFlight. Here is what I have already done: I created the subscription in App Store Connect I set up a Sandbox account and logged in on the device. StoreKit sync works and the product ID matches the one in App Store Connect. The same code works perfectly in Xcode Debug and Simulator, but the button is missing in TestFlight. I’m totally stuck. Can someone explain how to correctly set up and test subscriptions in TestFlight and why the subscription button would disappear even though everything works in Xcode? Any help or guidance would be greatly appreciated! THIS IS SUB CLASS @Published private(set) var products: [Product] = [] @Published private(set) var activeSubscriptions: Set<StoreKit.Transaction> = [] private var updates: Task<Void, Never>? var hasActiveSubscription: Bool { activeSubscriptions.contains { transaction in guard let expirationDate = transaction.expirationDate else { return false } return expirationDate > Date() && transaction.revocationDate == nil } } init() { updates = Task { for await update in StoreKit.Transaction.updates { if case .verified(let transaction) = update { activeSubscriptions.insert(transaction) await transaction.finish() } } } } deinit { updates?.cancel() } // MARK: PRODUCT LOADING func fetchProducts() async { do { let ids = ["test_name"] products = try await Product.products(for: ids) } catch { print("Failed to load products: \(error)") products = [] } } // MARK: PURCHASE func purchase(_ product: Product) async throws { let result = try await product.purchase() switch result { case let .success(.verified(transaction)): await transaction.finish() case .success(.unverified): break case .pending: break case .userCancelled: break @unknown default: break } } // MARK: ACTIVE SUBSCRIPTIONS func fetchActiveSubsciptions() async { var active: Set<StoreKit.Transaction> = [] for await entitlement in StoreKit.Transaction.currentEntitlements { if case .verified(let transaction) = entitlement { active.insert(transaction) } } self.activeSubscriptions = active } > ``` THIS IS BUTTON ```VStack(spacing: 8) { ForEach(sub.products) { product in PrimaryButtonView(text: mainButtonTitle) { Task { do { try await sub.purchase(product) } catch { print("Purchase error: \(error)") } } } } }```
0
0
15
1d
What’s the best way to review and track the ranked keywords of competing apps for ASO?
Started an ASO challenge on an older mother-baby app and began by analyzing competitors’ ranked keywords to uncover gaps, relevance, and high-intent phrases using tools like Appvector. By identifying core keyword roots and filtering by context and search intent, I narrowed down high-value opportunities to expand from 146 to over 1,000 relevant search terms for the next steps in the ASO strategy.
1
0
48
1d
Can I use PermissionKit to request parental consent for a minor accessing features other than chat?
In iOS 26.2, PermissionKit allows apps to request parental consent when a minor attempts to initiate a chat function. I believe this feature would be extremely useful when a minor tries to access other features in an application. For instance, in a real-time streaming service, when a minor attempts to access certain content, I would like to require parental permission. Is it acceptable to use the currently provided PermissionKit to send a request to the parent in this scenario? I am considering providing arbitrary values or nil for the action and PersonInformation parameters in this case. I would appreciate it if a fellow developer or an Apple staff member could confirm the intended scope of PermissionKit and if this kind of non-chat-related use case is permissible.
0
0
28
1d