Guideline 2.1

Guideline 2.1 - App Completeness: IAP Products Not Found in Binary

Low SeverityMedium FixTypical Fix: 2-8 hours0 Reports
Also known as:IAP products could not be found in the submitted binaryIn-app purchase products not accessible in the appStoreKit products configured but not implementedProduct identifiers don't match between Connect and binary

Our Take

Apple is rejecting your app because in-app purchase products configured in App Store Connect are referenced in the submission but cannot be found or accessed in the actual app binary.


This means Apple's reviewers tried to verify your IAP products and they either weren't implemented in the code, weren't properly configured with StoreKit, or the product IDs don't match between App Store Connect and your app.


This commonly happens when IAP products are created in App Store Connect but the StoreKit implementation is missing, broken, or uses different product identifiers. If you don't want to offer these products yet, you can remove them from App Store Connect before resubmitting.

Resolution Guide

01

Verify product IDs match

The product identifiers in App Store Connect must exactly match what your StoreKit code requests. Check for typos, case sensitivity, and prefix mismatches.

02

Implement StoreKit

Ensure your app actually calls Product.products(for:) (StoreKit 2) or SKProductsRequest (StoreKit 1) to load the products.

03

Check product status

In App Store Connect, each IAP product must be in "Ready to Submit" or "Waiting for Review" status. Products in "Developer Action Required" need to be edited and resubmitted.

04

Test in sandbox

Verify products load and can be purchased in the sandbox environment before submitting.

05

Submit a new binary

If you needed to add or fix StoreKit code, you must submit a new build.


If you DON'T want to offer the products yet:

06

Remove from App Store Connect

Delete or deactivate the unused IAP products before resubmitting.

07

Clean up product references

Remove any UI or code references to products you're not offering.


Prevention


  • Keep IAP products in sync between App Store Connect and your codebase
  • Test product loading in sandbox before every submission
  • Don't create IAP products in Connect until the StoreKit code is ready
  • Use a shared constants file for product IDs to prevent mismatches
  • Example Rejection Email

    From:Apple App Review Team
    Subject:Guideline 2.1 - App Completeness: IAP Products Not Found
    In-app purchase products associated with the app version submitted for review, such as Powerpack and PowerpackFamily, could not be found in the submitted binary. If you do not want to make these in-app purchase products available at this time, remove the unused in-app purchase products you've created from App Store Connect. If you want to make these in-app purchase products available at this time: - Ensure the products are active and that you have implemented StoreKit in your app. If you have not, submit a new binary for review with these changes. - Resubmit the in-app purchase products if they are in the Developer Action Required State. You must edit the detail information or cancel the request to change the detail information before the in-app purchase products can be reviewed again.

    Before & After

    Before — Rejected

    App Store Connect has 'com.app.powerpack' and 'com.app.powerpackfamily' products, but the app code references 'com.app.premium' and 'com.app.premiumfamily'

    After — Approved

    Product IDs in code updated to match App Store Connect exactly: 'com.app.powerpack' and 'com.app.powerpackfamily', verified loading in sandbox

    What changed: Product identifiers must match exactly between App Store Connect and your StoreKit implementation

    Community Solutions · 0

    Sign in to share your solution.

    More Guideline 2 (Performance) rejections

    View all Guideline 2 rejections