Troubleshooting
Solutions to common issues with the SpendOwl SDK.Installation Issues
Package Not Found
Error:The package at 'https://github.com/spendowl/spendowl-ios' could not be found
Solutions:
- Check your internet connection
- Verify the URL is correct:
https://github.com/spendowl/spendowl-ios - Try closing and reopening Xcode
- Clear the derived data: Xcode → Settings → Locations → Derived Data → Delete
Version Conflicts
Error:Package resolution failed. Dependencies could not be resolved.
Solutions:
- Update other packages to their latest versions
- Use a specific version instead of “Up to Next Major”, picking the newest 1.x release — check Releases for the current one:
Pin forward, never back. An older pin strands you on a release without the fixes since.
Configuration Issues
SDK Not Configured
Error:SpendOwl SDK is not configured. Call SpendOwl.configure(apiKey:) first.
Solution: Call configure() before using other SDK methods:
Invalid API Key
Error:Invalid API key. Check your SpendOwl dashboard for the correct key.
Solutions:
- Verify your API key in the dashboard
- Ensure you’re using the correct environment key (test vs. live)
- Check for extra spaces or characters in the key
Configure Called Multiple Times
Warning:SpendOwl already configured, ignoring
This is informational, not an error. SpendOwl ignores subsequent configure() calls. If you need to reconfigure, restart the app.
Attribution Issues
Attribution Unavailable
Error:Attribution is not available on this device or OS version.
Causes:
- iOS version below 14.3
- Running in the simulator (limited attribution support)
- AdServices framework not available
- Test on a real device with iOS 14.3+
- Handle gracefully in code:
Attribution Denied
Error:Attribution access was denied.
Causes:
- User has “Limit Ad Tracking” enabled
- MDM profile restricts tracking
- Privacy settings block attribution
Attribution Returns Unknown
Status:AttributionStatus.unknown
Possible reasons:
- First launch: Attribution may take a few seconds to process
- Network issues: Token couldn’t be sent to servers
- Processing delay: Server is still resolving the token
Attribution Always Organic
Issue: All installs show as “organic” even when clicking ads Causes:- Test device isn’t enrolled in Apple Search Ads testing
- Using a development certificate (attribution may not work)
- Ad account isn’t linked to your app
- Use a TestFlight or App Store build for accurate testing
- Verify your Apple Search Ads account is properly configured
- Check the Apple Search Ads testing guide
Network Issues
Request Timeout
Error:Network error: The request timed out.
Solutions:
- Check internet connectivity
- Increase timeout:
- The SDK retries automatically; persistent failures indicate connectivity issues
Certificate Errors
Error:Network error: The certificate for this server is invalid.
Causes:
- Corporate proxy intercepting HTTPS
- Network security software
- Clock significantly wrong on device
- Disable SSL interception for
spendowl.io - Check device date/time settings
Purchase Tracking Issues
Purchases Not Appearing
Issue: Purchases don’t appear in the dashboard Causes:- SDK not configured before purchase occurred
- The product is a consumable and the
Info.plistopt-in is missing - Sandbox purchases with live API key
- Ensure
configure()is called on app launch - Add
SKIncludeConsumableInAppPurchaseHistory— without it a consumable missed at the moment of purchase can never be recovered. See Consumables - Use test API key for sandbox testing
Which StoreKit API you use is not a cause. SpendOwl observes both StoreKit 1 and StoreKit 2 transactions, so there is no migration to do here.
Sandbox vs Production
Issue: Test purchases mixed with production data Solution: Use different API keys:Debugging Tips
Enable Verbose Logging
Read the Logs in Xcode
SpendOwl logs withprint(), so its output appears in the Xcode console — not in Console.app, and not in a release build. See Where the Logs Go.
Verify Integration
Still Having Issues?
GitHub Issues
Report a bug or search existing issues
Contact Support
Email support@spendowl.io
- iOS version
- SDK version (
SpendOwl.sdkVersion) - Device model (real device vs simulator)
- Debug logs (with sensitive data redacted)
- Steps to reproduce