Add a small “you might also like” app recommendation card to your Apple-platform app. Learn more about the service at promotethatapp.com.
- Add your App Store app to the CrossPromo dashboard.
- Copy the ready-made prompt from your dashboard into your coding agent.
- Submit the updated app to Apple. CrossPromo automatically recognizes verified activity after that version is public.
CrossPromo supports:
- native iPhone, iPad, and Mac apps using Swift or SwiftUI;
- Flutter apps running on iOS; and
- React Native apps running on iOS.
Native macOS support requires macOS 13 or later. The Flutter and React Native packages remain iOS-only. The SDK and backend can be used for integration testing, but only activity the CrossPromo service verifies against a public App Store release counts.
Copy the prompt below into Codex, Claude Code, Cursor, Copilot, or another coding AI while it has your app project open.
Integrate the CrossPromo mobile SDK into this app.
SDK repository: https://github.com/Amian/crosspromo-sdk
Please work autonomously and make the integration changes for me:
1. Confirm this is a native iOS 16+, native macOS 13+, Flutter iOS, or React Native iOS
app. The Flutter and React Native packages do not support macOS or Android.
2. Read the CrossPromo root README and the README for the matching package.
3. Install the SDK directly from the GitHub repository using the documented method.
4. Configure CrossPromo once at app startup. Ask me to copy my app key from the
CrossPromo dashboard if it is not already present. Omit the environment argument:
the SDK automatically uses sandbox in debug builds and production in release builds.
Do not hard-code sandbox in code that will ship.
5. Add one PromoCard to an existing, sensible screen—prefer a success/result screen,
then settings or an empty state. Do not redesign the rest of the screen.
6. Use the SDK's typed placement option that best fits the screen: post-scan, result,
settings, or empty state. Do not pass a raw string.
7. Confirm the native deployment target is iOS 16 or macOS 13 or later. CrossPromo
does not require an App Attest capability or an in-app purchase product. A
sandboxed Mac app must allow outgoing network connections.
8. Run the relevant formatter, tests, and an iOS or macOS build. Fix integration errors.
9. Finish by listing the files you changed and remind me to complete the CrossPromo
choices in APP_STORE_PRIVACY.md before submitting the app update.
The developer only needs to provide the app key shown in the CrossPromo dashboard.
In Xcode, choose File → Add Package Dependencies and enter:
https://github.com/Amian/crosspromo-sdk
Configure once when the app starts:
import CrossPromo
try CrossPromo.configure(
appKey: "cp_live_YOUR_KEY_FROM_DASHBOARD"
)Add the card to a SwiftUI screen:
CrossPromoCard(placement: .postScan)That is the complete SwiftUI integration on iPhone, iPad, and Mac. The SDK chooses the native renderer and handles the card's asynchronous height change internally; host apps must not add UIKit/AppKit bridges or platform conditionals around it.
Imperative UIKit apps can use CrossPromoCardUIView(placement: .postScan). Imperative
AppKit apps can use CrossPromoCardNSView(placement: .postScan). Sandboxed Mac apps must
enable the Outgoing Connections (Client) capability in their app target.
Detailed native Apple instructions
Add this to pubspec.yaml:
dependencies:
crosspromo_sdk:
git:
url: https://github.com/Amian/crosspromo-sdk.git
path: packages/crosspromo-flutterConfigure before runApp:
CrossPromo.configure(
appKey: 'cp_live_YOUR_KEY_FROM_DASHBOARD',
);Add the card:
const PromoCard(placement: CrossPromoPlacement.postScan)Install directly from GitHub:
npm install git+https://github.com/Amian/crosspromo-sdk.git
cd ios && pod installConfigure before rendering the app:
import {
CrossPromo,
CrossPromoPlacement,
PromoCard,
} from '@crosspromo/react-native';
CrossPromo.configure({
appKey: 'cp_live_YOUR_KEY_FROM_DASHBOARD',
});Add the card:
<PromoCard placement={CrossPromoPlacement.PostScan} />Placements are typed options, so a misspelling is caught before the app runs.
Detailed React Native instructions
No manual environment switch is required. When the environment argument is omitted, the SDK uses sandbox in debug builds and production in release builds. Before release:
- the app must target iOS 16 or macOS 13 or later;
- the SDK must be included in a version released through the public App Store; and
- the dashboard registration must match the app's bundle ID and numeric Apple app ID.
Keep the environment argument omitted for the App Store build. Explicit overrides remain available for unusual testing, but do not ship an explicit sandbox override.
CrossPromo does not require an App Attest capability or an in-app purchase product. The SDK reads the app platform, identifier, version, build number, and Apple-signed App Transaction automatically. A local card rendering successfully does not prove an event was counted; eligibility remains a server-side decision.
Before submitting the version that contains CrossPromo, open App Store Connect → your app → App Privacy. Keep your app's existing answers, then add:
- Usage Data → Product Interaction
- Usage Data → Advertising Data
For both, select Third-Party Advertising and Analytics, then answer No to Linked to the user and No to Used for tracking. CrossPromo does not require Device ID or an ATT prompt.
See the exact click-by-click privacy guide.
The app cannot decide whether an impression or click counts. Every event is verified server-side against the app's live App Store release, and the API makes the final decision. Anything the host app reports is treated as a claim to be checked, not as a count.
Debug builds, StoreKit testing, simulators, TestFlight, and sandbox activity never earn eligibility or counted activity. Google Play support is deliberately outside the v1 production scope.
CrossPromo stores events against participating apps, not people or devices. It does not store an installation ID, App Transaction ID, IP address, user agent, or locale. The Apple-signed App Transaction is checked during verification and then discarded.
| Package | Location |
|---|---|
| Native iOS and macOS | packages/crosspromo-ios |
| Flutter | packages/crosspromo-flutter |
| React Native | packages/crosspromo-react-native |
cd packages/crosspromo-ios && swift test
cd packages/crosspromo-flutter && flutter analyze && flutter test
cd packages/crosspromo-react-native && npm install && npm run typecheck && npm testSource is available under the CrossPromo SDK Source-Available License. You may use the unmodified SDK only with the official CrossPromo Service; modification and use with any other service require CrossPromo's prior written permission.