If you find issues uploading your app to the Apple App Store regarding the PreludeCore.xcframework please follow these steps.
@prelude.so/react-native-sdk for Expo apps (managed, or bare with Expo modules), and @prelude.so/react-native-sdk-standalone for plain React Native apps that don’t use Expo. Web behaves the same in both (it delegates to @prelude.so/js-sdk).
Using the Expo React Native SDK
The Expo React Native SDK allows you to capture certain device signals (both in Android and iOS) that will be reported back to Prelude and perform silent verification of mobile devices. It is provided as an Expo module that you can integrate into your React Native Expo Application.Requirements
- iOS deployment target 15.1+
- Android minimum SDK API 26 (Android 8.0) — if your application has a lower value you need to raise it
- Built and tested against Expo SDK 52 / React Native 0.76; the peer ranges themselves are unpinned
Setup
Using NPM
The SDK is available in npm. You can install the SDK dependency directly usingnpm:
Using Bun
Bun requires you to trust thepostinstall script:
Using pnpm
pnpm v10+ requires explicit permission forpostinstall scripts:
Platform.OS.
Gathering Device Signals
Note: Starting with v0.3.0 of the SDK, we have removed the status event and made thedispatchSignals function return a promise that resolves to the dispatch identifier, simplifying its usage.
To collect the device signals in your application, you can use code like this:
dispatchSignals function for your use case:
Silent Verification
The Silent Verification feature allows you to verify a phone number without requiring the user to manually enter a verification code. It is available for certain carriers and requires a server-side service to handle the verification process. For this verification method to work properly, you must collect the device signals mentioned before and report the dispatch identifier to your back-end (usually in your APIs verification endpoint). Please refer to the Silent Verification documentation for more information on how to implement this feature.Using the standalone (no-Expo) React Native SDK
For plain React Native apps that don’t use Expo, install@prelude.so/react-native-sdk-standalone instead. It exposes the same dispatchSignals and verifySilent API shown above.
pod install for iOS, a Gradle sync for Android). The Android minSdkVersion is 26 (Android 8.0). Set PRELUDE_SKIP_APPLE_SDK=1 to skip the iOS Apple SDK download on Android-only or web-only installs.
On web, the standalone SDK runs through react-native-web and your web bundler, delegating to @prelude.so/js-sdk. Because js-sdk collects signals in a Web Worker and ships prebuilt, let your bundler consume it as-is and follow the js-sdk web setup guidance.
Uploading your app to the App Store
Depending on the mechanism that you use to upload your app to the App Store, you may find errors related to thePreludeCore.xcframework file.
If you encounter this error, try uploading the app again with the flag --use-old-altool:
Transporter it will not allow you to use the --use-old-altool flag. You will need to use the xcrun command instead.