Lightweight rewarded survey offerwall SDK for iOS. Integrate to monetise your users with minimal effort and a native WebView experience.
platform :ios, '12.0'
use_frameworks!
target 'YourApp' do
pod 'RapidoReach', '~> 1.0.3'
endRun pod install, then open the generated workspace.
import RapidoReach
@main
class AppDelegate: UIResponder, UIApplicationDelegate, RapidoReachDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Configure once on app start
RapidoReach.shared.configure(apiKey: "<YOUR_API_KEY>", user: "<YOUR_APP_USER_ID>")
RapidoReach.shared.delegate = self
RapidoReach.shared.fetchAppUserID() // registers user + fetches rewards
return true
}
func showOfferwall(from controller: UIViewController) {
RapidoReach.shared.presentOfferwall(from: controller, title: "Earn rewards")
}
// MARK: - RapidoReachDelegate (all methods have default empty implementations)
func didGetRewards(_ reward: RapidoReachReward) { print("Total rewards: \(reward.total_rewards)") }
func didSurveyAvailable(_ available: Bool) { print("Surveys available: \(available)") }
func didOpenRewardCenter() { print("Offerwall opened") }
func didClosedRewardCenter() { print("Offerwall closed") }
func didGetError(_ error: RapidoReachError) { print("RapidoReach error: \(error.localizedDescription)") }
}RapidoReach.shared.updateBackend(baseURL: URL(string: "...")!)to point to staging if needed.- Request ATT consent (
RapidoReachDeviceInfo().requestTrackingPermission) before accessing IDFA.
- Call
configure(apiKey:user:)before SDK methods. - If no presenter is available, pass one explicitly to
presentOfferwall(from:).
- Register with trunk (one-time) and verify via email:
Click the verification link from
pod trunk register [email protected] 'Vikash Kumar' --description='Rapidoreach iOS pod'[email protected]. - If the token file is not created automatically, write it manually:
mkdir -p ~/.cocoapods/trunk cat > ~/.cocoapods/trunk/config.json <<'EOF' { "email": "[email protected]", "token": "<YOUR_TOKEN_HERE>", "created_at": "<UTC_TIMESTAMP>", "verified": true } EOF
- Confirm the session and token:
pod trunk me cat ~/.cocoapods/trunk/config.json - CI publishing: set secret
COCOAPODS_TRUNK_TOKENto the token value. Use thePublish CocoaPodworkflow (.github/workflows/pod-publish.yml) to lint and push, optionally creating a Git tag/release.