Skip to main content
This guide covers common issues and their solutions when integrating the Permutive iOS SDK.

Installation

Initialization

Tracking

Installation Issues

Error: Unable to find a specification for 'Permutive_iOS'Solutions:
  1. Update your CocoaPods repo:
  2. Ensure CocoaPods is version 1.9.1 or later:
  3. Clear the cache:
Error: Xcode cannot resolve the package.Solutions:
  1. Check your network connection
  2. Reset package caches: File → Packages → Reset Package Caches
  3. Verify the URL is correct: https://github.com/permutive-engineering/permutive-ios-spm
  4. Try removing and re-adding the package
Error: No such module 'Permutive_iOS'Solutions:
  1. Clean build folder: Product → Clean Build Folder (⇧⌘K)
  2. For CocoaPods: Ensure you opened the .xcworkspace file, not .xcodeproj
  3. Restart Xcode
  4. For SPM: Reset package caches
Error: Bitcode-related build errors.Solution: Disable Bitcode in your target’s Build Settings:
  • Set Enable Bitcode to No
Bitcode is no longer required for App Store submission.
Error: Duplicate symbol errors during linking.Solutions:
  1. Ensure you’re not mixing CocoaPods and SPM for Permutive
  2. Check for conflicting library versions
  3. Clean derived data: rm -rf ~/Library/Developer/Xcode/DerivedData

Initialization Issues

Problem: Options(apiKey:organisationId:workspaceId:) returns nil.Causes:
  • Empty or whitespace-only credentials
  • Invalid credential format
Solution: Verify your credentials:
Problem: No error, but SDK doesn’t seem to work.Solution: Enable debug logging and check for errors:
Problem: Initialization fails with network error.Solutions:
  1. Check device network connectivity
  2. Verify no firewall is blocking Permutive domains
  3. Check if running on simulator with network issues
  4. Retry initialization:
Problem: Events tracked before initialization completes are lost.Solution: Wait for the completion callback:

Tracking Issues

Error:
Causes:
  • Property names don’t match schema
  • Property types don’t match schema
  • Extra properties not in schema
Solutions:
  1. Check your Permutive dashboard for the correct schema
  2. Verify property names exactly (case-sensitive)
  3. Remove any extra properties
  4. Verify property types match (string, int, bool, etc.)
Error: EventProperties constructor throws an exception.Causes:
  • Unsupported value types
  • Invalid nested objects
Solutions: Ensure all values are supported types:
Problem: No Pageview event in logs.Solutions:
  1. Ensure resume() is called:
  2. Check PageTracker was created successfully
  3. Verify SDK is initialized before creating PageTracker
  4. Enable debug logging
Problem: PageTracker stops when navigating or creating new trackers.Cause: Only one PageTracker/MediaTracker can be active at a time.Solution: This is expected behavior. Creating a new tracker stops any existing one. Design your flow accordingly.
Problem: Console is silent, no Permutive logs appear.Solutions:
  1. Confirm logModes is set before start():
  2. Check Xcode console filter isn’t hiding messages
  3. Verify SDK is actually being initialized

Cohort and Activation Issues

Problem: Permutive.shared.cohorts returns an empty set.Causes:
  • SDK just initialized (cohorts not yet synced)
  • No events tracked yet
  • User doesn’t qualify for any cohorts
Solutions:
  1. Wait a few seconds after initialization
  2. Track some events to generate data
  3. Use TriggerProvider for reactive updates
  4. Check your dashboard for cohort definitions
Problem: User is in a cohort but it doesn’t appear in activations.Cause: Not all cohorts are activated for all platforms.Solution: Check your Permutive dashboard configuration. Activations must be explicitly configured for each platform (GAM, Xandr, etc.).
Problem: dfp_contextual or appnexus_adserver_contextual is empty.Solutions:
  1. Verify contextual features are enabled (contact your CSM)
  2. Update to SDK 2.0.0+
  3. Ensure PageTracker has a valid, publicly accessible URL
  4. Allow time for content analysis (1-2 seconds)
  5. Check debug logs for classification errors

Identity Issues

Error: setIdentityForIDFA throws an error.Cause: IDFA is all zeros (tracking denied/restricted).Solution:
Problem: Alias with certain tags is ignored.Cause: Reserved tags: appnexus, amp, gigya, sailthru, aaidSolution: Use custom tag names:
Problem: Same user appears as different users on different devices.Solution: Use consistent identifiers that work across devices:

Ad Integration Issues

Problem: googleCustomTargeting returns empty or minimal data.Solutions:
  1. Verify SDK is initialized before calling
  2. Check that cohorts exist for the user
  3. Wait for cohort data to sync after initialization
  4. Enable debug logging to see activations
Problem: prmtvvid key not in targeting dictionary.Solution: Pass the active PageTracker:

TriggerProvider Issues

Problem: No callbacks when cohort membership changes.Solutions:
  1. Store a strong reference to TriggerAction:
  2. Verify cohort IDs match your dashboard exactly
  3. Enable debug logging to see cohort updates
Problem: Trigger worked initially but stopped.Cause: TriggerAction reference was released.Solution: Keep TriggerAction as an instance property for the lifetime you need it.

Debug Logging

Enable comprehensive logging for troubleshooting:

Log Messages to Look For

Always disable debug logging in production builds to avoid performance overhead.

Getting Help

If you can’t resolve an issue:
  1. Enable debug logging and capture relevant logs
  2. Check SDK version - ensure you’re on the latest
  3. Contact support:
Include in your support request:
  • SDK version
  • iOS/tvOS version
  • Xcode version
  • Relevant logs
  • Steps to reproduce

Installation

Setup troubleshooting

Initialization

Configuration options

Verification

Verify your integration

Event Properties

Schema requirements