Skip to main content

Billing Integration Submission Checklist

This page covers every step required to go from a finished AppCoins SDK integration to a live app on Aptoide — from final integration checks, through Aptoide Connect setup, to post-submission verification.


Before Submitting

Review every item below before building your release binary.

Integration Checklist

SDK and Xcode setup:

  • AppCoinsSDK added via Swift Package Manager (Swift) or plugin imported into Assets (Unity)
  • Keychain Sharing capability added; group set to exactly com.aptoide.appcoins-wallet
  • URL Scheme $(PRODUCT_BUNDLE_IDENTIFIER).iap added with role Editor in Info → URL Types
  • MKSellsDigitalGoods key set to YES in Info.plist

Initialization (Swift):

  • AppcSDK.initialize() called at every application entry point (SceneDelegate and/or AppDelegate)
  • AppcSDK.handle(redirectURL:) called in scene(_:openURLContexts:) and equivalent URL handler

Initialization (Unity):

  • AppCoinsIAP.ConfigureStoreAsync called and awaited before controller.Connect()

Transaction handling:

  • Transaction.unfinished iterated on every app launch after the isAvailable() check (Swift)
  • controller.FetchPurchases() called in Start() after Connect completes (Unity)
  • transaction.finish() (Swift) or controller.ConfirmPurchase(order) (Unity) called after delivering the item
  • All AppCoinsSDKError cases handled (at minimum: notEntitled, productUnavailable, networkError)

Testing:

  • Integration tested end-to-end in the sandbox environment
⚠️

Missing Keychain Sharing or the URL scheme will cause purchase failures for all users.


Aptoide Connect Setup

  1. Create an account at https://connect.aptoide.com.

  2. Create your app listing:

    1. Click New App.
    2. Enter your app's bundle identifier, display name, and category.
    3. Save the listing.
  3. Define your in-app products:

    1. Open your app listing and go to Products → Add Product.
    2. Set the SKU — this must match exactly what you pass to Product.products(for:) (Swift) or your Unity ProductCatalog. SKUs are case-sensitive.
    3. Set the product name and price.
    4. Save and repeat for every product.
  4. Build your release binary:

    • Separate builds strategy: build from your aptoide branch, which includes the AppCoinsSDK dependency. Archive and export the .ipa.
    • Single build strategy: build your standard binary. The AppCoinsSDK is included but only activates at runtime on Aptoide-distributed installs.

    See Integration Strategies for a full comparison.

  5. Submit your binary:

    1. In Aptoide Connect, go to your app listing and open Releases → New Release.
    2. Upload the .ipa file.
    3. Fill in the release notes and submit for review.

After Submission

  • Aptoide reviews your app — timeline varies. You will be notified when the review completes.
  • Once approved, your in-app products become queryable from Product.products(for:) (Swift) or FetchProducts (Unity).
  • You can test the full purchase flow in the sandbox environment before or after approval — sandbox does not require an approved listing.
  • Monitor the Catappult dashboard for transaction data and revenue reporting.

Sandbox Testing

The sandbox environment verifies the purchase flow end-to-end before your app goes live. The sandbox simulates a real purchase without charging the user.

Full documentation: Sandbox

Retrieve the current sandbox wallet address (Swift):

if let walletAddress = await Sandbox.getTestingWalletAddress() {
print("Sandbox wallet: \(walletAddress)")
}