Skip to main content
Answer

Trial start and conversion events not sent to AppsFlyer

  • July 18, 2025
  • 1 reply
  • 106 views

Forum|alt.badge.img+1

Hi,

I’m running into an issue where development builds (via Xcode) are not generating an appsflyer_id, and consequently, no S2S events are being sent from RevenueCat to AppsFlyer. Here’s what I’ve observed:

What’s happening

  • In dev builds, Apple zeros out IDFA and IDFV for sideloaded apps, even with ATT consent.

  • Without IDFA/IDFV, AppsFlyer SDK cannot create a valid appsflyer_id, which is required for event attribution.

  • As a result, RevenueCat never sends server-to-server purchase or trial events because it doesn’t have the mandatory identifier.

  • I’ve implemented the suggested methods—collectDeviceIdentifiers() and setAppsflyerID()—but since the SDK doesn’t generate the ID in dev builds, RevenueCat still fails to send any events.

Questions

  1. Is there a recommended workaround for dev builds when IDs are zeroed?
    (e.g., can we manually set a fake $appsflyerId or use an IDFV workaround?).

  2. Any best practices for testing with Xcode‑installed apps so that both AppsFlyer and RevenueCat work as expected?

  3. In production/TestFlight, everything works smoothly. But our CI/debug environment doesn’t—any idea how to get S2S events flowing in dev?

Thanks in advance for any guidance or best practices 🙏
Happy to supply logs or screenshots if helpful!

Best answer by hussain

Hi Ole,

Thanks for reaching out. I’m happy to help. For CI/debug environments I’d recommend you to Manually override the AppsFlyer ID. You can generate a stable test ID (e.g. a UUID or hardcoded string) and set it directly as the AppsFlyerID right after configuration of the RevenueCat SDK.

Purchases.configure(withAPIKey: "<YOUR_REVENUECAT_KEY>")
// Before any purchase/trial:
let testAFID = "DEV_DEVICE_AF_ID"
Purchases.shared.attribution.setAppsflyerID(testAFID)

This guarantees a valid $appsflyerId which is required for RevenueCat to send events to AppsFlyer.

Hope this helps. Let me know if you have any other questions.

Best,

Hussain

This post has been closed for comments

1 reply

hussain
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • Answer
  • July 22, 2025

Hi Ole,

Thanks for reaching out. I’m happy to help. For CI/debug environments I’d recommend you to Manually override the AppsFlyer ID. You can generate a stable test ID (e.g. a UUID or hardcoded string) and set it directly as the AppsFlyerID right after configuration of the RevenueCat SDK.

Purchases.configure(withAPIKey: "<YOUR_REVENUECAT_KEY>")
// Before any purchase/trial:
let testAFID = "DEV_DEVICE_AF_ID"
Purchases.shared.attribution.setAppsflyerID(testAFID)

This guarantees a valid $appsflyerId which is required for RevenueCat to send events to AppsFlyer.

Hope this helps. Let me know if you have any other questions.

Best,

Hussain