Copy disabled (too large)
Download .txt
Showing preview only (11,525K chars total). Download the full file to get everything.
Repository: urbanairship/ios-library
Branch: main
Commit: 60e0385d882f
Files: 1418
Total size: 10.7 MB
Directory structure:
gitextract_2xh8r30o/
├── .github/
│ ├── CODEOWNERS
│ ├── CONTRIBUTING.md
│ ├── ISSUE_TEMPLATE.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows/
│ ├── check-cert.yml
│ ├── check_framework_size.yml
│ ├── ci.yml
│ ├── deploy_docC.yml
│ ├── merge.yml
│ ├── pr-review.yml
│ └── release.yml
├── .gitignore
├── .gitmodules
├── .ruby-version
├── .swift-format.json
├── .swiftpm/
│ └── xcode/
│ └── package.xcworkspace/
│ └── contents.xcworkspacedata
├── .whitesource
├── Airship/
│ ├── Airship.xcodeproj/
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata/
│ │ └── xcschemes/
│ │ ├── AirshipAutomation.xcscheme
│ │ ├── AirshipBasement.xcscheme
│ │ ├── AirshipCore.xcscheme
│ │ ├── AirshipDebug.xcscheme
│ │ ├── AirshipFeatureFlags.xcscheme
│ │ ├── AirshipMessageCenter.xcscheme
│ │ ├── AirshipObjectiveC.xcscheme
│ │ └── AirshipPreferenceCenter.xcscheme
│ ├── AirshipAutomation/
│ │ ├── Info.plist
│ │ ├── Resources/
│ │ │ ├── AirshipAutomation.xcdatamodeld/
│ │ │ │ ├── .xccurrentversion
│ │ │ │ ├── AirshipAutomation 2.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── AirshipAutomation 3.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ └── AirshipAutomation.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── UAAutomation.xcdatamodeld/
│ │ │ │ ├── .xccurrentversion
│ │ │ │ ├── UAAutomation 10.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 11.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 12.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 13.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 2.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 3.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 4.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 5.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 6.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 7.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 8.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 9.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ └── UAAutomation.xcdatamodel/
│ │ │ │ └── contents
│ │ │ └── UAFrequencyLimits.xcdatamodeld/
│ │ │ └── UAFrequencyLimits.xcdatamodel/
│ │ │ └── contents
│ │ ├── Source/
│ │ │ ├── ActionAutomation/
│ │ │ │ ├── ActionAutomationExecutor.swift
│ │ │ │ └── ActionAutomationPreparer.swift
│ │ │ ├── Actions/
│ │ │ │ ├── CancelSchedulesAction.swift
│ │ │ │ ├── LandingPageAction.swift
│ │ │ │ └── ScheduleAction.swift
│ │ │ ├── AirshipAutomationResources.swift
│ │ │ ├── AudienceCheck/
│ │ │ │ ├── AdditionalAudienceCheckerApiClient.swift
│ │ │ │ └── AdditionalAudienceCheckerResolver.swift
│ │ │ ├── Automation/
│ │ │ │ ├── ApplicationMetrics.swift
│ │ │ │ ├── AutomationAudience.swift
│ │ │ │ ├── AutomationCompoundAudience.swift
│ │ │ │ ├── AutomationDelay.swift
│ │ │ │ ├── AutomationSchedule.swift
│ │ │ │ ├── AutomationTrigger.swift
│ │ │ │ ├── DeferredAutomationData.swift
│ │ │ │ ├── Engine/
│ │ │ │ │ ├── AutomationDelayProcessor.swift
│ │ │ │ │ ├── AutomationEngine.swift
│ │ │ │ │ ├── AutomationEventFeed.swift
│ │ │ │ │ ├── AutomationEventsHistory.swift
│ │ │ │ │ ├── AutomationExecutor.swift
│ │ │ │ │ ├── AutomationPreparer.swift
│ │ │ │ │ ├── AutomationScheduleData.swift
│ │ │ │ │ ├── AutomationScheduleState.swift
│ │ │ │ │ ├── AutomationStore.swift
│ │ │ │ │ ├── ExecutionWindowProcessor.swift
│ │ │ │ │ ├── LegacyAutomationStore.swift
│ │ │ │ │ ├── PreparedSchedule.swift
│ │ │ │ │ ├── ScheduleExecuteResult.swift
│ │ │ │ │ ├── SchedulePrepareResult.swift
│ │ │ │ │ ├── ScheduleReadyResult.swift
│ │ │ │ │ ├── TriggerProcessor/
│ │ │ │ │ │ ├── AutomationTriggerProcessor.swift
│ │ │ │ │ │ ├── PreparedTrigger.swift
│ │ │ │ │ │ └── TriggerData.swift
│ │ │ │ │ └── TriggeringInfo.swift
│ │ │ │ └── ExecutionWindow.swift
│ │ │ ├── AutomationSDKModule.swift
│ │ │ ├── InAppAutomation.swift
│ │ │ ├── InAppAutomationComponent.swift
│ │ │ ├── InAppAutomationUpdateStatus.swift
│ │ │ ├── InAppMessage/
│ │ │ │ ├── Analytics/
│ │ │ │ │ ├── InAppDisplayImpressionRuleProvider.swift
│ │ │ │ │ ├── InAppMessageAnalytics.swift
│ │ │ │ │ └── InAppMessageAnalyticsFactory.swift
│ │ │ │ ├── Assets/
│ │ │ │ │ ├── AirshipCachedAssets.swift
│ │ │ │ │ ├── AssetCacheManager.swift
│ │ │ │ │ ├── DefaultAssetDownloader.swift
│ │ │ │ │ └── DefaultAssetFileManager.swift
│ │ │ │ ├── Display Adapter/
│ │ │ │ │ ├── AirshipLayoutDisplayAdapter.swift
│ │ │ │ │ ├── CustomDisplayAdapter.swift
│ │ │ │ │ ├── CustomDisplayAdapterWrapper.swift
│ │ │ │ │ ├── DisplayAdapter.swift
│ │ │ │ │ ├── DisplayAdapterFactory.swift
│ │ │ │ │ └── InAppMessageDisplayListener.swift
│ │ │ │ ├── Display Coordinators/
│ │ │ │ │ ├── DefaultDisplayCoordinator.swift
│ │ │ │ │ ├── DisplayCoordinator.swift
│ │ │ │ │ ├── DisplayCoordinatorManager.swift
│ │ │ │ │ └── ImmediateDisplayCoordinator.swift
│ │ │ │ ├── InAppActionRunner.swift
│ │ │ │ ├── InAppMessage.swift
│ │ │ │ ├── InAppMessageAutomationExecutor.swift
│ │ │ │ ├── InAppMessageAutomationPreparer.swift
│ │ │ │ ├── InAppMessageColor.swift
│ │ │ │ ├── InAppMessageDisplayContent.swift
│ │ │ │ ├── InAppMessageDisplayDelegate.swift
│ │ │ │ ├── InAppMessageEnvironment.swift
│ │ │ │ ├── InAppMessageSceneDelegate.swift
│ │ │ │ ├── InAppMessageSceneManager.swift
│ │ │ │ ├── InAppMessageValidation.swift
│ │ │ │ ├── InAppMessageViewDelegate.swift
│ │ │ │ ├── InAppMessaging.swift
│ │ │ │ ├── Info/
│ │ │ │ │ ├── InAppMessageButtonInfo.swift
│ │ │ │ │ ├── InAppMessageButtonLayoutType.swift
│ │ │ │ │ ├── InAppMessageMediaInfo.swift
│ │ │ │ │ └── InAppMessageTextInfo.swift
│ │ │ │ ├── Legacy/
│ │ │ │ │ ├── LegacyInAppAnalytics.swift
│ │ │ │ │ ├── LegacyInAppMessage.swift
│ │ │ │ │ └── LegacyInAppMessaging.swift
│ │ │ │ └── View/
│ │ │ │ ├── BeveledLoadingView.swift
│ │ │ │ ├── ButtonGroup.swift
│ │ │ │ ├── CloseButton.swift
│ │ │ │ ├── FullscreenView.swift
│ │ │ │ ├── HTMLView.swift
│ │ │ │ ├── InAppMessageBannerView.swift
│ │ │ │ ├── InAppMessageExtensions.swift
│ │ │ │ ├── InAppMessageHostingController.swift
│ │ │ │ ├── InAppMessageModalView.swift
│ │ │ │ ├── InAppMessageNativeBridgeExtension.swift
│ │ │ │ ├── InAppMessageRootView.swift
│ │ │ │ ├── InAppMessageViewUtils.swift
│ │ │ │ ├── InAppMessageWebView.swift
│ │ │ │ ├── MediaView.swift
│ │ │ │ ├── TextView.swift
│ │ │ │ └── Theme/
│ │ │ │ ├── InAppMessageTheme.swift
│ │ │ │ ├── InAppMessageThemeAdditionalPadding.swift
│ │ │ │ ├── InAppMessageThemeBanner.swift
│ │ │ │ ├── InAppMessageThemeButton.swift
│ │ │ │ ├── InAppMessageThemeFullscreen.swift
│ │ │ │ ├── InAppMessageThemeHTML.swift
│ │ │ │ ├── InAppMessageThemeManager.swift
│ │ │ │ ├── InAppMessageThemeMedia.swift
│ │ │ │ ├── InAppMessageThemeModal.swift
│ │ │ │ ├── InAppMessageThemeShadow.swift
│ │ │ │ ├── InAppMessageThemeText.swift
│ │ │ │ └── ThemeExtensions.swift
│ │ │ ├── Limits/
│ │ │ │ ├── FrequencyChecker.swift
│ │ │ │ ├── FrequencyConstraint.swift
│ │ │ │ ├── FrequencyLimitManager.swift
│ │ │ │ ├── FrequencyLimitStore.swift
│ │ │ │ └── Occurrence.swift
│ │ │ ├── RemoteData/
│ │ │ │ ├── AutomationRemoteDataAccess.swift
│ │ │ │ ├── AutomationRemoteDataSubscriber.swift
│ │ │ │ ├── AutomationSourceInfoStore.swift
│ │ │ │ └── DeferredScheduleResult.swift
│ │ │ └── Utils/
│ │ │ ├── ActiveTimer.swift
│ │ │ ├── AirshipAsyncSemaphore.swift
│ │ │ ├── AutomationActionRunner.swift
│ │ │ ├── RetryingQueue.swift
│ │ │ └── ScheduleConditionsChangedNotifier.swift
│ │ └── Tests/
│ │ ├── Action Automation/
│ │ │ ├── ActionAutomationExecutorTest.swift
│ │ │ └── ActionAutomationPreparerTest.swift
│ │ ├── Actions/
│ │ │ ├── CancelSchedulesActionTest.swift
│ │ │ ├── LandingPageActionTest.swift
│ │ │ └── ScheduleActionTest.swift
│ │ ├── Automation/
│ │ │ ├── ApplicationMetricsTest.swift
│ │ │ ├── AudienceCheck/
│ │ │ │ └── AdditionalAudienceCheckerResolverTest.swift
│ │ │ ├── AutomationScheduleDataTest.swift
│ │ │ ├── AutomationScheduleTest.swift
│ │ │ └── Engine/
│ │ │ ├── AutomationDelayProcessorTest.swift
│ │ │ ├── AutomationEngineTest.swift
│ │ │ ├── AutomationEventFeedTest.swift
│ │ │ ├── AutomationEventsHistoryTest.swift
│ │ │ ├── AutomationExecutorTest.swift
│ │ │ ├── AutomationPreparerTest.swift
│ │ │ ├── AutomationStoreTest.swift
│ │ │ ├── AutomationTriggerProcessorTest.swift
│ │ │ ├── ExecutionWindowProcessorTest.swift
│ │ │ ├── PreparedScheduleInfoTest.swift
│ │ │ └── PreparedTriggerTest.swift
│ │ ├── ExecutionWindowTest.swift
│ │ ├── InAppMessage/
│ │ │ ├── Analytics/
│ │ │ │ ├── DefaultInAppDisplayImpressionRuleProviderTest.swift
│ │ │ │ └── InAppMessageAnalyticsTest.swift
│ │ │ ├── Assets/
│ │ │ │ ├── AssetCacheManagerTest.swift
│ │ │ │ ├── DefaultAssetDownloaderTest.swift
│ │ │ │ └── DefaultAssetFileManagerTest.swift
│ │ │ ├── DefaultInAppActionRunnerTest.swift
│ │ │ ├── Display Adapter/
│ │ │ │ ├── AirshipLayoutDisplayAdapterTest.swift
│ │ │ │ ├── CustomDisplayAdapterWrapperTest.swift
│ │ │ │ ├── DisplayAdapterFactoryTest.swift
│ │ │ │ └── InAppMessageDisplayListenerTest.swift
│ │ │ ├── Display Coordinators/
│ │ │ │ ├── DefaultDisplayCoordinatorTest.swift
│ │ │ │ ├── DisplayCoordinatorManagerTest.swift
│ │ │ │ └── ImmediateDisplayCoordinatorTest.swift
│ │ │ ├── InAppMessageAutomationExecutorTest.swift
│ │ │ ├── InAppMessageAutomationPreparerTest.swift
│ │ │ ├── InAppMessageContentValidationTest.swift
│ │ │ ├── InAppMessageTest.swift
│ │ │ ├── InAppMessageThemeTest.swift
│ │ │ └── View/
│ │ │ └── InAppMessageNativeBridgeExtensionTest.swift
│ │ ├── InAppMessaging/
│ │ │ ├── Invalid-UAInAppMessageBannerStyle.plist
│ │ │ ├── Invalid-UAInAppMessageFullScreenStyle.plist
│ │ │ ├── Invalid-UAInAppMessageModalStyle.plist
│ │ │ ├── Valid-UAInAppMessageBannerStyle.plist
│ │ │ ├── Valid-UAInAppMessageFullScreenStyle.plist
│ │ │ ├── Valid-UAInAppMessageHTMLStyle.plist
│ │ │ └── Valid-UAInAppMessageModalStyle.plist
│ │ ├── Legacy/
│ │ │ ├── LegacyInAppAnalyticsTest.swift
│ │ │ ├── LegacyInAppMessageTest.swift
│ │ │ └── LegacyInAppMessagingTest.swift
│ │ ├── Limits/
│ │ │ └── FrequencyLimitManagerTest.swift
│ │ ├── RemoteData/
│ │ │ ├── AutomationRemoteDataAccessTest.swift
│ │ │ ├── AutomationRemoteDataSubscriberTest.swift
│ │ │ └── AutomationSourceInfoStoreTest.swift
│ │ ├── Test Utils/
│ │ │ ├── TestActionRunner.swift
│ │ │ ├── TestActiveTimer.swift
│ │ │ ├── TestAutomationEngine.swift
│ │ │ ├── TestCachedAssets.swift
│ │ │ ├── TestDisplayAdapter.swift
│ │ │ ├── TestDisplayCoordinator.swift
│ │ │ ├── TestFrequencyLimitsManager.swift
│ │ │ ├── TestInAppMessageAnalytics.swift
│ │ │ ├── TestInAppMessageAutomationExecutor.swift
│ │ │ └── TestRemoteDataAccess.swift
│ │ └── Utils/
│ │ ├── ActiveTimerTest.swift
│ │ ├── AirshipAsyncSemaphoreTest.swift
│ │ └── RetryingQueueTests.swift
│ ├── AirshipBasement/
│ │ ├── Info.plist
│ │ └── Source/
│ │ ├── AirshipLogHandler.swift
│ │ ├── AirshipLogPrivacyLevel.swift
│ │ ├── AirshipLogger.swift
│ │ ├── DefaultLogHandler.swift
│ │ └── LogLevel.swift
│ ├── AirshipConfig.xcconfig
│ ├── AirshipCore/
│ │ ├── Info.plist
│ │ ├── Resources/
│ │ │ ├── PrivacyInfo.xcprivacy
│ │ │ ├── UAEvents.xcdatamodeld/
│ │ │ │ └── UAEvents.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── UAMeteredUsage.xcdatamodeld/
│ │ │ │ └── UAMeteredUsage.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── UANativeBridge
│ │ │ ├── UANotificationCategories.plist
│ │ │ ├── UARemoteData.xcdatamodeld/
│ │ │ │ ├── .xccurrentversion
│ │ │ │ ├── UARemoteData 2.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UARemoteData 3.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UARemoteData 4.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ └── UARemoteData.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── UARemoteDataMappingV1toV4.xcmappingmodel/
│ │ │ │ └── xcmapping.xml
│ │ │ ├── UARemoteDataMappingV2toV4.xcmappingmodel/
│ │ │ │ └── xcmapping.xml
│ │ │ ├── UARemoteDataMappingV3toV4.xcmappingmodel/
│ │ │ │ └── xcmapping.xml
│ │ │ ├── UAirshipCache.xcdatamodeld/
│ │ │ │ └── UAAirshipCache.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── af.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── am.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ar.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── bg.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ca.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── cs.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── da.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── de.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── el.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── en.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── es-419.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── es.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── et.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── fa.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── fi.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── fr-CA.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── fr.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── hi.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── hr.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── hu.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── id.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── it.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── iw.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ja.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ko.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── lt.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── lv.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ms.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── nl.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── no.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── pl.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── pt-PT.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── pt.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ro.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ru.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── sk.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── sl.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── sr.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── sv.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── sw.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── th.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── tr.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── uk.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── vi.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── zh-HK.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── zh-Hans.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── zh-Hant.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ └── zu.lproj/
│ │ │ └── UrbanAirship.strings
│ │ ├── Source/
│ │ │ ├── APNSEnvironment.swift
│ │ │ ├── APNSRegistrar.swift
│ │ │ ├── APNSRegistrationResult.swift
│ │ │ ├── AccountEventTemplate.swift
│ │ │ ├── ActionArguments.swift
│ │ │ ├── ActionRegistry.swift
│ │ │ ├── ActionResult.swift
│ │ │ ├── ActionRunner.swift
│ │ │ ├── ActivityViewController.swift
│ │ │ ├── AddCustomEventAction.swift
│ │ │ ├── AddTagsAction.swift
│ │ │ ├── Airship.swift
│ │ │ ├── AirshipAction.swift
│ │ │ ├── AirshipActorValue.swift
│ │ │ ├── AirshipAnalytics.swift
│ │ │ ├── AirshipAnalyticsFeed.swift
│ │ │ ├── AirshipAppCredentials.swift
│ │ │ ├── AirshipApptimizeIntegration.swift
│ │ │ ├── AirshipAsyncChannel.swift
│ │ │ ├── AirshipAsyncImage.swift
│ │ │ ├── AirshipAuthorizedNotificationSettings.swift
│ │ │ ├── AirshipBase64.swift
│ │ │ ├── AirshipButton.swift
│ │ │ ├── AirshipCache.swift
│ │ │ ├── AirshipCancellable.swift
│ │ │ ├── AirshipChannel.swift
│ │ │ ├── AirshipCheckboxToggleStyle.swift
│ │ │ ├── AirshipColor.swift
│ │ │ ├── AirshipComponent.swift
│ │ │ ├── AirshipConfig.swift
│ │ │ ├── AirshipContact.swift
│ │ │ ├── AirshipCoreDataPredicate.swift
│ │ │ ├── AirshipCoreResources.swift
│ │ │ ├── AirshipDate.swift
│ │ │ ├── AirshipDateFormatter.swift
│ │ │ ├── AirshipDevice.swift
│ │ │ ├── AirshipDeviceAudienceResult.swift
│ │ │ ├── AirshipDeviceID.swift
│ │ │ ├── AirshipDisplayTarget.swift
│ │ │ ├── AirshipEmbeddedInfo.swift
│ │ │ ├── AirshipEmbeddedObserver.swift
│ │ │ ├── AirshipEmbeddedSize.swift
│ │ │ ├── AirshipEmbeddedView.swift
│ │ │ ├── AirshipEmbeddedViewManager.swift
│ │ │ ├── AirshipErrors.swift
│ │ │ ├── AirshipEvent.swift
│ │ │ ├── AirshipEventData.swift
│ │ │ ├── AirshipEventType.swift
│ │ │ ├── AirshipEvents.swift
│ │ │ ├── AirshipFont.swift
│ │ │ ├── AirshipImageLoader.swift
│ │ │ ├── AirshipImageProvider.swift
│ │ │ ├── AirshipInputValidator.swift
│ │ │ ├── AirshipInstance.swift
│ │ │ ├── AirshipIvyVersionMatcher.swift
│ │ │ ├── AirshipJSON.swift
│ │ │ ├── AirshipJSONUtils.swift
│ │ │ ├── AirshipKeychainAccess.swift
│ │ │ ├── AirshipLayout.swift
│ │ │ ├── AirshipLocalizationUtils.swift
│ │ │ ├── AirshipLock.swift
│ │ │ ├── AirshipMeteredUsage.swift
│ │ │ ├── AirshipMeteredUsageEvent.swift
│ │ │ ├── AirshipNativePlatform.swift
│ │ │ ├── AirshipNetworkChecker.swift
│ │ │ ├── AirshipNotificationCenter.swift
│ │ │ ├── AirshipNotificationStatus.swift
│ │ │ ├── AirshipPasteboard.swift
│ │ │ ├── AirshipPrivacyManager.swift
│ │ │ ├── AirshipProgressView.swift
│ │ │ ├── AirshipPush.swift
│ │ │ ├── AirshipPushableComponent.swift
│ │ │ ├── AirshipRequest.swift
│ │ │ ├── AirshipRequestSession.swift
│ │ │ ├── AirshipResources.swift
│ │ │ ├── AirshipResponse.swift
│ │ │ ├── AirshipSDKExtension.swift
│ │ │ ├── AirshipSDKModule.swift
│ │ │ ├── AirshipSceneController.swift
│ │ │ ├── AirshipSceneManager.swift
│ │ │ ├── AirshipSimpleLayoutView.swift
│ │ │ ├── AirshipSimpleLayoutViewModel.swift
│ │ │ ├── AirshipStateOverrides.swift
│ │ │ ├── AirshipSwitchToggleStyle.swift
│ │ │ ├── AirshipSwizzler.swift
│ │ │ ├── AirshipTaskSleeper.swift
│ │ │ ├── AirshipTimeCriteria.swift
│ │ │ ├── AirshipTimerProtocol.swift
│ │ │ ├── AirshipToggle.swift
│ │ │ ├── AirshipUnsafeSendableWrapper.swift
│ │ │ ├── AirshipUtils.swift
│ │ │ ├── AirshipVersion.swift
│ │ │ ├── AirshipViewSizeReader.swift
│ │ │ ├── AirshipViewUtils.swift
│ │ │ ├── AirshipWeakValueHolder.swift
│ │ │ ├── AirshipWebview.swift
│ │ │ ├── AirshipWindowFactory.swift
│ │ │ ├── AirshipWorkManager.swift
│ │ │ ├── AirshipWorkManagerProtocol.swift
│ │ │ ├── AirshipWorkRequest.swift
│ │ │ ├── AirshipWorkResult.swift
│ │ │ ├── AirsihpTriggerContext.swift
│ │ │ ├── AnonContactData.swift
│ │ │ ├── AppIntegration.swift
│ │ │ ├── AppRemoteDataProviderDelegate.swift
│ │ │ ├── AppStateTracker.swift
│ │ │ ├── AppStateTrackerAdapter.swift
│ │ │ ├── ApplicationState.swift
│ │ │ ├── ArishipCustomViewManager.swift
│ │ │ ├── AssociatedIdentifiers.swift
│ │ │ ├── AsyncSerialQueue.swift
│ │ │ ├── AsyncStream.swift
│ │ │ ├── Atomic.swift
│ │ │ ├── AttributePendingMutations.swift
│ │ │ ├── AttributeUpdate.swift
│ │ │ ├── Attributes.swift
│ │ │ ├── AttributesEditor.swift
│ │ │ ├── AudienceDeviceInfoProvider.swift
│ │ │ ├── AudienceHashSelector.swift
│ │ │ ├── AudienceOverridesProvider.swift
│ │ │ ├── AudienceUtils.swift
│ │ │ ├── AuthToken.swift
│ │ │ ├── AutoIntegration.swift
│ │ │ ├── BackgroundColorViewModifier.swift
│ │ │ ├── Badger.swift
│ │ │ ├── BannerView.swift
│ │ │ ├── BaseCachingRemoteDataProvider.swift
│ │ │ ├── BasementImport.swift
│ │ │ ├── BasicToggleLayout.swift
│ │ │ ├── BlockAction.swift
│ │ │ ├── BundleExtensions.swift
│ │ │ ├── ButtonLayout.swift
│ │ │ ├── ButtonState.swift
│ │ │ ├── CachedList.swift
│ │ │ ├── CachedValue.swift
│ │ │ ├── CachingSMSValidatorAPIClient.swift
│ │ │ ├── CancellableValueHolder.swift
│ │ │ ├── ChallengeResolver.swift
│ │ │ ├── ChannelAPIClient.swift
│ │ │ ├── ChannelAudienceManager.swift
│ │ │ ├── ChannelAuthTokenAPIClient.swift
│ │ │ ├── ChannelAuthTokenProvider.swift
│ │ │ ├── ChannelBulkUpdateAPIClient.swift
│ │ │ ├── ChannelCapture.swift
│ │ │ ├── ChannelRegistrar.swift
│ │ │ ├── ChannelRegistrationPayload.swift
│ │ │ ├── ChannelScope.swift
│ │ │ ├── ChannelSubscriptionListProvider.swift
│ │ │ ├── ChannelType.swift
│ │ │ ├── Checkbox.swift
│ │ │ ├── CheckboxController.swift
│ │ │ ├── CheckboxState.swift
│ │ │ ├── CheckboxToggleLayout.swift
│ │ │ ├── CircularRegion.swift
│ │ │ ├── CloudSite.swift
│ │ │ ├── CompoundDeviceAudienceSelector.swift
│ │ │ ├── ContactAPIClient.swift
│ │ │ ├── ContactChannel.swift
│ │ │ ├── ContactChannelsAPIClient.swift
│ │ │ ├── ContactChannelsProvider.swift
│ │ │ ├── ContactConflictEvent.swift
│ │ │ ├── ContactManager.swift
│ │ │ ├── ContactManagerProtocol.swift
│ │ │ ├── ContactOperation.swift
│ │ │ ├── ContactRemoteDataProviderDelegate.swift
│ │ │ ├── ContactSubscriptionListClient.swift
│ │ │ ├── Container.swift
│ │ │ ├── CustomEvent.swift
│ │ │ ├── CustomView.swift
│ │ │ ├── DeepLinkAction.swift
│ │ │ ├── DeepLinkDelegate.swift
│ │ │ ├── DefaultAirshipAnalytics.swift
│ │ │ ├── DefaultAirshipChannel.swift
│ │ │ ├── DefaultAirshipContact.swift
│ │ │ ├── DefaultAirshipPush.swift
│ │ │ ├── DefaultAppIntegrationDelegate.swift
│ │ │ ├── DeferredAPIClient.swift
│ │ │ ├── DeferredResolver.swift
│ │ │ ├── DeviceAudienceChecker.swift
│ │ │ ├── DeviceAudienceSelector.swift
│ │ │ ├── DeviceTagSelector.swift
│ │ │ ├── Dispatcher.swift
│ │ │ ├── EmailRegistrationOptions.swift
│ │ │ ├── EmbeddedView.swift
│ │ │ ├── EmbeddedViewSelector.swift
│ │ │ ├── EmptyAction.swift
│ │ │ ├── EmptyView.swift
│ │ │ ├── EnableBehaviorModifiers.swift
│ │ │ ├── EnableFeatureAction.swift
│ │ │ ├── EnvironmentValues.swift
│ │ │ ├── EventAPIClient.swift
│ │ │ ├── EventHandlerViewModifier.swift
│ │ │ ├── EventManager.swift
│ │ │ ├── EventStore.swift
│ │ │ ├── EventUploadScheduler.swift
│ │ │ ├── EventUploadTuningInfo.swift
│ │ │ ├── EventUtils.swift
│ │ │ ├── Experiment.swift
│ │ │ ├── ExperimentDataProvider.swift
│ │ │ ├── ExperimentManager.swift
│ │ │ ├── ExternalURLProcessor.swift
│ │ │ ├── FarmHashFingerprint64.swift
│ │ │ ├── FetchDeviceInfoAction.swift
│ │ │ ├── FontViewModifier.swift
│ │ │ ├── FormController.swift
│ │ │ ├── FormInputViewModifier.swift
│ │ │ ├── HashChecker.swift
│ │ │ ├── IconView.swift
│ │ │ ├── Icons.swift
│ │ │ ├── Image.swift
│ │ │ ├── ImageButton.swift
│ │ │ ├── JSONMatcher.swift
│ │ │ ├── JSONPredicate.swift
│ │ │ ├── JSONValueMatcher.swift
│ │ │ ├── JSONValueMatcherPredicates.swift
│ │ │ ├── JSONValueTransformer.swift
│ │ │ ├── JavaScriptCommand.swift
│ │ │ ├── JavaScriptCommandDelegate.swift
│ │ │ ├── JavaScriptEnvironment.swift
│ │ │ ├── Label.swift
│ │ │ ├── LabelButton.swift
│ │ │ ├── LayoutState.swift
│ │ │ ├── LinearLayout.swift
│ │ │ ├── LiveActivity.swift
│ │ │ ├── LiveActivityRegistrationStatus.swift
│ │ │ ├── LiveActivityRegistrationStatusUpdates.swift
│ │ │ ├── LiveActivityRegistry.swift
│ │ │ ├── LiveActivityRestorer.swift
│ │ │ ├── LiveActivityUpdate.swift
│ │ │ ├── LocaleManager.swift
│ │ │ ├── Media.swift
│ │ │ ├── MediaEventTemplate.swift
│ │ │ ├── MessageCriteria.swift
│ │ │ ├── MessageDisplayHistory.swift
│ │ │ ├── MeteredUsageAPIClient.swift
│ │ │ ├── MeteredUsageStore.swift
│ │ │ ├── ModalView.swift
│ │ │ ├── ModifyAttributesAction.swift
│ │ │ ├── ModifyTagsAction.swift
│ │ │ ├── ModuleLoader.swift
│ │ │ ├── NativeBridge.swift
│ │ │ ├── NativeBridgeActionHandler.swift
│ │ │ ├── NativeBridgeActionRunner.swift
│ │ │ ├── NativeBridgeDelegate.swift
│ │ │ ├── NativeBridgeExtensionDelegate.swift
│ │ │ ├── NativeVideoPlayer.swift
│ │ │ ├── NotificationCategories.swift
│ │ │ ├── NotificationPermissionDelegate.swift
│ │ │ ├── NotificationRegistrar.swift
│ │ │ ├── NotificationRegistrationResult.swift
│ │ │ ├── OpenExternalURLAction.swift
│ │ │ ├── OpenRegistrationOptions.swift
│ │ │ ├── Pager.swift
│ │ │ ├── PagerController.swift
│ │ │ ├── PagerGestureMap.swift
│ │ │ ├── PagerIndicator.swift
│ │ │ ├── PagerState.swift
│ │ │ ├── PagerSwipeDirection.swift
│ │ │ ├── PagerUtils.swift
│ │ │ ├── PasteboardAction.swift
│ │ │ ├── Permission.swift
│ │ │ ├── PermissionDelegate.swift
│ │ │ ├── PermissionPrompter.swift
│ │ │ ├── PermissionStatus.swift
│ │ │ ├── PermissionsManager.swift
│ │ │ ├── PreferenceDataStore.swift
│ │ │ ├── PromptPermissionAction.swift
│ │ │ ├── ProximityRegion.swift
│ │ │ ├── PushNotificationDelegate.swift
│ │ │ ├── RadioInput.swift
│ │ │ ├── RadioInputController.swift
│ │ │ ├── RadioInputState.swift
│ │ │ ├── RadioInputToggleLayout.swift
│ │ │ ├── RateAppAction.swift
│ │ │ ├── RegionEvent.swift
│ │ │ ├── RegistrationDelegate.swift
│ │ │ ├── RemoteConfig.swift
│ │ │ ├── RemoteConfigCache.swift
│ │ │ ├── RemoteConfigManager.swift
│ │ │ ├── RemoteData.swift
│ │ │ ├── RemoteDataAPIClient.swift
│ │ │ ├── RemoteDataInfo.swift
│ │ │ ├── RemoteDataPayload.swift
│ │ │ ├── RemoteDataProtocol.swift
│ │ │ ├── RemoteDataProvider.swift
│ │ │ ├── RemoteDataProviderDelegate.swift
│ │ │ ├── RemoteDataProviderProtocol.swift
│ │ │ ├── RemoteDataSource.swift
│ │ │ ├── RemoteDataSourceStatus.swift
│ │ │ ├── RemoteDataStore.swift
│ │ │ ├── RemoteDataStorePayload.swift
│ │ │ ├── RemoteDataURLFactory.swift
│ │ │ ├── RemoveTagsAction.swift
│ │ │ ├── RetailEventTemplate.swift
│ │ │ ├── RootView.swift
│ │ │ ├── RuntimeConfig.swift
│ │ │ ├── SMSRegistrationOptions.swift
│ │ │ ├── SMSValidatorAPIClient.swift
│ │ │ ├── ScopedSubscriptionListEdit.swift
│ │ │ ├── ScopedSubscriptionListEditor.swift
│ │ │ ├── ScopedSubscriptionListUpdate.swift
│ │ │ ├── Score.swift
│ │ │ ├── ScoreController.swift
│ │ │ ├── ScoreState.swift
│ │ │ ├── ScoreToggleLayout.swift
│ │ │ ├── ScrollLayout.swift
│ │ │ ├── SearchEventTemplate.swift
│ │ │ ├── SerialQueue.swift
│ │ │ ├── SessionEvent.swift
│ │ │ ├── SessionEventFactory.swift
│ │ │ ├── SessionState.swift
│ │ │ ├── SessionTracker.swift
│ │ │ ├── Shapes.swift
│ │ │ ├── ShareAction.swift
│ │ │ ├── SmsLocalePicker.swift
│ │ │ ├── StackImageButton.swift
│ │ │ ├── StateController.swift
│ │ │ ├── StateSubscriptionsModifier.swift
│ │ │ ├── StoryIndicator.swift
│ │ │ ├── SubjectExtension.swift
│ │ │ ├── SubscriptionListAPIClient.swift
│ │ │ ├── SubscriptionListAction.swift
│ │ │ ├── SubscriptionListEdit.swift
│ │ │ ├── SubscriptionListEditor.swift
│ │ │ ├── SubscriptionListProvider.swift
│ │ │ ├── SubscriptionListUpdate.swift
│ │ │ ├── TagActionMutation.swift
│ │ │ ├── TagEditor.swift
│ │ │ ├── TagGroupMutations.swift
│ │ │ ├── TagGroupUpdate.swift
│ │ │ ├── TagGroupsEditor.swift
│ │ │ ├── TagsActionArgs.swift
│ │ │ ├── TextInput.swift
│ │ │ ├── Thomas.swift
│ │ │ ├── ThomasAccessibilityAction.swift
│ │ │ ├── ThomasAccessibleInfo.swift
│ │ │ ├── ThomasActionsPayload.swift
│ │ │ ├── ThomasAssociatedLabelResolver.swift
│ │ │ ├── ThomasAsyncImage.swift
│ │ │ ├── ThomasAttributeName.swift
│ │ │ ├── ThomasAttributeValue.swift
│ │ │ ├── ThomasAutomatedAccessibilityAction.swift
│ │ │ ├── ThomasAutomatedAction.swift
│ │ │ ├── ThomasBorder.swift
│ │ │ ├── ThomasButtonClickBehavior.swift
│ │ │ ├── ThomasButtonTapEffect.swift
│ │ │ ├── ThomasColor.swift
│ │ │ ├── ThomasConstants.swift
│ │ │ ├── ThomasConstrainedSize.swift
│ │ │ ├── ThomasDelegate.swift
│ │ │ ├── ThomasDirection.swift
│ │ │ ├── ThomasDisplayListener.swift
│ │ │ ├── ThomasEmailRegistrationOptions.swift
│ │ │ ├── ThomasEnableBehavior.swift
│ │ │ ├── ThomasEnvironment.swift
│ │ │ ├── ThomasEvent.swift
│ │ │ ├── ThomasEventHandler.swift
│ │ │ ├── ThomasFormDataCollector.swift
│ │ │ ├── ThomasFormField.swift
│ │ │ ├── ThomasFormFieldProcessor.swift
│ │ │ ├── ThomasFormPayloadGenerator.swift
│ │ │ ├── ThomasFormResult.swift
│ │ │ ├── ThomasFormState.swift
│ │ │ ├── ThomasFormStatus.swift
│ │ │ ├── ThomasFormSubmitBehavior.swift
│ │ │ ├── ThomasFormValidationMode.swift
│ │ │ ├── ThomasIcon.swift
│ │ │ ├── ThomasLayoutButtonTapEvent.swift
│ │ │ ├── ThomasLayoutContext.swift
│ │ │ ├── ThomasLayoutDisplayEvent.swift
│ │ │ ├── ThomasLayoutEvent.swift
│ │ │ ├── ThomasLayoutEventContext.swift
│ │ │ ├── ThomasLayoutEventMessageID.swift
│ │ │ ├── ThomasLayoutEventRecorder.swift
│ │ │ ├── ThomasLayoutEventSource.swift
│ │ │ ├── ThomasLayoutFormDisplayEvent.swift
│ │ │ ├── ThomasLayoutFormResultEvent.swift
│ │ │ ├── ThomasLayoutGestureEvent.swift
│ │ │ ├── ThomasLayoutPageActionEvent.swift
│ │ │ ├── ThomasLayoutPageSwipeEvent.swift
│ │ │ ├── ThomasLayoutPageViewEvent.swift
│ │ │ ├── ThomasLayoutPagerCompletedEvent.swift
│ │ │ ├── ThomasLayoutPagerSummaryEvent.swift
│ │ │ ├── ThomasLayoutPermissionResultEvent.swift
│ │ │ ├── ThomasLayoutResolutionEvent.swift
│ │ │ ├── ThomasMargin.swift
│ │ │ ├── ThomasMarkdownOptions.swift
│ │ │ ├── ThomasMediaFit.swift
│ │ │ ├── ThomasOrientation.swift
│ │ │ ├── ThomasPagerControllerBranching.swift
│ │ │ ├── ThomasPagerTracker.swift
│ │ │ ├── ThomasPlatform.swift
│ │ │ ├── ThomasPosition.swift
│ │ │ ├── ThomasPresentationInfo.swift
│ │ │ ├── ThomasPropertyOverride.swift
│ │ │ ├── ThomasSerializable.swift
│ │ │ ├── ThomasShadow.swift
│ │ │ ├── ThomasShapeInfo.swift
│ │ │ ├── ThomasSize.swift
│ │ │ ├── ThomasSizeConstraint.swift
│ │ │ ├── ThomasSmsLocale.swift
│ │ │ ├── ThomasState.swift
│ │ │ ├── ThomasStateAction.swift
│ │ │ ├── ThomasStateStorage.swift
│ │ │ ├── ThomasStateTrigger.swift
│ │ │ ├── ThomasTextAppearance.swift
│ │ │ ├── ThomasToggleStyleInfo.swift
│ │ │ ├── ThomasValidationInfo.swift
│ │ │ ├── ThomasViewController.swift
│ │ │ ├── ThomasViewInfo.swift
│ │ │ ├── ThomasViewedPageInfo.swift
│ │ │ ├── ThomasVisibilityInfo.swift
│ │ │ ├── ThomasWindowSize.swift
│ │ │ ├── ToggleLayout.swift
│ │ │ ├── TouchViewModifier.swift
│ │ │ ├── UAAppIntegrationDelegate.swift
│ │ │ ├── UACoreData.swift
│ │ │ ├── UARemoteDataMapping.swift
│ │ │ ├── UNNotificationRegistrar.swift
│ │ │ ├── URLAllowList.swift
│ │ │ ├── UrlInfo.swift
│ │ │ ├── ValidatableHelper.swift
│ │ │ ├── VideoController.swift
│ │ │ ├── VideoGroupState.swift
│ │ │ ├── VideoMediaNativeView.swift
│ │ │ ├── VideoMediaWebView.swift
│ │ │ ├── VideoState.swift
│ │ │ ├── ViewConstraints.swift
│ │ │ ├── ViewExtensions.swift
│ │ │ ├── ViewFactory.swift
│ │ │ ├── VisibilityViewModifier.swift
│ │ │ ├── WorkBackgroundTasks.swift
│ │ │ ├── WorkConditionsMonitor.swift
│ │ │ ├── WorkRateLimiterActor.swift
│ │ │ ├── Worker.swift
│ │ │ └── WrappingLayout.swift
│ │ └── Tests/
│ │ ├── APNSEnvironmentTest.swift
│ │ ├── AccountEventTemplateTest.swift
│ │ ├── ActionArgumentsTest.swift
│ │ ├── ActionRegistryTest.swift
│ │ ├── AddCustomEventActionTest.swift
│ │ ├── AddTagsActionTest.swift
│ │ ├── AirshipAnalyticFeedTest.swift
│ │ ├── AirshipAsyncChannelTest.swift
│ │ ├── AirshipBase64Test.swift
│ │ ├── AirshipBaseTest.swift
│ │ ├── AirshipCacheTest.swift
│ │ ├── AirshipColorTests.swift
│ │ ├── AirshipConfigTest.swift
│ │ ├── AirshipContactTest.swift
│ │ ├── AirshipDateFormatterTest.swift
│ │ ├── AirshipDeviceIDTest.swift
│ │ ├── AirshipEventsTest.swift
│ │ ├── AirshipHTTPResponseTest.swift
│ │ ├── AirshipIvyVersionMatcherTest.swift
│ │ ├── AirshipJSONTest.swift
│ │ ├── AirshipJSONUtilsTest.swift
│ │ ├── AirshipLocaleManagerTest.swift
│ │ ├── AirshipLocalizationUtilsTest.swift
│ │ ├── AirshipMeteredUsageTest.swift
│ │ ├── AirshipPrivacyManagerTest.swift
│ │ ├── AirshipPushTest.swift
│ │ ├── AirshipTest.swift
│ │ ├── AirshipURLAllowListTest.swift
│ │ ├── AirshipUtilsTest.swift
│ │ ├── AishipFontTests.swift
│ │ ├── Analytics/
│ │ │ ├── Events/
│ │ │ │ ├── ThomasLayoutButtonTapEventTest.swift
│ │ │ │ ├── ThomasLayoutDisplayEventTest.swift
│ │ │ │ ├── ThomasLayoutEventTestUtils.swift
│ │ │ │ ├── ThomasLayoutFormDisplayEventTest.swift
│ │ │ │ ├── ThomasLayoutFormResultEventTest.swift
│ │ │ │ ├── ThomasLayoutGestureEventTest.swift
│ │ │ │ ├── ThomasLayoutPageActionEventTest.swift
│ │ │ │ ├── ThomasLayoutPageSwipeEventAction.swift
│ │ │ │ ├── ThomasLayoutPageViewEventTest.swift
│ │ │ │ ├── ThomasLayoutPagerCompletedEventTest.swift
│ │ │ │ ├── ThomasLayoutPagerSummaryEventTest.swift
│ │ │ │ ├── ThomasLayoutPermissionResultEventTest.swift
│ │ │ │ └── ThomasLayoutResolutionEventTest.swift
│ │ │ ├── ThomasDisplayListenerTest.swift
│ │ │ ├── ThomasLayoutEventContextTest.swift
│ │ │ ├── ThomasLayoutEventMessageIDTest.swift
│ │ │ └── ThomasLayoutEventRecorderTest.swift
│ │ ├── AnalyticsTest.swift
│ │ ├── AppIntegrationTests.swift
│ │ ├── AppRemoteDataProviderDelegateTest.swift
│ │ ├── AppStateTrackerTest.swift
│ │ ├── AssociatedIdentifiersTest.swift
│ │ ├── AttributeEditorTest.swift
│ │ ├── AttributeUpdateTest.swift
│ │ ├── AudienceHashSelectorTest.swift
│ │ ├── AudienceUtilsTest.swift
│ │ ├── CachedListTest.swift
│ │ ├── CachedValueTest.swift
│ │ ├── ChallengeResolverTest.swift
│ │ ├── ChannelAPIClientTest.swift
│ │ ├── ChannelAudienceManagerTest.swift
│ │ ├── ChannelAuthTokenAPIClientTest.swift
│ │ ├── ChannelAuthTokenProviderTest.swift
│ │ ├── ChannelBulkUpdateAPIClientTest.swift
│ │ ├── ChannelCaptureTest.swift
│ │ ├── ChannelRegistrarTest.swift
│ │ ├── ChannelRegistrationPayloadTest.swift
│ │ ├── ChannelTest.swift
│ │ ├── CircularRegionTest.swift
│ │ ├── CompoundDeviceAudienceSelectorTest.swift
│ │ ├── ContactAPIClientTest.swift
│ │ ├── ContactChannelsProviderTest.swift
│ │ ├── ContactManagerTest.swift
│ │ ├── ContactOperationTest.swift
│ │ ├── ContactRemoteDataProviderTest.swift
│ │ ├── ContactSubscriptionListAPIClientTest.swift
│ │ ├── CustomEventTest.swift
│ │ ├── CustomNotificationCategories.plist
│ │ ├── DeepLinkActionTest.swift
│ │ ├── DeepLinkHandlerTest.swift
│ │ ├── DefaultAirshipRequestSessionTest.swift
│ │ ├── DefaultAppIntegrationDelegateTest.swift
│ │ ├── DefaultTaskSleeperTest.swift
│ │ ├── DeferredAPIClientTest.swift
│ │ ├── DeferredResolverTest.swift
│ │ ├── DeviceAudienceSelectorTest.swift
│ │ ├── DeviceTagSelectorTest.swift
│ │ ├── EnableFeatureActionTest.swift
│ │ ├── Environment/
│ │ │ ├── ThomasEnvironmentTest.swift
│ │ │ ├── ThomasFormDataCollectorTest.swift
│ │ │ ├── ThomasFormFieldProcessorTest.swift
│ │ │ ├── ThomasFormFieldTest.swift
│ │ │ ├── ThomasFormPayloadGeneratorTest.swift
│ │ │ ├── ThomasFormStateTest.swift
│ │ │ ├── ThomasPagerTrackerTest.swift
│ │ │ └── ThomasStateTest.swift
│ │ ├── EventAPIClientTest.swift
│ │ ├── EventManagerTest.swift
│ │ ├── EventSchedulerTest.swift
│ │ ├── EventStoreTest.swift
│ │ ├── EventTestUtils.swift
│ │ ├── ExperimentManagerTest.swift
│ │ ├── ExperimentTest.swift
│ │ ├── FarmHashFingerprint64Test.swift
│ │ ├── FetchDeviceInfoActionTest.swift
│ │ ├── HashCheckerTest.swift
│ │ ├── Info.plist
│ │ ├── Input Validation/
│ │ │ ├── AirshipInputValidationTest.swift
│ │ │ ├── CachingSMSValidatorAPIClientTest.swift
│ │ │ ├── SMSValidatorAPIClientTest.swift
│ │ │ └── TestSMSValidatorAPIClient.swift
│ │ ├── JSONPredicateTest.swift
│ │ ├── JavaScriptCommandTest.swift
│ │ ├── JsonMatcherTest.swift
│ │ ├── JsonValueMatcherTest.swift
│ │ ├── LayoutModelsTest.swift
│ │ ├── LiveActivityRegistryTest.swift
│ │ ├── MediaEventTemplateTest.swift
│ │ ├── MeteredUsageApiClientTest.swift
│ │ ├── ModifyAttributesActionTest.swift
│ │ ├── ModifyTagsActionTest.swift
│ │ ├── NativeBridgeActionHandlerTest.swift
│ │ ├── NotificationCategoriesTest.swift
│ │ ├── OpenExternalURLActionTest.swift
│ │ ├── PagerControllerTest.swift
│ │ ├── PasteboardActionTest.swift
│ │ ├── PermissionsManagerTests.swift
│ │ ├── PreferenceDataStoreTest.swift
│ │ ├── PromptPermissionActionTest.swift
│ │ ├── ProximityRegionTest.swift
│ │ ├── RateAppActionTest.swift
│ │ ├── RegionEventTest.swift
│ │ ├── RemoteConfigManagerTest.swift
│ │ ├── RemoteConfigTest.swift
│ │ ├── RemoteDataAPIClientTest.swift
│ │ ├── RemoteDataProviderTest.swift
│ │ ├── RemoteDataStoreTest.swift
│ │ ├── RemoteDataTest.swift
│ │ ├── RemoteDataTestUtils.swift
│ │ ├── RemoteDataURLFactoryTest.swift
│ │ ├── RemoveTagsActionTest.swift
│ │ ├── RetailEventTemplateTest.swift
│ │ ├── RuntimeConfig.swift
│ │ ├── RuntimeConfigTest.swift
│ │ ├── SearchEventTemplateTest.swift
│ │ ├── SessionTrackerTest.swift
│ │ ├── ShareActionTest.swift
│ │ ├── SubscriptionListAPIClientTest.swift
│ │ ├── SubscriptionListActionTest.swift
│ │ ├── Support/
│ │ │ ├── AirshipConfig-Valid-Legacy.plist
│ │ │ ├── AirshipConfig-Valid.plist
│ │ │ ├── TestAppStateTracker.swift
│ │ │ ├── airship.der
│ │ │ ├── development-embedded.mobileprovision
│ │ │ ├── production-embedded.mobileprovision
│ │ │ └── testMCColorsCatalog.xcassets/
│ │ │ ├── Contents.json
│ │ │ └── seapunkTestColor.colorset/
│ │ │ └── Contents.json
│ │ ├── TagEditorTest.swift
│ │ ├── TagGroupsEditorTest.swift
│ │ ├── TestAirshipInstance.swift
│ │ ├── TestAirshipRequestSession.swift
│ │ ├── TestAnalytics.swift
│ │ ├── TestAudienceChecker.swift
│ │ ├── TestCache.swift
│ │ ├── TestChannel.swift
│ │ ├── TestChannelAudienceManager.swift
│ │ ├── TestChannelAuthTokenAPIClient.swift
│ │ ├── TestChannelBulkUpdateAPIClient.swift
│ │ ├── TestChannelRegistrar.swift
│ │ ├── TestContact.swift
│ │ ├── TestContactAPIClient.swift
│ │ ├── TestContactSubscriptionListAPIClient.swift
│ │ ├── TestDate.swift
│ │ ├── TestDeferredResolver.swift
│ │ ├── TestDispatcher.swift
│ │ ├── TestExperimentDataProvider.swift
│ │ ├── TestKeychainAccess.swift
│ │ ├── TestLocaleManager.swift
│ │ ├── TestNetworkMonitor.swift
│ │ ├── TestPermissionPrompter.swift
│ │ ├── TestPrivacyManager.swift
│ │ ├── TestPush.swift
│ │ ├── TestRemoteData.swift
│ │ ├── TestRemoteDataAPIClient.swift
│ │ ├── TestSubscriptionListAPIClient.swift
│ │ ├── TestThomasLayoutEvent.swift
│ │ ├── TestURLAllowList.swift
│ │ ├── TestURLOpener.swift
│ │ ├── TestWorkManager.swift
│ │ ├── TestWorkRateLimiterActor.swift
│ │ ├── ThomasPresentationModelCodingTest.swift
│ │ ├── ThomasValidationTests.swift
│ │ ├── ThomasViewModelTest.swift
│ │ ├── Types/
│ │ │ ├── PagerDisableSwipeSelectorTest.swift
│ │ │ └── ThomasEmailRegistrationOptionsTest.swift
│ │ ├── VideoMediaWebViewTests.swift
│ │ └── WorkManager/
│ │ └── WorkRateLimiterTests.swift
│ ├── AirshipDebug/
│ │ ├── Info.plist
│ │ ├── Resources/
│ │ │ ├── AirshipDebugEventData.xcdatamodeld/
│ │ │ │ └── AirshipEventData.xcdatamodel/
│ │ │ │ └── contents
│ │ │ └── AirshipDebugPushData.xcdatamodeld/
│ │ │ └── AirshipDebugPushData.xcdatamodel/
│ │ │ └── contents
│ │ └── Source/
│ │ ├── AirshipDebugManager.swift
│ │ ├── AirshipDebugResources.swift
│ │ ├── DebugComponent.swift
│ │ ├── DebugSDKModule.swift
│ │ ├── Events/
│ │ │ ├── AirshipEvent.swift
│ │ │ ├── EventData.swift
│ │ │ └── EventDataManager.swift
│ │ ├── Push/
│ │ │ ├── PushData+CoreDataClass.swift
│ │ │ ├── PushData+CoreDataProperties.swift
│ │ │ ├── PushDataManager.swift
│ │ │ └── PushNotification.swift
│ │ ├── ShakeUtils.swift
│ │ └── View/
│ │ ├── AirshipDebugContentView.swift
│ │ ├── AirshipDebugRoute.swift
│ │ ├── AirshipDebugView.swift
│ │ ├── AirshipoDebugTriggers.swift
│ │ ├── Analytics/
│ │ │ ├── AirshipDebugAddEventView.swift
│ │ │ ├── AirshipDebugAnalyticIdentifierEditorView.swift
│ │ │ ├── AirshipDebugAnalyticsView.swift
│ │ │ ├── AirshipDebugEventDetailsView.swift
│ │ │ └── AirshipDebugEventsView.swift
│ │ ├── AppInfo/
│ │ │ └── AirshipDebugAppInfoView.swift
│ │ ├── Automations/
│ │ │ ├── AirshipDebugAutomationsView.swift
│ │ │ ├── AirshipDebugExperimentsView.swift
│ │ │ └── AirshipDebugInAppExperiencesView.swift
│ │ ├── Channel/
│ │ │ ├── AirshipDebugChannelSubscriptionsView.swift
│ │ │ ├── AirshipDebugChannelTagView.swift
│ │ │ └── AirshipDebugChannelView.swift
│ │ ├── Common/
│ │ │ ├── AirshipDebugAddPropertyView.swift
│ │ │ ├── AirshipDebugAddStringPropertyView.swift
│ │ │ ├── AirshipDebugAttributesEditorView.swift
│ │ │ ├── AirshipDebugAudienceSubject.swift
│ │ │ ├── AirshipDebugExtensions.swift
│ │ │ ├── AirshipDebugTagGroupsEditorView.swift
│ │ │ ├── AirshipJSONDetailsView.swift
│ │ │ ├── AirshipJSONView.swift
│ │ │ ├── AirshipToast.swift
│ │ │ └── Extensions.swift
│ │ ├── Contact/
│ │ │ ├── AirshipDebugAddEmailChannelView.swift
│ │ │ ├── AirshipDebugAddOpenChannelView.swift
│ │ │ ├── AirshipDebugAddSMSChannelView.swift
│ │ │ ├── AirshipDebugContactSubscriptionEditorView.swift
│ │ │ ├── AirshipDebugContactView.swift
│ │ │ └── AirshipDebugNamedUserView.swift
│ │ ├── FeatureFlags/
│ │ │ ├── AirshipDebugFeatureFlagDetailsView.swift
│ │ │ └── AirshipDebugFeatureFlagView.swift
│ │ ├── PreferenceCenter/
│ │ │ ├── AirshipDebugPreferencCenterItemView.swift
│ │ │ └── AirshipDebugPreferenceCenterView.swift
│ │ ├── PrivacyManager/
│ │ │ └── AirshipDebugPrivacyManagerView.swift
│ │ ├── Push/
│ │ │ ├── AirshipDebugPushDetailsView.swift
│ │ │ ├── AirshipDebugPushView.swift
│ │ │ └── AirshipDebugReceivedPushView.swift
│ │ └── TvOSComponents/
│ │ ├── TVDatePicker.swift
│ │ └── TVSlider.swift
│ ├── AirshipFeatureFlags/
│ │ ├── Info.plist
│ │ ├── Source/
│ │ │ ├── AirshipFeatureFlagsSDKModule.swift
│ │ │ ├── DeferredFlagResolver.swift
│ │ │ ├── FeatureFlag.swift
│ │ │ ├── FeatureFlagAnalytics.swift
│ │ │ ├── FeatureFlagComponent.swift
│ │ │ ├── FeatureFlagManager.swift
│ │ │ ├── FeatureFlagManagerProtocol.swift
│ │ │ ├── FeatureFlagPayload.swift
│ │ │ ├── FeatureFlagResultCache.swift
│ │ │ ├── FeatureFlagUpdateStatus.swift
│ │ │ └── FeatureFlagsRemoteDataAccess.swift
│ │ └── Tests/
│ │ ├── FeatureFlagAnalyticsTest.swift
│ │ ├── FeatureFlagDeferredResolverTest.swift
│ │ ├── FeatureFlagInfoTest.swift
│ │ ├── FeatureFlagManagerTest.swift
│ │ ├── FeatureFlagRemoteDataAccessTest.swift
│ │ ├── FeatureFlagResultCacheTest.swift
│ │ └── FeatureFlagVariablesTest.swift
│ ├── AirshipMessageCenter/
│ │ ├── Info.plist
│ │ ├── Resources/
│ │ │ ├── TestAssets.xcassets/
│ │ │ │ ├── Contents.json
│ │ │ │ └── testNamedColor.colorset/
│ │ │ │ └── Contents.json
│ │ │ ├── UAInbox.xcdatamodeld/
│ │ │ │ ├── .xccurrentversion
│ │ │ │ ├── UAInbox 2.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAInbox 3.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAInbox 4.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ └── UAInbox.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── UAInboxDataMappingV1toV4.xcmappingmodel/
│ │ │ │ └── xcmapping.xml
│ │ │ ├── UAInboxDataMappingV2toV4.xcmappingmodel/
│ │ │ │ └── xcmapping.xml
│ │ │ └── UAInboxDataMappingV3toV4.xcmappingmodel/
│ │ │ └── xcmapping.xml
│ │ ├── Source/
│ │ │ ├── AirshipMessageCenterResources.swift
│ │ │ ├── MessageCenter.swift
│ │ │ ├── MessageCenterAPIClient.swift
│ │ │ ├── MessageCenterAction.swift
│ │ │ ├── MessageCenterComponent.swift
│ │ │ ├── MessageCenterList.swift
│ │ │ ├── MessageCenterNativeBridgeExtension.swift
│ │ │ ├── MessageCenterPredicate.swift
│ │ │ ├── MessageCenterSDKModule.swift
│ │ │ ├── MessageCenterStore.swift
│ │ │ ├── MessageViewAnalytics.swift
│ │ │ ├── Model/
│ │ │ │ ├── InboxMessageData.swift
│ │ │ │ ├── MessageCenterMessage.swift
│ │ │ │ ├── MessageCenterUser.swift
│ │ │ │ └── UAInboxDataMapping.swift
│ │ │ ├── StateStore/
│ │ │ │ └── NativeLayoutPersistentDataStore.swift
│ │ │ ├── Theme/
│ │ │ │ ├── MessageCenterNavigationAppearance.swift
│ │ │ │ ├── MessageCenterTheme.swift
│ │ │ │ └── MessageCenterThemeLoader.swift
│ │ │ ├── ViewModel/
│ │ │ │ └── MessageCenterListItemViewModel.swift
│ │ │ └── Views/
│ │ │ ├── MessageCenter/
│ │ │ │ ├── MessageCenterContent.swift
│ │ │ │ ├── MessageCenterController.swift
│ │ │ │ ├── MessageCenterNavigationStack.swift
│ │ │ │ ├── MessageCenterSplitNavigationView.swift
│ │ │ │ ├── MessageCenterUIKitAppearance.swift
│ │ │ │ └── MessageCenterView.swift
│ │ │ ├── MessageCenterViewController.swift
│ │ │ ├── MessageList/
│ │ │ │ ├── MessageCenterListItemView.swift
│ │ │ │ ├── MessageCenterListView.swift
│ │ │ │ ├── MessageCenterListViewModel.swift
│ │ │ │ └── MessageCenterListViewWithNavigation.swift
│ │ │ ├── MessageView/
│ │ │ │ ├── MessageCenterMessageError.swift
│ │ │ │ ├── MessageCenterMessageView.swift
│ │ │ │ ├── MessageCenterMessageViewModel.swift
│ │ │ │ ├── MessageCenterMessageViewWithNavigation.swift
│ │ │ │ ├── MessageCenterThomasView.swift
│ │ │ │ └── MessageCenterWebView.swift
│ │ │ └── Shared/
│ │ │ └── MessageCenterBackButton.swift
│ │ └── Tests/
│ │ ├── MessageCenterAPIClientTest.swift
│ │ ├── MessageCenterListTests.swift
│ │ ├── MessageCenterMessageTest.swift
│ │ ├── MessageCenterStoreTest.swift
│ │ ├── MessageCenterThemeLoaderTest.swift
│ │ └── MessageViewAnalyticsTest.swift
│ ├── AirshipObjectiveC/
│ │ └── Source/
│ │ ├── Analytics/
│ │ │ ├── Events/
│ │ │ │ ├── Templates/
│ │ │ │ │ ├── UAAccountEventTemplate.swift
│ │ │ │ │ ├── UAMediaEventTemplate.swift
│ │ │ │ │ ├── UARetailEventTemplate.swift
│ │ │ │ │ └── UASearchEventTemplate.swift
│ │ │ │ └── UACustomEvent.swift
│ │ │ ├── UAAnalytics.swift
│ │ │ └── UAAssociatedIdentifiers.swift
│ │ ├── Automation/
│ │ │ ├── UAInAppAutomation.swift
│ │ │ └── UAInAppMessaging.swift
│ │ ├── Channel/
│ │ │ ├── UAAttributesEditor.swift
│ │ │ ├── UAChannel.swift
│ │ │ ├── UATagEditor.swift
│ │ │ └── UATagGroupsEditor.swift
│ │ ├── Contact/
│ │ │ └── UAContact.swift
│ │ ├── Embedded/
│ │ │ └── UAEmbeddedViewController.swift
│ │ ├── MessageCenter/
│ │ │ ├── UAMessageCenter.swift
│ │ │ ├── UAMessageCenterList.swift
│ │ │ ├── UAMessageCenterMessage.swift
│ │ │ ├── UAMessageCenterNativeBridge.swift
│ │ │ ├── UAMessageCenterTheme.swift
│ │ │ ├── UAMessageCenterUser.swift
│ │ │ └── UAMessageCenterViewController.swift
│ │ ├── PreferenceCenter/
│ │ │ ├── UAPreferenceCenter.swift
│ │ │ └── UAPreferenceCenterViewController.swift
│ │ ├── PrivacyManager/
│ │ │ └── UAPrivacyManager.swift
│ │ ├── Push/
│ │ │ ├── UAAuthorizedNotificationSettings.swift
│ │ │ ├── UANotificationCategories.swift
│ │ │ ├── UAPush.swift
│ │ │ ├── UAPushNotificationDelegate.swift
│ │ │ ├── UAPushNotificationStatus.swift
│ │ │ └── UARegistrationDelegate.swift
│ │ ├── Subscription Lists/
│ │ │ ├── UAScopedSubscriptionListEditor.swift
│ │ │ └── UASubscriptionListEditor.swift
│ │ ├── UAAppIntegration.swift
│ │ ├── UAConfig.swift
│ │ ├── UADeepLinkDelegate.swift
│ │ ├── UAFeature.swift
│ │ ├── UAPermission.swift
│ │ ├── UAPermissionsManager.swift
│ │ └── UAirship.swift
│ └── AirshipPreferenceCenter/
│ ├── Info.plist
│ ├── Source/
│ │ ├── AirshipPreferenceCenterResources.swift
│ │ ├── PreferenceCenter.swift
│ │ ├── PreferenceCenterComponent.swift
│ │ ├── PreferenceCenterSDKModule.swift
│ │ ├── data/
│ │ │ ├── PreferenceCenterConfig+ContactManagement.swift
│ │ │ ├── PreferenceCenterConfig.swift
│ │ │ ├── PreferenceCenterDecoder.swift
│ │ │ └── PreferenceCenterResponse.swift
│ │ ├── theme/
│ │ │ ├── PreferenceCenterTheme.swift
│ │ │ └── PreferenceCenterThemeLoader.swift
│ │ └── view/
│ │ ├── ChannelSubscriptionView.swift
│ │ ├── CommonSectionView.swift
│ │ ├── ConditionsMonitor.swift
│ │ ├── ConditionsViewModifier.swift
│ │ ├── Contact management/
│ │ │ ├── AddChannelPromptView.swift
│ │ │ ├── AddChannelPromptViewModel.swift
│ │ │ ├── ChannelListView.swift
│ │ │ ├── ChannelListViewCell.swift
│ │ │ ├── Component Views/
│ │ │ │ ├── BackgroundShape.swift
│ │ │ │ ├── ChannelTextField.swift
│ │ │ │ ├── EmptySectionLabel.swift
│ │ │ │ ├── ErrorLabel.swift
│ │ │ │ └── PreferenceCloseButton.swift
│ │ │ ├── ContactManagementView.swift
│ │ │ └── FooterView.swift
│ │ ├── ContactSubscriptionGroupView.swift
│ │ ├── ContactSubscriptionView.swift
│ │ ├── LabeledSectionBreakView.swift
│ │ ├── PreferenceCenterAlertView.swift
│ │ ├── PreferenceCenterContent.swift
│ │ ├── PreferenceCenterContentLoader.swift
│ │ ├── PreferenceCenterContentStyle.swift
│ │ ├── PreferenceCenterState.swift
│ │ ├── PreferenceCenterUtils.swift
│ │ ├── PreferenceCenterView.swift
│ │ ├── PreferenceCenterViewControllerFactory.swift
│ │ └── PreferenceCenterViewExtensions.swift
│ └── Tests/
│ ├── Info.plist
│ ├── PreferenceCenterTest.swift
│ ├── data/
│ │ └── PreferenceCenterConfigTest.swift
│ ├── test data/
│ │ ├── TestLegacyTheme.plist
│ │ ├── TestTheme.plist
│ │ ├── TestThemeEmpty.plist
│ │ └── TestThemeInvalid.plist
│ ├── theme/
│ │ └── PreferenceThemeLoaderTest.swift
│ └── view/
│ └── PreferenceCenterStateTest.swift
├── Airship.podspec
├── Airship.xcworkspace/
│ ├── contents.xcworkspacedata
│ └── xcshareddata/
│ ├── IDEWorkspaceChecks.plist
│ ├── WorkspaceSettings.xcsettings
│ └── swiftpm/
│ └── Package.resolved
├── AirshipExtensions/
│ ├── AirshipExtensions.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── xcshareddata/
│ │ └── xcschemes/
│ │ └── AirshipNotificationServiceExtension.xcscheme
│ └── AirshipNotificationServiceExtension/
│ ├── Info.plist
│ ├── Source/
│ │ ├── AirshipExtensionConfig.swift
│ │ ├── AirshipExtensionLogger.swift
│ │ ├── AirshipNotificationMutationProvider.swift
│ │ ├── ChallengeResolver.swift
│ │ ├── MediaAttachmentPayload.swift
│ │ └── UANotificationServiceExtension.swift
│ └── Tests/
│ ├── Info.plist
│ ├── MediaAttachmentPayloadTest.swift
│ └── UANotificationServiceExtensionTests.swift
├── AirshipServiceExtension.podspec
├── CHANGELOG.md
├── DevApp/
│ ├── AirshipConfig.plist.sample
│ ├── Dev App/
│ │ ├── AirshipConfig.plist.sample
│ │ ├── AppRouter.swift
│ │ ├── Assets.xcassets/
│ │ │ ├── AccentColor.colorset/
│ │ │ │ └── Contents.json
│ │ │ ├── AppIcon.appiconset/
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ └── HomeHeroImage.imageset/
│ │ │ └── Contents.json
│ │ ├── DevApp.entitlements
│ │ ├── MainApp.swift
│ │ ├── Setup/
│ │ │ ├── AirshipInitializer.swift
│ │ │ ├── DeepLinkHandler.swift
│ │ │ ├── LiveActivityHandler.swift
│ │ │ └── PushNotificationHandler.swift
│ │ ├── Thomas/
│ │ │ ├── CustomView/
│ │ │ │ └── Examples/
│ │ │ │ ├── AdView.swift
│ │ │ │ ├── BiometricLoginView.swift
│ │ │ │ ├── CameraView.swift
│ │ │ │ ├── MapRouteView.swift
│ │ │ │ └── Weather/
│ │ │ │ ├── WeatherView.swift
│ │ │ │ └── WeatherViewModel.swift
│ │ │ ├── Embedded Playground View/
│ │ │ │ ├── EmbeddedPlaygroundMenuView.swift
│ │ │ │ ├── EmbeddedPlaygroundPicker.swift
│ │ │ │ ├── EmbeddedPlaygroundView.swift
│ │ │ │ ├── KeyView.swift
│ │ │ │ └── PlaceholderToggleView.swift
│ │ │ ├── JurassicPark.otf
│ │ │ ├── Layouts.swift
│ │ │ ├── LayoutsList.swift
│ │ │ ├── Resources/
│ │ │ │ ├── Messages/
│ │ │ │ │ ├── Banner/
│ │ │ │ │ │ ├── media-left-jurassic-park-bottom.json
│ │ │ │ │ │ ├── media-left.json
│ │ │ │ │ │ ├── media-right-jurassic-park-bottom.json
│ │ │ │ │ │ ├── media-right-jurassic-park-text-alignment-1.json
│ │ │ │ │ │ ├── media-right-jurassic-park-text-alignment-2.json
│ │ │ │ │ │ ├── media-right-jurassic-park-top.json
│ │ │ │ │ │ ├── media-right.json
│ │ │ │ │ │ └── small-banner.json
│ │ │ │ │ ├── Fullscreen/
│ │ │ │ │ │ ├── header-body-media-joined.json
│ │ │ │ │ │ ├── header-body-separate.json
│ │ │ │ │ │ └── media-header-body-stacked.json
│ │ │ │ │ ├── HTML/
│ │ │ │ │ │ ├── fullscreen-airship.json
│ │ │ │ │ │ ├── sized-airship.json
│ │ │ │ │ │ ├── sized-too-tall-airship.json
│ │ │ │ │ │ └── sized-too-wide-airship.json
│ │ │ │ │ └── Modal/
│ │ │ │ │ ├── a11y-test.json
│ │ │ │ │ ├── accessibility-modal.json
│ │ │ │ │ ├── header-body-media-joined.json
│ │ │ │ │ ├── header-body-media-stacked.json
│ │ │ │ │ ├── header-media-body-joined.json
│ │ │ │ │ ├── header-media-body-stacked.json
│ │ │ │ │ ├── media-header-body-joined.json
│ │ │ │ │ ├── media-header-body-separate-tall-image.json
│ │ │ │ │ ├── media-header-body-separate-wide-image.json
│ │ │ │ │ ├── media-header-body-separate.json
│ │ │ │ │ ├── media-header-body-stacked.json
│ │ │ │ │ ├── swipe-gesture-test.json
│ │ │ │ │ └── youtube-video-modal.json
│ │ │ │ ├── Scenes/
│ │ │ │ │ ├── Banner/
│ │ │ │ │ │ ├── banner-bottom.yml
│ │ │ │ │ │ ├── banner-safe-area-bottom.yml
│ │ │ │ │ │ ├── banner-safe-area-top.yml
│ │ │ │ │ │ ├── banner-top-old.yml
│ │ │ │ │ │ └── banner-top.yml
│ │ │ │ │ ├── Embedded/
│ │ │ │ │ │ ├── 100pct x 100pct.yml
│ │ │ │ │ │ ├── 100pct x auto.yml
│ │ │ │ │ │ ├── 50pct x 50pct.yml
│ │ │ │ │ │ ├── 75pct x 200pt.yml
│ │ │ │ │ │ ├── auto x 200.yml
│ │ │ │ │ │ ├── gif_and_vid.yml
│ │ │ │ │ │ ├── home_image.yml
│ │ │ │ │ │ ├── home_rating.yml
│ │ │ │ │ │ └── home_special_offer.yml
│ │ │ │ │ └── Modal/
│ │ │ │ │ ├── 1-pager-different-path.yml
│ │ │ │ │ ├── 1-pager-pranching-test.yml
│ │ │ │ │ ├── 1qa.yml
│ │ │ │ │ ├── MOBILE_4621.yml
│ │ │ │ │ ├── _a11y_focus.json
│ │ │ │ │ ├── _vimeo.ml
│ │ │ │ │ ├── a-gif-and-youtube.yml
│ │ │ │ │ ├── a-landscape-video.yml
│ │ │ │ │ ├── aaa-modal-bg-image.yaml
│ │ │ │ │ ├── aaa-modal.json
│ │ │ │ │ ├── accessibility-action-story.yml
│ │ │ │ │ ├── accessibility-actions-modal-pager-fullsize.yml
│ │ │ │ │ ├── accessibility-test-modal.json
│ │ │ │ │ ├── airship-quiz-1.yml
│ │ │ │ │ ├── async_view.yaml
│ │ │ │ │ ├── auto_height_modal.yml
│ │ │ │ │ ├── button_layout.yml
│ │ │ │ │ ├── container.yml
│ │ │ │ │ ├── containerception.yml
│ │ │ │ │ ├── custom-fonts.yml
│ │ │ │ │ ├── form-input-branching-child-form.yaml
│ │ │ │ │ ├── form-input-branching-on-demand.yml
│ │ │ │ │ ├── form_immediate_phone.yaml
│ │ │ │ │ ├── form_immediate_validation_email.yaml
│ │ │ │ │ ├── form_on_demand_validation_email.yaml
│ │ │ │ │ ├── form_single_page_on_demand.yml
│ │ │ │ │ ├── forms.yml
│ │ │ │ │ ├── image-pager-test.yml
│ │ │ │ │ ├── image_cropping.yml
│ │ │ │ │ ├── image_resizing.yml
│ │ │ │ │ ├── image_scaling.yml
│ │ │ │ │ ├── is-accessibility-alert-form.yml
│ │ │ │ │ ├── linear_layout_scroll.yml
│ │ │ │ │ ├── markdown.yml
│ │ │ │ │ ├── martin.json
│ │ │ │ │ ├── mobile-4599.yml
│ │ │ │ │ ├── mobile-5409-2.json
│ │ │ │ │ ├── mobile-5409.json
│ │ │ │ │ ├── mobile-5553-shape-corners.yml
│ │ │ │ │ ├── modal-buttons.yml
│ │ │ │ │ ├── modal-checkboxes-radios.yml
│ │ │ │ │ ├── modal-constrained.yml
│ │ │ │ │ ├── modal-custom-biometric-login.yml
│ │ │ │ │ ├── modal-custom-interstitial-banner-ad.yaml
│ │ │ │ │ ├── modal-custom-weather-and-map.yaml
│ │ │ │ │ ├── modal-day-night-colors.yml
│ │ │ │ │ ├── modal-disable-back-button.yml
│ │ │ │ │ ├── modal-labels.yml
│ │ │ │ │ ├── modal-linear-layout-horizontal.yml
│ │ │ │ │ ├── modal-linear-layout-vertical.yml
│ │ │ │ │ ├── modal-linear-layout-webview-emoji.yml
│ │ │ │ │ ├── modal-linear-layout.yml
│ │ │ │ │ ├── modal-media-header-body-stacked-buttons.yml
│ │ │ │ │ ├── modal-pager-fullsize.yml
│ │ │ │ │ ├── modal-pager-with-title-and-button.yml
│ │ │ │ │ ├── modal-placement-selectors.yml
│ │ │ │ │ ├── modal-responsive.yml
│ │ │ │ │ ├── modal-score.yml
│ │ │ │ │ ├── modal-transparancy.yml
│ │ │ │ │ ├── modal-video-cropping.yml
│ │ │ │ │ ├── modal-webview-full-size.yml
│ │ │ │ │ ├── modal-webview-with-buttons.yml
│ │ │ │ │ ├── model-custom-camera-view.yml
│ │ │ │ │ ├── multi-video-players.yml
│ │ │ │ │ ├── nps.yml
│ │ │ │ │ ├── pager-behaviors.yml
│ │ │ │ │ ├── portrait-video.yml
│ │ │ │ │ ├── qa-advseg-2998.yml
│ │ │ │ │ ├── qa-advseg-2999.yml
│ │ │ │ │ ├── safe-areas-linear-layout.yml
│ │ │ │ │ ├── safe-areas-pager.yml
│ │ │ │ │ ├── scene-scroll.yml
│ │ │ │ │ ├── story-one-screen.yml
│ │ │ │ │ ├── story-video-and-gif.yml
│ │ │ │ │ ├── story.yml
│ │ │ │ │ ├── tap-handler-visibility.yml
│ │ │ │ │ ├── textInput
│ │ │ │ │ ├── toggle-branching-simple-quiz.yml
│ │ │ │ │ ├── toggle-layout-types.yml
│ │ │ │ │ ├── toggle-rating-numbers.yaml
│ │ │ │ │ ├── toggle-rating-stars-small.yaml
│ │ │ │ │ ├── toggleLayout.yml
│ │ │ │ │ ├── tour-example.yml
│ │ │ │ │ ├── tour-no-safe-areas.yml
│ │ │ │ │ ├── tour-safe-areas.yml
│ │ │ │ │ ├── unsafe_areas.yml
│ │ │ │ │ ├── video-controls.yml
│ │ │ │ │ ├── video-qa.yaml
│ │ │ │ │ ├── video-story-multipage.yml
│ │ │ │ │ ├── video-story.yml
│ │ │ │ │ ├── video-test.yml
│ │ │ │ │ ├── video-youtube.yml
│ │ │ │ │ ├── video_cropping.yml
│ │ │ │ │ ├── view_overrides.yml
│ │ │ │ │ ├── wide-image-pager-test.yml
│ │ │ │ │ ├── wrapping-modal-score.yml
│ │ │ │ │ ├── wrapping-multi-page.yml
│ │ │ │ │ ├── wrapping-nps-test-2.yml
│ │ │ │ │ ├── wrapping-nps-test-3.yml
│ │ │ │ │ ├── wrapping-nps-test-4.yml
│ │ │ │ │ ├── wrapping-nps-test-5.yml
│ │ │ │ │ └── wrapping-nps-test.yml
│ │ │ │ └── SharedAssets.xcassets/
│ │ │ │ ├── 23GrandeAccentColor.colorset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── 23GrandeAllFashion.imageset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── 23GrandeAppIcon.appiconset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── 23GrandeArrival1.imageset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── 23GrandeArrival2.imageset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── 23GrandeHomeBanner.imageset/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── ThomasLayoutListView.swift
│ │ │ └── ThomasLayoutViewModel.swift
│ │ ├── Toast.swift
│ │ └── View/
│ │ ├── AppView.swift
│ │ ├── HomeView.swift
│ │ ├── NamedUserView.swift
│ │ └── ToastView.swift
│ ├── Dev-App-Info.plist
│ ├── DevApp App Clip/
│ │ ├── Airship_Sample_App_Clip.entitlements
│ │ └── Info.plist
│ ├── DevApp Service Extension/
│ │ ├── Info.plist
│ │ └── NotificationService.swift
│ ├── DevApp.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace/
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata/
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── swiftpm/
│ │ └── Package.resolved
│ ├── LiveActivity/
│ │ ├── Assets.xcassets/
│ │ │ ├── 23Grande.imageset/
│ │ │ │ └── Contents.json
│ │ │ ├── AccentColor.colorset/
│ │ │ │ └── Contents.json
│ │ │ ├── AppIcon.appiconset/
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ └── WidgetBackground.colorset/
│ │ │ └── Contents.json
│ │ ├── DeliveryActivityWidget.swift
│ │ ├── DeliveryAttributes.swift
│ │ ├── Info.plist
│ │ ├── LiveActivity.intentdefinition
│ │ └── Widgets.swift
│ └── Sample Plist/
│ └── AirshipConfig.plist.sample
├── DevApp watchOS/
│ ├── DevApp watchOS/
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets/
│ │ │ ├── AccentColor.colorset/
│ │ │ │ └── Contents.json
│ │ │ ├── AppIcon.appiconset/
│ │ │ │ └── Contents.json
│ │ │ └── Contents.json
│ │ ├── HomeView.swift
│ │ ├── MainApp.swift
│ │ ├── NamedUserView.swift
│ │ ├── Preview Content/
│ │ │ └── Preview Assets.xcassets/
│ │ │ ├── AccentColor.colorset/
│ │ │ │ └── Contents.json
│ │ │ ├── AppIcon.appiconset/
│ │ │ │ └── Contents.json
│ │ │ └── Contents.json
│ │ └── PushNotificationPayload.apns
│ └── DevApp watchOS.xcodeproj/
│ ├── project.pbxproj
│ └── project.xcworkspace/
│ └── contents.xcworkspacedata
├── Documentation/
│ ├── .jazzy.json
│ ├── Migration/
│ │ ├── README.md
│ │ ├── migration-guide-16-17.md
│ │ ├── migration-guide-17-18.md
│ │ ├── migration-guide-18-19.md
│ │ └── migration-guide-19-20.md
│ ├── abstracts/
│ │ └── Guides.md
│ └── readme-for-jazzy.md
├── Gemfile
├── LICENSE
├── Makefile
├── Package.swift
├── README.md
└── scripts/
├── airship_version.sh
├── build_docCs.sh
├── build_sample.sh
├── build_sample_watchos.sh
├── build_xcframeworks.sh
├── check_size.sh
├── check_version.sh
├── check_xcbeautify.sh
├── gemini-review-prompt.md
├── get_xcode_path.sh
├── package.sh
├── package_xcframeworks.sh
├── pr-review.mjs
├── run_xcodebuild.sh
└── update_version.sh
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/CODEOWNERS
================================================
# https://help.github.com/en/articles/about-code-owners
* @urbanairship/mobile
================================================
FILE: .github/CONTRIBUTING.md
================================================
## Contributing Code
We accept pull requests! If you would like to submit a pull request, please fill out and submit our
[Contributor License Agreement](https://docs.google.com/forms/d/e/1FAIpQLScErfiz-fXSPpVZ9r8Di2Tr2xDFxt5MgzUel0__9vqUgvko7Q/viewform).
One of our engineers will verify receipt of the agreement before approving your pull request.
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
❗For how-to inquiries involving Airship functionality or use cases, please
contact (support)[https://support.airship.com/].
<!---
Please fill out this template when submitting an issue.
All lines beginning with an ℹ symbol indicate information that's
important for you to provide to ensure your issue is resolved as
quickly and efficiently as possible.
-->
# Preliminary Info
### What Airship dependencies are you using?
<!-- ℹ Please include Airship dependencies and their versions here. -->
### What are the versions of any relevant development tools you are using?
<!-- ℹ If applicable, please include any relevant information about the
version of your IDE, plugin(s), or package manager(s) here. -->
# Report
### What unexpected behavior are you seeing?
<!-- ℹ Please provide a brief description of the unexpected behavior here. -->
### What is the expected behavior?
<!-- ℹ Please provide a brief description of the expected behavior here. -->
### What are the steps to reproduce the unexpected behavior?
<!-- ℹ Please provide reproduction steps here. -->
### Do you have logging for the issue?
<!-- ℹ Please provide links to gists of any pertinent logs here. -->
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
<!--
Please fill out this template when submitting an pull request.
All lines beginning with an ℹ symbol indicate information that's
important for you to provide to ensure your pull request is reviewed
as quickly and efficiently as possible.
-->
### What do these changes do?
<!-- ℹ Please provide a description of your changes here. -->
### Why are these changes necessary?
<!-- ℹ Please provide a concise description of why your changes are
necessary here. -->
### How did you verify these changes?
<!-- ℹ Please provide any relevant steps to verify or test your work. Make
this description clear enough so someone unfamiliar with your work could
verify for you. -->
#### Verification Screenshots:
<!-- ℹ If applicable, please provide screenshots here. -->
### Anything else a reviewer should know?
<!-- ℹ Please provide any additional notes for the reviewer here. -->
================================================
FILE: .github/workflows/check-cert.yml
================================================
name: Check Certificate Expiration
on:
workflow_dispatch:
jobs:
check-cert:
runs-on: macos-latest
steps:
- name: Check Certificate Details
env:
CERT_BASE64: ${{ secrets.CERTIFICATEXC }}
CERT_PASS: ${{ secrets.CERTIFICATEXC_PASS }}
run: |
# Decode the certificate from base64
echo "$CERT_BASE64" | base64 --decode > cert.p12
# Extract certificate info without importing to keychain
# This will show expiration date and other details
openssl pkcs12 -in cert.p12 -passin pass:"$CERT_PASS" -nokeys -clcerts | openssl x509 -noout -subject -issuer -dates -fingerprint
# Also show the certificate name as it appears for codesigning
openssl pkcs12 -in cert.p12 -passin pass:"$CERT_PASS" -nokeys -clcerts | openssl x509 -noout -subject | sed 's/subject=//'
# Clean up
rm cert.p12
================================================
FILE: .github/workflows/check_framework_size.yml
================================================
name: Check Framework Size
on:
workflow_dispatch:
env:
BUNDLE_PATH: vendor/bundle
jobs:
framework-size:
runs-on: macos-15-xlarge
steps:
- uses: actions/checkout@v4
- name: Restore Size
uses: actions/cache@v4
with:
path: build/previous-size.txt
key: size-cache-${{ github.head_ref }}
restore-keys: |
size-cache-
- name: Install Apple Certificate
uses: apple-actions/import-codesign-certs@v3
with:
p12-file-base64: ${{ secrets.CERTIFICATEXC }}
p12-password: ${{ secrets.CERTIFICATEXC_PASS }}
- name: Framework size
run: make compare-framework-size
- name: Save Size
uses: actions/cache@v4
with:
path: build/previous-size.txt
key: size-cache-${{ github.head_ref }}-${{ github.run_id }}
================================================
FILE: .github/workflows/ci.yml
================================================
name: CI Pull Request
on: [pull_request]
env:
BUNDLE_PATH: vendor/bundle
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
run-tests-core:
runs-on: macos-15-xlarge
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Test
run: make test-core
run-tests-message-center:
runs-on: macos-15-xlarge
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Test
run: make test-message-center
run-tests-preference-center:
runs-on: macos-15-xlarge
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Test
run: make test-preference-center
run-tests-feature-flags:
runs-on: macos-15-xlarge
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Test
run: make test-feature-flags
run-tests-automation:
runs-on: macos-15-xlarge
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Test
run: make test-automation
run-tests-extensions:
runs-on: macos-15-xlarge
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Test
run: make test-service-extension
build-airship-objectiveC:
runs-on: macos-15-xlarge
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Build AirshipObjectiveC target
run: make build-airship-objectiveC
build-samples:
runs-on: macos-15-xlarge
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Build samples
run: make build-samples
# run-tests-watchos:
# runs-on: macos-15-xlarge
# steps:
# - uses: actions/checkout@v4
# - uses: ruby/setup-ruby@v1
# with:
# bundler-cache: true
# - name: Install xcodegen
# run: brew install xcodegen
# - name: Install Apple Certificate
# uses: apple-actions/import-codesign-certs@v1
# with:
# p12-file-base64: ${{ secrets.CERTIFICATE_P12_BASE64 }}
# p12-password: ${{ secrets.CERTIFICATE_P12_PASSWORD }}
# - name: Install the provisioning profile
# env:
# PROVISIONING_APP_BASE64: ${{ secrets.PROVISIONING_PROFILE_APP_BASE64 }}
# PROVISIONING_EXT_BASE64: ${{ secrets.PROVISIONING_PROFILE_EXT_BASE64 }}
# run: |
# PP_APP_PATH=$RUNNER_TEMP/wkapp_prof.mobileprovision
# PP_EXT_PATH=$RUNNER_TEMP/wkext_prof.mobileprovision
# echo -n "$PROVISIONING_APP_BASE64" | base64 --decode > $PP_APP_PATH
# echo -n "$PROVISIONING_EXT_BASE64" | base64 --decode > $PP_EXT_PATH
# mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
# cp $PP_APP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
# cp $PP_EXT_PATH ~/Library/MobileDevice/Provisioning\ Profiles
# - name: Test
# run: make build-sample-watchos
pod-lib-lint-watchos:
runs-on: macos-15-xlarge
steps:
- uses: actions/checkout@v4
- name: Pod lint
run: make pod-lint-watchos
pod-lib-lint-tvos:
runs-on: macos-15-xlarge
steps:
- uses: actions/checkout@v4
- name: Pod lint
run: make pod-lint-tvos
pod-lib-lint-ios:
runs-on: macos-15-xlarge
steps:
- uses: actions/checkout@v4
- name: Pod lint
run: make pod-lint-ios
pod-lib-lint-extensions:
runs-on: macos-15-xlarge
steps:
- uses: actions/checkout@v4
- name: Pod lint
run: make pod-lint-extensions
================================================
FILE: .github/workflows/deploy_docC.yml
================================================
name: Deploy docC to Pages
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+**"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: write
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Extract version
id: extract_version
run: |
set -euo pipefail
VERSION="${GITHUB_REF#refs/tags/}"
MAJOR_VERSION=$(echo "$VERSION" | cut -d. -f1)
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "VERSION_DIR=v$MAJOR_VERSION" >> $GITHUB_OUTPUT
echo "VERSION_DIR=v$MAJOR_VERSION" >> $GITHUB_ENV
- name: Check Version
run: |
set -euo pipefail
bash ./scripts/check_version.sh "${{ steps.extract_version.outputs.VERSION }}"
- name: Build DocC
env:
VERSION_DIR: ${{ steps.extract_version.outputs.VERSION_DIR }}
run: |
set -euo pipefail
make build-docC version="$VERSION_DIR"
- name: Deploy to GitHub Pages
env:
VERSION_DIR: ${{ steps.extract_version.outputs.VERSION_DIR }}
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: ./docs
destination_dir: $VERSION_DIR
keep_files: true
enable_jekyll: false
================================================
FILE: .github/workflows/merge.yml
================================================
name: CI Merge
on:
push:
branches:
- main
- next
env:
BUNDLE_PATH: vendor/bundle
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
build-sdk:
runs-on: macos-15-xlarge
steps:
- name: Install Apple Certificate
uses: apple-actions/import-codesign-certs@v3
with:
p12-file-base64: ${{ secrets.CERTIFICATEXC }}
p12-password: ${{ secrets.CERTIFICATEXC_PASS }}
- uses: actions/checkout@v4
- name: Build SDK
run: make build-xcframeworks-no-sign
finished:
runs-on: ubuntu-latest
needs: [build-sdk]
steps:
- name: Slack Notification
uses: lazy-actions/slatify@master
if: ${{ failure() }}
with:
type: ${{ job.status }}
job_name: "Merge things busted!"
url: ${{ secrets.SLACK_WEBHOOK }}
================================================
FILE: .github/workflows/pr-review.yml
================================================
name: Gemini PR Review
on:
pull_request:
types: [opened, edited, synchronize]
concurrency: pr-${{ github.event.pull_request.number }}
jobs:
review:
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: read
steps:
- name: ⬇️ Checkout
uses: actions/checkout@v4
- name: 🪄 Save PR diff
env:
GH_TOKEN: ${{ secrets.MOBILE_REVIEW_PAT }}
run: gh pr diff ${{ github.event.pull_request.number }} > diff.patch
- name: 🛠️ Set up Node 20
uses: actions/setup-node@v4
with:
node-version: 20
- name: 🤖 Run Gemini review script
continue-on-error: true
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
MODEL_ID: gemini-2.5-pro-preview-05-06
GITHUB_TOKEN: ${{ secrets.MOBILE_REVIEW_PAT }}
PR_NUMBER: ${{ github.event.pull_request.number }}
REPO: ${{ github.repository }}
DEBUG: true
run: node scripts/pr-review.mjs
================================================
FILE: .github/workflows/release.yml
================================================
name: Release
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+**"
env:
BUNDLE_PATH: vendor/bundle
jobs:
check-version:
if: github.repository == 'urbanairship/ios-library'
runs-on: macos-15-xlarge
steps:
- uses: actions/checkout@v4
- name: Get the version
id: get_version
run: |
set -euo pipefail
VERSION="${GITHUB_REF#refs/tags/}"
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
- name: Check Version
run: |
set -euo pipefail
bash ./scripts/check_version.sh "${{ steps.get_version.outputs.VERSION }}"
- name: Slack Notification
uses: lazy-actions/slatify@master
with:
type: ${{ job.status }}
job_name: "iOS SDK Release Started :apple_og:"
url: ${{ secrets.SLACK_WEBHOOK }}
build-package:
needs: check-version
runs-on: macos-15-xlarge
steps:
- uses: actions/checkout@v4
- name: Install Coreutils
run: brew install coreutils
- name: Install Apple Certificate
uses: apple-actions/import-codesign-certs@v3
with:
p12-file-base64: ${{ secrets.CERTIFICATEXC }}
p12-password: ${{ secrets.CERTIFICATEXC_PASS }}
- name: Build SDK
run: make build-package
- name: Upload zip distribution
uses: actions/upload-artifact@v4
with:
name: airship
path: ./build/Airship.zip
- name: Upload zip distribution (Carthage)
uses: actions/upload-artifact@v4
with:
name: airship-carthage
path: ./build/Airship.xcframeworks.zip
- name: Upload .NET xcframeworks
uses: actions/upload-artifact@v4
with:
name: airship-dotnet
path: ./build/Airship.dotnet.xcframeworks.zip
build-samples:
needs: check-version
runs-on: macos-15-xlarge
steps:
- uses: actions/checkout@v4
- name: Build samples
run: make build-samples
# Test jobs, all depend on check-version
run-tests-core:
needs: check-version
runs-on: macos-15-xlarge
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Install xcodegen
run: brew install xcodegen
- name: Test Core
run: make test-core
run-tests-preference-center:
needs: check-version
runs-on: macos-15-xlarge
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Install xcodegen
run: brew install xcodegen
- name: Test Preference Center
run: make test-preference-center
run-tests-message-center:
needs: check-version
runs-on: macos-15-xlarge
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Install xcodegen
run: brew install xcodegen
- name: Test Message Center
run: make test-message-center
run-tests-automation:
needs: check-version
runs-on: macos-15-xlarge
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Install xcodegen
run: brew install xcodegen
- name: Test Automation
run: make test-automation
run-tests-feature-flags:
needs: check-version
runs-on: macos-15-xlarge
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Install xcodegen
run: brew install xcodegen
- name: Test Feature Flags
run: make test-feature-flags
run-tests-service-extension:
needs: check-version
runs-on: macos-15-xlarge
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Install xcodegen
run: brew install xcodegen
- name: Test Service Extension
run: make test-service-extension
deploy-github:
permissions:
contents: write
runs-on: macos-15-xlarge
needs:
- run-tests-core
- run-tests-preference-center
- run-tests-message-center
- run-tests-automation
- run-tests-feature-flags
- run-tests-service-extension
- build-package
- build-samples
steps:
- uses: actions/checkout@v4
- name: Get the version
id: get_version
run: |
set -euo pipefail
VERSION="${GITHUB_REF#refs/tags/}"
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
- name: Get the release notes
id: get_release_notes
run: |
set -euo pipefail
VERSION="${{ steps.get_version.outputs.VERSION }}"
# Match line starting with '## Version [VERSION]'
# but allow for the date suffix that follows.
NOTES=$(awk -v ver="$VERSION" '
$0 ~ "^## Version " ver "($|[ ]-)" {flag=1; next}
$0 ~ "^## Version " {flag=0}
flag
' CHANGELOG.md)
# Strip potential leading/trailing whitespace/newlines
NOTES="$(echo "$NOTES" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
if [ -z "$NOTES" ]; then
echo "::error::Could not find notes for Version $VERSION in CHANGELOG.md"
exit 1
fi
DELIMITER="EOF_$(uuidgen)"
{
echo "NOTES<<$DELIMITER"
echo "$NOTES"
echo "$DELIMITER"
} >> "$GITHUB_OUTPUT"
- name: Download zip distribution
uses: actions/download-artifact@v4
with:
name: airship
path: ./build
- name: Download Carthage zip distribution
uses: actions/download-artifact@v4
with:
name: airship-carthage
path: ./build
- name: Download .NET xcframeworks
uses: actions/download-artifact@v4
with:
name: airship-dotnet
path: ./build
- name: Create GitHub Release
id: create_release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.get_version.outputs.VERSION }}
release_name: ${{ steps.get_version.outputs.VERSION }}
body: ${{ steps.get_release_notes.outputs.NOTES }}
draft: false
prerelease: false
files: |
./build/Airship.zip
./build/Airship.xcframeworks.zip
./build/Airship.dotnet.xcframeworks.zip
- name: Kickoff prebuilt repo
env:
GITHUB_TOKEN: ${{ secrets.IOS_DEPLOY_PREBUILT_PAT }}
run: gh --repo urbanairship/ios-library-prebuilt workflow run release.yml
deploy-pods:
runs-on: macos-15-xlarge
needs:
- run-tests-core
- run-tests-preference-center
- run-tests-message-center
- run-tests-automation
- run-tests-feature-flags
- run-tests-service-extension
- build-package
- build-samples
steps:
- uses: actions/checkout@v4
- name: Get the version
id: get_version
run: |
set -euo pipefail
VERSION="${GITHUB_REF#refs/tags/}"
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
- name: Publish Pods
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
run: make pod-publish
- name: Slack Notification
uses: lazy-actions/slatify@master
if: always()
with:
type: ${{ job.status }}
job_name: "Publish the Pods ${{ steps.get_version.outputs.VERSION }} :tidepod:"
url: ${{ secrets.SLACK_WEBHOOK }}
finished:
runs-on: ubuntu-latest
needs: [deploy-github, deploy-pods]
steps:
- name: Get the version
id: get_version
run: |
set -euo pipefail
VERSION="${GITHUB_REF#refs/tags/}"
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
- name: Slack Notification
uses: lazy-actions/slatify@master
if: always()
with:
type: ${{ job.status }}
job_name: ":raised_hands: iOS SDK Released! :raised_hands:"
url: ${{ secrets.SLACK_WEBHOOK }}
================================================
FILE: .gitignore
================================================
.DS_Store
*.orig
.hg*
*.mode1v3
*.pbxuser
*.perspective*
distribution_binaries/
distribution_package/
docs/html/
docs/docset/
Debug/
Release/
Distribution/
build/
UANativeBridge.c
xcuserdata/
AirshipConfig.plist
AirshipDevelopment.plist
fabfile.py*
*.build_output
# Undo files for MacVim
*.un~
# CoverStory tool script
cover.py
OCMockLibrary
*.swp
Deploy/output
test-output/
Pods/
Carthage/
Airship.framework.zip
DerivedData
**/.claude/settings.local.json
================================================
FILE: .gitmodules
================================================
================================================
FILE: .ruby-version
================================================
3.2.0
================================================
FILE: .swift-format.json
================================================
{
"fileScopedDeclarationPrivacy" : {
"accessLevel" : "private"
},
"indentation" : {
"spaces" : 4
},
"indentConditionalCompilationBlocks" : false,
"indentSwitchCaseLabels" : false,
"lineBreakAroundMultilineExpressionChainComponents" : true,
"lineBreakBeforeControlFlowKeywords" : false,
"lineBreakBeforeEachArgument" : true,
"lineBreakBeforeEachGenericRequirement" : true,
"lineLength" : 80,
"maximumBlankLines" : 1,
"prioritizeKeepingFunctionOutputTogether" : false,
"respectsExistingLineBreaks" : true,
"rules" : {
"AllPublicDeclarationsHaveDocumentation" : true,
"AlwaysUseLowerCamelCase" : true,
"AmbiguousTrailingClosureOverload" : true,
"BeginDocumentationCommentWithOneLineSummary" : false,
"DoNotUseSemicolons" : true,
"DontRepeatTypeInStaticProperties" : true,
"FileScopedDeclarationPrivacy" : true,
"FullyIndirectEnum" : true,
"GroupNumericLiterals" : true,
"IdentifiersMustBeASCII" : true,
"NeverForceUnwrap" : true,
"NeverUseForceTry" : true,
"NeverUseImplicitlyUnwrappedOptionals" : true,
"NoAccessLevelOnExtensionDeclaration" : true,
"NoBlockComments" : true,
"NoCasesWithOnlyFallthrough" : true,
"NoEmptyTrailingClosureParentheses" : true,
"NoLabelsInCasePatterns" : true,
"NoLeadingUnderscores" : false,
"NoParensAroundConditions" : true,
"NoVoidReturnOnFunctionSignature" : true,
"OneCasePerLine" : true,
"OneVariableDeclarationPerLine" : true,
"OnlyOneTrailingClosureArgument" : true,
"OrderedImports" : true,
"ReturnVoidInsteadOfEmptyTuple" : true,
"UseEarlyExits" : true,
"UseLetInEveryBoundCaseVariable" : true,
"UseShorthandTypeNames" : true,
"UseSingleLinePropertyGetter" : true,
"UseSynthesizedInitializer" : true,
"UseTripleSlashForDocumentationComments" : true,
"UseWhereClausesInForLoops" : false,
"ValidateDocumentationComments" : false
},
"tabWidth" : 8,
"version" : 1
}
================================================
FILE: .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>
================================================
FILE: .whitesource
================================================
{
"scanSettings": {
"configMode": "AUTO",
"configExternalURL": "",
"projectToken": "",
"baseBranches": []
},
"checkRunSettings": {
"vulnerableCheckRunConclusionLevel": "success",
"displayMode": "diff"
},
"issueSettings": {
"minSeverityLevel": "NONE"
}
}
================================================
FILE: Airship/Airship.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 70;
objects = {
/* Begin PBXAggregateTarget section */
6EAAE85D28C2AD3A003CAE53 /* AirshipRelease */ = {
isa = PBXAggregateTarget;
buildConfigurationList = 6EAAE85E28C2AD3A003CAE53 /* Build configuration list for PBXAggregateTarget "AirshipRelease" */;
buildPhases = (
);
dependencies = (
6E128B9D2D305C4600733024 /* PBXTargetDependency */,
6E5917892B28E93A0084BBBF /* PBXTargetDependency */,
6E6B493E2A787D0A00AF98D8 /* PBXTargetDependency */,
6EAAE87728C2AD80003CAE53 /* PBXTargetDependency */,
6EAAE87928C2AD80003CAE53 /* PBXTargetDependency */,
6EAAE87B28C2AD80003CAE53 /* PBXTargetDependency */,
6EAAE87D28C2AD80003CAE53 /* PBXTargetDependency */,
6EAAE87F28C2AD80003CAE53 /* PBXTargetDependency */,
);
name = AirshipRelease;
productName = AirshipRelease;
};
6ECCAD252CF55BC700423D86 /* AirshipRelease tvOS */ = {
isa = PBXAggregateTarget;
buildConfigurationList = 6ECCAD342CF55BC700423D86 /* Build configuration list for PBXAggregateTarget "AirshipRelease tvOS" */;
buildPhases = (
);
dependencies = (
6ECCAD282CF55BC700423D86 /* PBXTargetDependency */,
6ECCAD2A2CF55BC700423D86 /* PBXTargetDependency */,
6ECCAD2C2CF55BC700423D86 /* PBXTargetDependency */,
6ECCAD322CF55BC700423D86 /* PBXTargetDependency */,
);
name = "AirshipRelease tvOS";
productName = AirshipRelease;
};
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
27051CD72EE75E3300C770D5 /* AutomationEventsHistoryTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27051CD62EE75E3300C770D5 /* AutomationEventsHistoryTest.swift */; };
27077E4C2EE7531C0027A282 /* AutomationEventsHistory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27077E4B2EE7531C0027A282 /* AutomationEventsHistory.swift */; };
271B38652DB2866200495D9F /* TagActionMutation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 271B38642DB2866200495D9F /* TagActionMutation.swift */; };
27264FB32E81B064000B6FA3 /* AirshipSceneController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27264FB22E81B064000B6FA3 /* AirshipSceneController.swift */; };
2726505B2E81B80E000B6FA3 /* PagerControllerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2726505A2E81B80E000B6FA3 /* PagerControllerTest.swift */; };
2753F6422F6C5BB50073882C /* MessageCenterMessageError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2753F6412F6C5BB50073882C /* MessageCenterMessageError.swift */; };
275D32AC2EF957F200B75760 /* AirshipSimpleLayoutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 275D32AA2EF955AD00B75760 /* AirshipSimpleLayoutView.swift */; };
275D32AD2EF957F200B75761 /* AirshipSimpleLayoutViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 275D32AB2EF955AD00B75761 /* AirshipSimpleLayoutViewModel.swift */; };
2797B4192F47687800A7F848 /* NativeLayoutPersistentDataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2797B4182F47687800A7F848 /* NativeLayoutPersistentDataStore.swift */; };
27AFE70F2E733F4400767044 /* ModifyTagsAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27AFE70E2E733F4400767044 /* ModifyTagsAction.swift */; };
27AFE7112E73477200767044 /* ModifyTagsActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27AFE7102E73477200767044 /* ModifyTagsActionTest.swift */; };
27CCF77D2F1656150018058F /* MessageViewAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27CCF77C2F1656150018058F /* MessageViewAnalytics.swift */; };
27CCF77F2F16DA500018058F /* MessageViewAnalyticsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27CCF77E2F16DA500018058F /* MessageViewAnalyticsTest.swift */; };
27CCF8D32F2382750018058F /* ThomasStateStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27CCF8D22F2382750018058F /* ThomasStateStorage.swift */; };
27E4194A2EF59F9800D5C1A6 /* MessageCenterThomasView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E419492EF59F9800D5C1A6 /* MessageCenterThomasView.swift */; };
27F1E1332F0E7AA400E317DB /* ThomasLayoutEventContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAFB2B58AA4F002FEA75 /* ThomasLayoutEventContext.swift */; };
27F1E1342F0E7C9C00E317DB /* ThomasLayoutEventRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AABA2B58A946002FEA75 /* ThomasLayoutEventRecorder.swift */; };
27F1E1352F0E7D2C00E317DB /* ThomasLayoutEventMessageID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAB62B58A945002FEA75 /* ThomasLayoutEventMessageID.swift */; };
27F1E1362F0E7D7B00E317DB /* ThomasLayoutEventSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAFA2B58AA4F002FEA75 /* ThomasLayoutEventSource.swift */; };
27F1E18C2F0E828D00E317DB /* ThomasLayoutEventMessageIDTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AADD2B58A9D2002FEA75 /* ThomasLayoutEventMessageIDTest.swift */; };
27F1E18D2F0E828D00E317DB /* ThomasLayoutEventRecorderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAD72B58A9D1002FEA75 /* ThomasLayoutEventRecorderTest.swift */; };
27F1E18E2F0E828D00E317DB /* ThomasLayoutEventContextTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AADF2B58A9D2002FEA75 /* ThomasLayoutEventContextTest.swift */; };
27F1E18F2F0E82C700E317DB /* ThomasLayoutResolutionEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AADB2B58A9D1002FEA75 /* ThomasLayoutResolutionEventTest.swift */; };
27F1E1902F0E82C700E317DB /* ThomasLayoutEventTestUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AADA2B58A9D1002FEA75 /* ThomasLayoutEventTestUtils.swift */; };
27F1E1912F0E82C700E317DB /* ThomasLayoutFormResultEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAE02B58A9D2002FEA75 /* ThomasLayoutFormResultEventTest.swift */; };
27F1E1922F0E82C700E317DB /* ThomasLayoutPageSwipeEventAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAE72B58A9D4002FEA75 /* ThomasLayoutPageSwipeEventAction.swift */; };
27F1E1932F0E82C700E317DB /* ThomasLayoutDisplayEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAD62B58A9D1002FEA75 /* ThomasLayoutDisplayEventTest.swift */; };
27F1E1942F0E82C700E317DB /* ThomasLayoutButtonTapEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AADE2B58A9D2002FEA75 /* ThomasLayoutButtonTapEventTest.swift */; };
27F1E1952F0E82C700E317DB /* ThomasLayoutPagerSummaryEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAE12B58A9D2002FEA75 /* ThomasLayoutPagerSummaryEventTest.swift */; };
27F1E1962F0E82C700E317DB /* ThomasLayoutPageActionEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AADC2B58A9D2002FEA75 /* ThomasLayoutPageActionEventTest.swift */; };
27F1E1972F0E82C700E317DB /* ThomasLayoutGestureEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAE42B58A9D3002FEA75 /* ThomasLayoutGestureEventTest.swift */; };
27F1E1992F0E82C700E317DB /* ThomasLayoutFormDisplayEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAE32B58A9D3002FEA75 /* ThomasLayoutFormDisplayEventTest.swift */; };
27F1E19A2F0E82C700E317DB /* ThomasLayoutPermissionResultEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAD92B58A9D1002FEA75 /* ThomasLayoutPermissionResultEventTest.swift */; };
27F1E19B2F0E82C700E317DB /* ThomasLayoutPageViewEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAE22B58A9D2002FEA75 /* ThomasLayoutPageViewEventTest.swift */; };
27F1E19C2F0E82C700E317DB /* ThomasLayoutPagerCompletedEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAD82B58A9D1002FEA75 /* ThomasLayoutPagerCompletedEventTest.swift */; };
27F1E19D2F0E836000E317DB /* InAppMessageAnalyticsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAE52B58A9D3002FEA75 /* InAppMessageAnalyticsTest.swift */; };
27F1E19E2F0E846B00E317DB /* TestThomasLayoutEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAD42B58A977002FEA75 /* TestThomasLayoutEvent.swift */; };
27F1E19F2F0E848B00E317DB /* TestThomasLayoutEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAD42B58A977002FEA75 /* TestThomasLayoutEvent.swift */; };
27F1E1A02F0E84C300E317DB /* ThomasLayoutEventTestUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AADA2B58A9D1002FEA75 /* ThomasLayoutEventTestUtils.swift */; };
27F1E2012F0E910B00E317DB /* ThomasLayoutButtonTapEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1F32F0E910B00E317DB /* ThomasLayoutButtonTapEvent.swift */; };
27F1E2022F0E910B00E317DB /* ThomasLayoutDisplayEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1F42F0E910B00E317DB /* ThomasLayoutDisplayEvent.swift */; };
27F1E2032F0E910B00E317DB /* ThomasLayoutEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1F52F0E910B00E317DB /* ThomasLayoutEvent.swift */; };
27F1E2042F0E910B00E317DB /* ThomasLayoutFormDisplayEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1F62F0E910B00E317DB /* ThomasLayoutFormDisplayEvent.swift */; };
27F1E2052F0E910B00E317DB /* ThomasLayoutFormResultEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1F72F0E910B00E317DB /* ThomasLayoutFormResultEvent.swift */; };
27F1E2062F0E910B00E317DB /* ThomasLayoutGestureEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1F82F0E910B00E317DB /* ThomasLayoutGestureEvent.swift */; };
27F1E2072F0E910B00E317DB /* ThomasLayoutPageActionEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1F92F0E910B00E317DB /* ThomasLayoutPageActionEvent.swift */; };
27F1E2082F0E910B00E317DB /* ThomasLayoutPagerCompletedEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1FA2F0E910B00E317DB /* ThomasLayoutPagerCompletedEvent.swift */; };
27F1E2092F0E910B00E317DB /* ThomasLayoutPagerSummaryEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1FB2F0E910B00E317DB /* ThomasLayoutPagerSummaryEvent.swift */; };
27F1E20A2F0E910B00E317DB /* ThomasLayoutPageSwipeEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1FC2F0E910B00E317DB /* ThomasLayoutPageSwipeEvent.swift */; };
27F1E20B2F0E910B00E317DB /* ThomasLayoutPageViewEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1FD2F0E910B00E317DB /* ThomasLayoutPageViewEvent.swift */; };
27F1E20C2F0E910B00E317DB /* ThomasLayoutPermissionResultEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1FE2F0E910B00E317DB /* ThomasLayoutPermissionResultEvent.swift */; };
27F1E20D2F0E910B00E317DB /* ThomasLayoutResolutionEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F1E1FF2F0E910B00E317DB /* ThomasLayoutResolutionEvent.swift */; };
27F1E2112F0FF5FE00E317DB /* ThomasDisplayListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AB172B59E80E002FEA75 /* ThomasDisplayListener.swift */; };
27F1E2122F0FF6EB00E317DB /* ThomasDisplayListenerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BBC2B5B290200A6489B /* ThomasDisplayListenerTest.swift */; };
320AD3A629E7FA2000D66106 /* PagerGestureMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 320AD3A529E7FA2000D66106 /* PagerGestureMap.swift */; };
3215CA9D2739349800B7D97E /* ModalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3215CA9C2739349700B7D97E /* ModalView.swift */; };
322AAB1E2B5AB65700652DAC /* AddChannelPromptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32DDC0562AF1055300D23EBE /* AddChannelPromptView.swift */; };
322AAB212B5ACB2800652DAC /* ChannelListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 322AAB202B5ACB2800652DAC /* ChannelListView.swift */; };
322AAB222B5FCB6B00652DAC /* ContactManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 322AAB1C2B5A869000652DAC /* ContactManagementView.swift */; };
3231126A29D5E4F600CF0D86 /* AirshipAutomationResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3231126929D5E4F600CF0D86 /* AirshipAutomationResources.swift */; };
3231128229D5E67200CF0D86 /* FrequencyLimitStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3231127B29D5E67200CF0D86 /* FrequencyLimitStore.swift */; };
3231128329D5E67200CF0D86 /* FrequencyLimitManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3231127C29D5E67200CF0D86 /* FrequencyLimitManager.swift */; };
3231128429D5E67200CF0D86 /* Occurrence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3231127D29D5E67200CF0D86 /* Occurrence.swift */; };
3231128729D5E67200CF0D86 /* FrequencyConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3231128029D5E67200CF0D86 /* FrequencyConstraint.swift */; };
3231128829D5E67200CF0D86 /* FrequencyChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3231128129D5E67200CF0D86 /* FrequencyChecker.swift */; };
3231128C29D5E69400CF0D86 /* UAFrequencyLimits.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 3231128A29D5E69400CF0D86 /* UAFrequencyLimits.xcdatamodeld */; };
3231129129D5E6D900CF0D86 /* FrequencyLimitManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3231128F29D5E6C600CF0D86 /* FrequencyLimitManagerTest.swift */; };
3237D5F22B865D990055932B /* JSONValueTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3237D5F12B865D990055932B /* JSONValueTransformer.swift */; };
3243EC632D93109C00B43B25 /* AirshipSwitchToggleStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3243EC622D93109C00B43B25 /* AirshipSwitchToggleStyle.swift */; };
3243EC642D93109C00B43B25 /* AirshipCheckboxToggleStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3243EC612D93109C00B43B25 /* AirshipCheckboxToggleStyle.swift */; };
324D3BFF273E6B4500058EE4 /* BannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324D3BFE273E6B4500058EE4 /* BannerView.swift */; };
32515869272AFB2E00DF8B44 /* Media.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32515866272AFB2E00DF8B44 /* Media.swift */; };
3251586B272AFB2E00DF8B44 /* VideoMediaWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32515868272AFB2E00DF8B44 /* VideoMediaWebView.swift */; };
325D53DA295C7979003421B4 /* ActionRegistryTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 325D53D9295C7979003421B4 /* ActionRegistryTest.swift */; };
325D53F629646E53003421B4 /* TestChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E48426A60CDF0038CFDD /* TestChannel.swift */; };
325D53F729648150003421B4 /* TestDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1422683B8FA00A2CBD0 /* TestDate.swift */; };
325D53FA29648818003421B4 /* TestAirshipRequestSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A467F28EF4FAF00A25617 /* TestAirshipRequestSession.swift */; };
325D53FB2964885B003421B4 /* AirshipBaseTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3299EF212949EC3E00251E70 /* AirshipBaseTest.swift */; };
3261A7F6243CD7F900ADBF6B /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3261A7F4243CD73100ADBF6B /* CoreTelephony.framework */; platformFilter = maccatalyst; };
3299EF172948CBC100251E70 /* RemoteDataAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3299EF162948CBC100251E70 /* RemoteDataAPIClientTest.swift */; };
3299EF222949EC3E00251E70 /* AirshipBaseTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3299EF212949EC3E00251E70 /* AirshipBaseTest.swift */; };
3299EF26294B222F00251E70 /* RemoteDataStoreTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3299EF25294B222F00251E70 /* RemoteDataStoreTest.swift */; };
329DFCCF2B7E4DDA0039C8C0 /* UARemoteDataMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 329DFCCE2B7E4DDA0039C8C0 /* UARemoteDataMapping.swift */; };
329DFCD52B7E59700039C8C0 /* UAInboxDataMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 329DFCD42B7E59700039C8C0 /* UAInboxDataMapping.swift */; };
329DFCFF2B7FB8810039C8C0 /* UARemoteDataMappingV3toV4.xcmappingmodel in Resources */ = {isa = PBXBuildFile; fileRef = 329DFCCA2B7E4DA10039C8C0 /* UARemoteDataMappingV3toV4.xcmappingmodel */; };
32B513562B9F53A500BBE780 /* MessageCenterPredicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B513552B9F53A500BBE780 /* MessageCenterPredicate.swift */; };
32B5BE3B28F8A7EB00F2254B /* MessageCenterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B5BE3A28F8A7EB00F2254B /* MessageCenterController.swift */; };
32B5BE3E28F8A8C000F2254B /* MessageCenterListItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B5BE2728F8A7D600F2254B /* MessageCenterListItemView.swift */; };
32B5BE3F28F8A8C200F2254B /* MessageCenterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B5BE2828F8A7D600F2254B /* MessageCenterView.swift */; };
32B5BE4028F8A8C500F2254B /* MessageCenterMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B5BE2928F8A7D600F2254B /* MessageCenterMessageView.swift */; };
32B5BE4128F8A8C700F2254B /* MessageCenterListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B5BE2A28F8A7D600F2254B /* MessageCenterListView.swift */; };
32B5BE4228F8A8CA00F2254B /* MessageCenterListItemViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B5BE2B28F8A7D600F2254B /* MessageCenterListItemViewModel.swift */; };
32B5BE4928F8B66500F2254B /* MessageCenterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B5BE4828F8B66500F2254B /* MessageCenterViewController.swift */; };
32B632882906CA17000D3E34 /* MessageCenterThemeLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B632862906CA17000D3E34 /* MessageCenterThemeLoader.swift */; };
32B632892906CA17000D3E34 /* MessageCenterTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B632872906CA17000D3E34 /* MessageCenterTheme.swift */; };
32BBFB402B274C8600C6A998 /* ContactChannelsAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32BBFB3F2B274C8600C6A998 /* ContactChannelsAPIClient.swift */; };
32C68D0529424449006BBB29 /* RemoteDataTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32C68D0429424449006BBB29 /* RemoteDataTest.swift */; };
32CF81E2275627F4003009D1 /* AirshipAsyncImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32CF81E1275627F4003009D1 /* AirshipAsyncImage.swift */; };
32D6E87B2727F7060077C784 /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D6E87A2727F7060077C784 /* Image.swift */; };
32E339E32A334A2000CD3BE5 /* AddCustomEventActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E339E22A334A2000CD3BE5 /* AddCustomEventActionTest.swift */; };
32F293D5295AFD94004A7D9C /* ActionArgumentsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F293D4295AFD94004A7D9C /* ActionArgumentsTest.swift */; };
32F615A728F708980015696D /* MessageCenterListTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F615A628F708980015696D /* MessageCenterListTests.swift */; };
32F615A828F708AD0015696D /* TestChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E48426A60CDF0038CFDD /* TestChannel.swift */; };
32F68CDC28F02A7100F7F52A /* MessageCenterStoreTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F68CDA28F02A6B00F7F52A /* MessageCenterStoreTest.swift */; };
32F68CEE28F07C2C00F7F52A /* AirshipMessageCenterResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F68CE828F07C2B00F7F52A /* AirshipMessageCenterResources.swift */; };
32F68CEF28F07C2C00F7F52A /* MessageCenterSDKModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F68CE928F07C2C00F7F52A /* MessageCenterSDKModule.swift */; };
32F68CF328F07C2C00F7F52A /* MessageCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F68CED28F07C2C00F7F52A /* MessageCenter.swift */; };
32F68CF528F07C4900F7F52A /* MessageCenterList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F68CF428F07C4800F7F52A /* MessageCenterList.swift */; };
32F97AC129E5986B00FED65F /* StoryIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F97AC029E5986B00FED65F /* StoryIndicator.swift */; };
32FD4C782D8079910056D141 /* BasicToggleLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32FD4C772D8079910056D141 /* BasicToggleLayout.swift */; };
3C39D3092384C8BE003C50D4 /* AirshipMessageCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CA0E423237E4A7B00EE76CF /* AirshipMessageCenter.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
3C63556026CDD4F8006E9916 /* AirshipPush.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C63555F26CDD4F8006E9916 /* AirshipPush.swift */; };
3C693E4E25141CAC00EBFB88 /* AirshipDebugEventData.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 3CA0E222237CCBA600EE76CF /* AirshipDebugEventData.xcdatamodeld */; };
3C693E4F25141CAC00EBFB88 /* AirshipDebugPushData.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 83A674F623AA7AA4005C0C8F /* AirshipDebugPushData.xcdatamodeld */; };
3CA0E2A0237CCE2600EE76CF /* AirshipCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 494DD9571B0EB677009C134E /* AirshipCore.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
3CA0E2BF237CD05F00EE76CF /* AirshipEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CA0E241237CCBA600EE76CF /* AirshipEvent.swift */; };
3CA0E2CA237CD05F00EE76CF /* EventDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CA0E24D237CCBA600EE76CF /* EventDataManager.swift */; };
3CA0E2CD237CD05F00EE76CF /* AirshipDebugManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CA0E233237CCBA600EE76CF /* AirshipDebugManager.swift */; };
3CA0E479237E4E3000EE76CF /* UAInbox.xcdatamodeld in Resources */ = {isa = PBXBuildFile; fileRef = 3CA0E304237E396100EE76CF /* UAInbox.xcdatamodeld */; };
3CA84AAE26DE255200A59685 /* EventStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CA84AA626DE255200A59685 /* EventStore.swift */; };
3CA84AB826DE257200A59685 /* DefaultAirshipAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CA84AB626DE257200A59685 /* DefaultAirshipAnalytics.swift */; };
3CA84ABA26DE257200A59685 /* AirshipAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CA84AB726DE257200A59685 /* AirshipAnalytics.swift */; };
3CB37A1E251151A400E60392 /* AirshipDebugResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CB37A1D251151A400E60392 /* AirshipDebugResources.swift */; };
3CC8AA0626BB3C7900405614 /* DefaultAirshipPush.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CC8AA0526BB3C7900405614 /* DefaultAirshipPush.swift */; };
3CC95B1F268E785900FE2ACD /* NotificationCategories.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CC95B1E268E785900FE2ACD /* NotificationCategories.swift */; };
3CC95B2B2696549B00FE2ACD /* AirshipPushableComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CC95B2A2696549B00FE2ACD /* AirshipPushableComponent.swift */; };
45A8ADF023134B38004AD8CA /* testMCColorsCatalog.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 45A8ADD123133E51004AD8CA /* testMCColorsCatalog.xcassets */; };
6014AD672C1B5F540072DCF0 /* ChallengeResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6014AD662C1B5F540072DCF0 /* ChallengeResolver.swift */; };
6014AD6C2C2032730072DCF0 /* ChallengeResolverTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6014AD6A2C2032360072DCF0 /* ChallengeResolverTest.swift */; };
6014AD752C20410B0072DCF0 /* airship.der in Resources */ = {isa = PBXBuildFile; fileRef = 6014AD742C20410A0072DCF0 /* airship.der */; };
6018AF572B29C20A008E528B /* SearchEventTemplateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6018AF562B29C20A008E528B /* SearchEventTemplateTest.swift */; };
602AD0D52D7242B300C7D566 /* ThomasSmsLocale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 602AD0D42D7242B300C7D566 /* ThomasSmsLocale.swift */; };
603269532BF4B141007F7F75 /* AdditionalAudienceCheckerApiClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 603269522BF4B141007F7F75 /* AdditionalAudienceCheckerApiClient.swift */; };
603269552BF4B8D5007F7F75 /* AdditionalAudienceCheckerResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 603269542BF4B8D5007F7F75 /* AdditionalAudienceCheckerResolver.swift */; };
603269582BF7550E007F7F75 /* AdditionalAudienceCheckerResolverTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 603269572BF7550E007F7F75 /* AdditionalAudienceCheckerResolverTest.swift */; };
603269592BF75976007F7F75 /* AirshipCacheTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7EACD02AF4192400DA286B /* AirshipCacheTest.swift */; };
6032695B2BF75D69007F7F75 /* AirshipHTTPResponseTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6032695A2BF75D69007F7F75 /* AirshipHTTPResponseTest.swift */; };
6032695C2BF75E39007F7F75 /* AirshipHTTPResponseTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6032695A2BF75D69007F7F75 /* AirshipHTTPResponseTest.swift */; };
605073832B2CD38200209B51 /* ActiveTimerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 605073822B2CD38200209B51 /* ActiveTimerTest.swift */; };
605073842B2CD46D00209B51 /* TestAppStateTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E61267C03C700654DB2 /* TestAppStateTracker.swift */; };
6050738A2B32F85100209B51 /* ThomasViewModelTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 605073892B32F85100209B51 /* ThomasViewModelTest.swift */; };
605073902B347B6400209B51 /* ThomasPresentationModelCodingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6050738F2B347B6400209B51 /* ThomasPresentationModelCodingTest.swift */; };
6058771D2AC73C940021628E /* AirshipMeteredUsageTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6058771C2AC73C7E0021628E /* AirshipMeteredUsageTest.swift */; };
605877202ACAC8700021628E /* MeteredUsageApiClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6058771E2ACAC86A0021628E /* MeteredUsageApiClientTest.swift */; };
60653FC22CBD2CD4009CD9A7 /* PushData+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60653FC02CBD2CD4009CD9A7 /* PushData+CoreDataClass.swift */; };
60653FC32CBD2CD4009CD9A7 /* PushData+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60653FC12CBD2CD4009CD9A7 /* PushData+CoreDataProperties.swift */; };
6068E0062B2A190300349E82 /* CustomEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6068E0052B2A190300349E82 /* CustomEventTest.swift */; };
6068E0082B2A2A6700349E82 /* AccountEventTemplateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6068E0072B2A2A6700349E82 /* AccountEventTemplateTest.swift */; };
6068E0322B2B785A00349E82 /* MediaEventTemplateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6068E0312B2B785A00349E82 /* MediaEventTemplateTest.swift */; };
6068E0342B2B7CA100349E82 /* RetailEventTemplateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6068E0332B2B7CA100349E82 /* RetailEventTemplateTest.swift */; };
6068E03B2B2CBCF200349E82 /* ActiveTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6068E03A2B2CBCF200349E82 /* ActiveTimer.swift */; };
607951222A1CD1A50086578F /* ExperimentManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6079511F2A1CD19F0086578F /* ExperimentManagerTest.swift */; };
6087DB882B278F7600449BA8 /* JsonValueMatcherTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6087DB872B278F7600449BA8 /* JsonValueMatcherTest.swift */; };
608B16E62C2C1138005298FA /* SubscriptionListProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 608B16E52C2C1137005298FA /* SubscriptionListProvider.swift */; };
608B16E82C2C6DDB005298FA /* ChannelSubscriptionListProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 608B16E72C2C6DDB005298FA /* ChannelSubscriptionListProvider.swift */; };
608B16F12C2D5F0D005298FA /* BaseCachingRemoteDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 608B16F02C2D5F0D005298FA /* BaseCachingRemoteDataProvider.swift */; };
60956D862CBE7CFA00950172 /* AirshipLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8E1C9A26447B3800B11791 /* AirshipLock.swift */; };
609843562D6F518900690371 /* SmsLocalePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 609843552D6F518900690371 /* SmsLocalePicker.swift */; };
60A292112CB7C5C30096F5EB /* TestDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1422683B8FA00A2CBD0 /* TestDate.swift */; };
60A364ED2C3479BF00B05E26 /* ExecutionWindowTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60A364EC2C3479BF00B05E26 /* ExecutionWindowTest.swift */; };
60A5CC082B28DC500017EDB2 /* NotificationCategoriesTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60A5CC072B28DC500017EDB2 /* NotificationCategoriesTest.swift */; };
60A5CC0C2B29AE890017EDB2 /* ProximityRegionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60A5CC0B2B29AE890017EDB2 /* ProximityRegionTest.swift */; };
60A5CC0E2B29B1B80017EDB2 /* CircularRegionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60A5CC0D2B29B1B80017EDB2 /* CircularRegionTest.swift */; };
60A5CC102B29B4100017EDB2 /* RegionEventTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60A5CC0F2B29B4100017EDB2 /* RegionEventTest.swift */; };
60C1DB0F2A8B743C00A1D3DA /* AirshipEmbeddedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60C1DB0B2A8B743B00A1D3DA /* AirshipEmbeddedView.swift */; };
60C1DB102A8B743C00A1D3DA /* AirshipEmbeddedViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60C1DB0C2A8B743B00A1D3DA /* AirshipEmbeddedViewManager.swift */; };
60C1DB112A8B743C00A1D3DA /* AirshipEmbeddedObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60C1DB0D2A8B743B00A1D3DA /* AirshipEmbeddedObserver.swift */; };
60C1DB122A8B743C00A1D3DA /* EmbeddedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60C1DB0E2A8B743C00A1D3DA /* EmbeddedView.swift */; };
60CE9BDE2D0B6A0900A8B625 /* ThomasPagerControllerBranching.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60CE9BDD2D0B6A0900A8B625 /* ThomasPagerControllerBranching.swift */; };
60D1D9B82B68FB6400EBE0A4 /* PreparedTrigger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60D1D9B72B68FB6400EBE0A4 /* PreparedTrigger.swift */; };
60D1D9BB2B6A53F000EBE0A4 /* PreparedTriggerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60D1D9BA2B6A53F000EBE0A4 /* PreparedTriggerTest.swift */; };
60D1D9BD2B6AB2D100EBE0A4 /* AutomationTriggerProcessorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60D1D9BC2B6AB2D100EBE0A4 /* AutomationTriggerProcessorTest.swift */; };
60D2B3352D9F0FCF00B0752D /* PagerDisableSwipeSelectorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60D2B3342D9F0FCF00B0752D /* PagerDisableSwipeSelectorTest.swift */; };
60D3BCC42A1529D800E07524 /* ExperimentDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60D3BCC32A1529D800E07524 /* ExperimentDataProvider.swift */; };
60D3BCC62A152A0D00E07524 /* ExperimentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60D3BCC52A152A0D00E07524 /* ExperimentManager.swift */; };
60D3BCCC2A153C0700E07524 /* Experiment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60D3BCCB2A153C0700E07524 /* Experiment.swift */; };
60D3BCCE2A15471C00E07524 /* AudienceHashSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60D3BCCD2A15471C00E07524 /* AudienceHashSelector.swift */; };
60D3BCD02A154D9400E07524 /* MessageCriteria.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60D3BCCF2A154D9400E07524 /* MessageCriteria.swift */; };
60E09FDB2B2780DB005A16EA /* JsonMatcherTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60E09FDA2B2780DB005A16EA /* JsonMatcherTest.swift */; };
60EACF542B7BF2EA00CAFDBB /* AirshipApptimizeIntegration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60EACF532B7BF2EA00CAFDBB /* AirshipApptimizeIntegration.swift */; };
60F8E75C2B8F3D4B00460EDF /* CancelSchedulesAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60F8E75B2B8F3D4B00460EDF /* CancelSchedulesAction.swift */; };
60F8E75E2B8FA12800460EDF /* CancelSchedulesActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60F8E75D2B8FA12800460EDF /* CancelSchedulesActionTest.swift */; };
60F8E7602B8FAF5400460EDF /* ScheduleAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60F8E75F2B8FAF5400460EDF /* ScheduleAction.swift */; };
60F8E7622B8FB2CC00460EDF /* ScheduleActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60F8E7612B8FB2CC00460EDF /* ScheduleActionTest.swift */; };
60FCA3052B4F1110005C9232 /* LegacyInAppMessaging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60FCA3042B4F1110005C9232 /* LegacyInAppMessaging.swift */; };
60FCA3072B4F1C73005C9232 /* LegacyInAppMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60FCA3062B4F1C73005C9232 /* LegacyInAppMessage.swift */; };
60FCA30A2B51364A005C9232 /* LegacyInAppMessageTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60FCA3092B51364A005C9232 /* LegacyInAppMessageTest.swift */; };
60FCA30C2B51492A005C9232 /* LegacyInAppMessagingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60FCA30B2B51492A005C9232 /* LegacyInAppMessagingTest.swift */; };
60FCA30D2B5534DB005C9232 /* TestAirshipInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BE1526E29BC90005D20D /* TestAirshipInstance.swift */; };
60FCA30E2B5535F4005C9232 /* TestAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BE1726E2C5940005D20D /* TestAnalytics.swift */; };
60FCA3252B5EF3A8005C9232 /* AutomationEventFeedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60FCA3242B5EF3A8005C9232 /* AutomationEventFeedTest.swift */; };
6329102E2DD8103200B13C6C /* NativeVideoPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6329102D2DD8103200B13C6C /* NativeVideoPlayer.swift */; };
632913FA2DE547A500B13C6C /* VideoMediaNativeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 632913F92DE547A500B13C6C /* VideoMediaNativeView.swift */; };
6E0031AB2D08CC920004F53E /* AirshipAuthorizedNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0031AA2D08CC8A0004F53E /* AirshipAuthorizedNotificationSettings.swift */; };
6E0104FF2DDF9B26009D651F /* IconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0104FE2DDF9B26009D651F /* IconView.swift */; };
6E0105012DDFA5E9009D651F /* ScoreController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0105002DDFA5E6009D651F /* ScoreController.swift */; };
6E0105032DDFA719009D651F /* ScoreToggleLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0105022DDFA719009D651F /* ScoreToggleLayout.swift */; };
6E0105052DDFA735009D651F /* ScoreState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0105042DDFA735009D651F /* ScoreState.swift */; };
6E032A502B210E6000404630 /* RemoteConfigTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E032A4F2B210E6000404630 /* RemoteConfigTest.swift */; };
6E062D03271656DE001A74A1 /* Container.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E062D02271656DE001A74A1 /* Container.swift */; };
6E062D05271656F8001A74A1 /* LinearLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E062D04271656F8001A74A1 /* LinearLayout.swift */; };
6E062D0727165709001A74A1 /* Label.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E062D0627165709001A74A1 /* Label.swift */; };
6E062D092716571F001A74A1 /* LabelButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E062D082716571F001A74A1 /* LabelButton.swift */; };
6E062D0D2718B505001A74A1 /* ViewConstraints.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E062D0C2718B505001A74A1 /* ViewConstraints.swift */; };
6E07688829F9D28A0014E2A9 /* AirshipNotificationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E07688729F9D28A0014E2A9 /* AirshipNotificationCenter.swift */; };
6E07688C29F9F0830014E2A9 /* AirshipLocaleManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E07688B29F9F0830014E2A9 /* AirshipLocaleManagerTest.swift */; };
6E07689229FB39440014E2A9 /* AirshipUnsafeSendableWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E07689129FB39440014E2A9 /* AirshipUnsafeSendableWrapper.swift */; };
6E07B5F82D925ED60087EC47 /* TestPrivacyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E07B5F72D925ED30087EC47 /* TestPrivacyManager.swift */; };
6E07B5F92D925F2A0087EC47 /* TestPrivacyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E07B5F72D925ED30087EC47 /* TestPrivacyManager.swift */; };
6E07B5FA2D925F2A0087EC47 /* TestPrivacyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E07B5F72D925ED30087EC47 /* TestPrivacyManager.swift */; };
6E07B5FB2D925F2A0087EC47 /* TestPrivacyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E07B5F72D925ED30087EC47 /* TestPrivacyManager.swift */; };
6E07B5FC2D925F2A0087EC47 /* TestPrivacyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E07B5F72D925ED30087EC47 /* TestPrivacyManager.swift */; };
6E0B8732294A9C130064B7BD /* AirshipAutomation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E0B872A294A9C120064B7BD /* AirshipAutomation.framework */; };
6E0B8744294A9C950064B7BD /* AirshipCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 494DD9571B0EB677009C134E /* AirshipCore.framework */; platformFilters = (ios, maccatalyst, macos, tvos, xros, ); };
6E0B8760294CE0BF0064B7BD /* FarmHashFingerprint64Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0B875F294CE0BF0064B7BD /* FarmHashFingerprint64Test.swift */; };
6E0B8762294CE0DC0064B7BD /* FarmHashFingerprint64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0B8761294CE0DC0064B7BD /* FarmHashFingerprint64.swift */; };
6E0F4BE22B32190400673CA4 /* AutomationSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0F4BE12B32190400673CA4 /* AutomationSchedule.swift */; };
6E0F4BE52B32645600673CA4 /* AutomationTrigger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0F4BE42B32645600673CA4 /* AutomationTrigger.swift */; };
6E0F4BE72B32646000673CA4 /* AutomationDelay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0F4BE62B32646000673CA4 /* AutomationDelay.swift */; };
6E0F4BE92B3264A400673CA4 /* DeferredAutomationData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0F4BE82B3264A400673CA4 /* DeferredAutomationData.swift */; };
6E0F557F2AE03BB900E7CB8C /* ThomasAsyncImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E0F557E2AE03BB900E7CB8C /* ThomasAsyncImage.swift */; };
6E10A1482C2B825200ED9556 /* DefaultTaskSleeperTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E10A1472C2B825200ED9556 /* DefaultTaskSleeperTest.swift */; };
6E1185C62C3328A10071334E /* ExecutionWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1185C52C3328A10071334E /* ExecutionWindow.swift */; };
6E12539129A81ACE0009EE58 /* AirshipCoreDataPredicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E12539029A81ACE0009EE58 /* AirshipCoreDataPredicate.swift */; };
6E146C502F5214D900320A36 /* AirshipDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E146C4F2F5214D900320A36 /* AirshipDevice.swift */; };
6E146D682F523DB900320A36 /* AirshipFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E146D672F523DB700320A36 /* AirshipFont.swift */; };
6E146D6A2F5241BC00320A36 /* AirshipColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E146D692F5241BA00320A36 /* AirshipColor.swift */; };
6E146EDD2F52537000320A36 /* AishipFontTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E146EDC2F52536C00320A36 /* AishipFontTests.swift */; };
6E146FF32F525E7300320A36 /* AirshipPasteboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E146FF22F525E7300320A36 /* AirshipPasteboard.swift */; };
6E1472D52F526DCD00320A36 /* AirshipNativePlatform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1472D42F526DC600320A36 /* AirshipNativePlatform.swift */; };
6E1473EA2F527C4D00320A36 /* TestURLOpener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECB62812A36A45F0095C85C /* TestURLOpener.swift */; };
6E1476CC2F5643A100320A36 /* MessageCenterNavigationAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1476CB2F56439A00320A36 /* MessageCenterNavigationAppearance.swift */; };
6E14C9A128B5E4AF00A55E65 /* PushNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E14C9A028B5E4AF00A55E65 /* PushNotification.swift */; };
6E1528172B4DC3C000DF1377 /* ActionAutomationExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528162B4DC3C000DF1377 /* ActionAutomationExecutor.swift */; };
6E1528192B4DC3D000DF1377 /* InAppMessageAutomationPreparer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528182B4DC3D000DF1377 /* InAppMessageAutomationPreparer.swift */; };
6E15281B2B4DC3DF00DF1377 /* InAppMessageAutomationExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15281A2B4DC3DF00DF1377 /* InAppMessageAutomationExecutor.swift */; };
6E15281D2B4DC43100DF1377 /* ActionAutomationPreparer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15281C2B4DC43100DF1377 /* ActionAutomationPreparer.swift */; };
6E1528202B4DC59C00DF1377 /* InAppMessageSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15281F2B4DC59C00DF1377 /* InAppMessageSceneDelegate.swift */; };
6E1528222B4DC5C000DF1377 /* InAppMessageDisplayDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528212B4DC5C000DF1377 /* InAppMessageDisplayDelegate.swift */; };
6E1528242B4DC60200DF1377 /* DisplayCoordinatorManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528232B4DC60200DF1377 /* DisplayCoordinatorManager.swift */; };
6E1528262B4DC64B00DF1377 /* DisplayAdapterFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528252B4DC64B00DF1377 /* DisplayAdapterFactory.swift */; };
6E1528282B4DCFCB00DF1377 /* AirshipActorValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528272B4DCFCB00DF1377 /* AirshipActorValue.swift */; };
6E15282C2B4DE81E00DF1377 /* AutomationSDKModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15282B2B4DE81E00DF1377 /* AutomationSDKModule.swift */; };
6E15282F2B4DED7A00DF1377 /* InAppMessageAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15282E2B4DED7A00DF1377 /* InAppMessageAnalytics.swift */; };
6E1528312B4DED8900DF1377 /* InAppMessageAnalyticsFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528302B4DED8900DF1377 /* InAppMessageAnalyticsFactory.swift */; };
6E1528332B4DF2E600DF1377 /* ScheduleConditionsChangedNotifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528322B4DF2E600DF1377 /* ScheduleConditionsChangedNotifier.swift */; };
6E1528352B4E11DB00DF1377 /* CustomDisplayAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528342B4E11DB00DF1377 /* CustomDisplayAdapter.swift */; };
6E1528372B4E11E800DF1377 /* CustomDisplayAdapterWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528362B4E11E800DF1377 /* CustomDisplayAdapterWrapper.swift */; };
6E1528392B4E13D400DF1377 /* AirshipLayoutDisplayAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528382B4E13D400DF1377 /* AirshipLayoutDisplayAdapter.swift */; };
6E1528402B4F153900DF1377 /* TestDisplayAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15283F2B4F153900DF1377 /* TestDisplayAdapter.swift */; };
6E1528422B4F156200DF1377 /* TestDisplayCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1528412B4F156200DF1377 /* TestDisplayCoordinator.swift */; };
6E152BCA2743235800788402 /* Icons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E152BC92743235800788402 /* Icons.swift */; };
6E1589502AFEF19F00954A04 /* SessionTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15894F2AFEF19F00954A04 /* SessionTracker.swift */; };
6E1589542AFF021D00954A04 /* SessionState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1589532AFF021D00954A04 /* SessionState.swift */; };
6E1589582AFF023400954A04 /* SessionEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1589572AFF023400954A04 /* SessionEvent.swift */; };
6E15B6DB26CC749F0099C92D /* RemoteConfigManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B6D826CC749F0099C92D /* RemoteConfigManager.swift */; };
6E15B6F426CD85C40099C92D /* RuntimeConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B6F326CD85C40099C92D /* RuntimeConfig.swift */; };
6E15B6FA26CDCA6A0099C92D /* RuntimeConfigTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B6F926CDCA6A0099C92D /* RuntimeConfigTest.swift */; };
6E15B70326CDE40E0099C92D /* RemoteConfigManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B70226CDE40E0099C92D /* RemoteConfigManagerTest.swift */; };
6E15B70526CE07180099C92D /* TestRemoteData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B70426CE07180099C92D /* TestRemoteData.swift */; };
6E15B71426CEB4190099C92D /* RemoteDataStorePayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B70A26CEB4190099C92D /* RemoteDataStorePayload.swift */; };
6E15B71826CEB4190099C92D /* RemoteDataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B70C26CEB4190099C92D /* RemoteDataStore.swift */; };
6E15B72326CEC7030099C92D /* RemoteDataPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B72026CEC7030099C92D /* RemoteDataPayload.swift */; };
6E15B72A26CEDBA50099C92D /* RemoteData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B72926CEDBA50099C92D /* RemoteData.swift */; };
6E15B72D26CF13BC0099C92D /* RemoteDataProviderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B72C26CF13BC0099C92D /* RemoteDataProviderDelegate.swift */; };
6E15B73026CF4F6B0099C92D /* TestRemoteDataAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B72F26CF4F6B0099C92D /* TestRemoteDataAPIClient.swift */; };
6E16208A2B311219009240B2 /* DisplayCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1620892B311219009240B2 /* DisplayCoordinator.swift */; };
6E16208D2B3116AE009240B2 /* ImmediateDisplayCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E16208C2B3116AE009240B2 /* ImmediateDisplayCoordinator.swift */; };
6E16208F2B3116BA009240B2 /* DefaultDisplayCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E16208E2B3116BA009240B2 /* DefaultDisplayCoordinator.swift */; };
6E1620932B3118D9009240B2 /* ImmediateDisplayCoordinatorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1620912B3118D5009240B2 /* ImmediateDisplayCoordinatorTest.swift */; };
6E1620952B311D8A009240B2 /* DefaultDisplayCoordinatorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1620942B311D8A009240B2 /* DefaultDisplayCoordinatorTest.swift */; };
6E1767F629B923D100D65F60 /* ChannelAuthTokenProviderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1767F329B923D100D65F60 /* ChannelAuthTokenProviderTest.swift */; };
6E1767F729B923D100D65F60 /* ChannelAuthTokenAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1767F429B923D100D65F60 /* ChannelAuthTokenAPIClientTest.swift */; };
6E1767F829B923D100D65F60 /* TestChannelAuthTokenAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1767F529B923D100D65F60 /* TestChannelAuthTokenAPIClient.swift */; };
6E1767FA29B92F1700D65F60 /* AirshipUtilsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1767F929B92F1700D65F60 /* AirshipUtilsTest.swift */; };
6E1802F92C5C2DEC00198D0D /* AirshipAnalyticFeedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1802F82C5C2DEC00198D0D /* AirshipAnalyticFeedTest.swift */; };
6E1892B1268CE8FE00417887 /* AirshipLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8E1C9A26447B3800B11791 /* AirshipLock.swift */; };
6E1892C8268D15C300417887 /* PreferenceCenterTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1892C7268D15C300417887 /* PreferenceCenterTest.swift */; };
6E1892D5268E3D8500417887 /* PreferenceCenterDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1892D4268E3D8500417887 /* PreferenceCenterDecoder.swift */; };
6E1892D7268E3F1800417887 /* PreferenceCenterConfigTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1892D6268E3F1800417887 /* PreferenceCenterConfigTest.swift */; };
6E1892DE2694F1C100417887 /* ChannelRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1892DD2694F1C100417887 /* ChannelRegistrar.swift */; };
6E1A15062D6EA3A50056418B /* ThomasFormState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A15052D6EA3A50056418B /* ThomasFormState.swift */; };
6E1A19222D6F875A0056418B /* ThomasFormValidationMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A19212D6F87550056418B /* ThomasFormValidationMode.swift */; };
6E1A19242D6F8BDD0056418B /* AirshipInputValidationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A19232D6F8BD50056418B /* AirshipInputValidationTest.swift */; };
6E1A1BB32D6F9D0F0056418B /* ThomasFormFieldProcessorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A1BB22D6F9D090056418B /* ThomasFormFieldProcessorTest.swift */; };
6E1A1D852D70F3700056418B /* ThomasState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A1D842D70F36D0056418B /* ThomasState.swift */; };
6E1A9BAB2B5AE38A00A6489B /* InAppMessageDisplayListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BAA2B5AE38A00A6489B /* InAppMessageDisplayListener.swift */; };
6E1A9BB02B5B0C4C00A6489B /* AutomationActionRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BAF2B5B0C4C00A6489B /* AutomationActionRunner.swift */; };
6E1A9BB22B5B172F00A6489B /* TestActionRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BB12B5B172F00A6489B /* TestActionRunner.swift */; };
6E1A9BB72B5B1D9E00A6489B /* TestActiveTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BB62B5B1D9E00A6489B /* TestActiveTimer.swift */; };
6E1A9BB92B5B20A500A6489B /* InAppMessageDisplayListenerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BB82B5B20A500A6489B /* InAppMessageDisplayListenerTest.swift */; };
6E1A9BBB2B5B20D700A6489B /* TestInAppMessageAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BBA2B5B20D700A6489B /* TestInAppMessageAnalytics.swift */; };
6E1A9BBF2B5EE19000A6489B /* PreparedSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BBE2B5EE19000A6489B /* PreparedSchedule.swift */; };
6E1A9BC12B5EE1CF00A6489B /* SchedulePrepareResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BC02B5EE1CF00A6489B /* SchedulePrepareResult.swift */; };
6E1A9BC32B5EE1DE00A6489B /* ScheduleReadyResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BC22B5EE1DE00A6489B /* ScheduleReadyResult.swift */; };
6E1A9BC52B5EE1EE00A6489B /* ScheduleExecuteResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BC42B5EE1EE00A6489B /* ScheduleExecuteResult.swift */; };
6E1A9BC72B5EE32E00A6489B /* AutomationTriggerProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BC62B5EE32E00A6489B /* AutomationTriggerProcessor.swift */; };
6E1A9BC92B5EE34600A6489B /* AutomationEventFeed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BC82B5EE34600A6489B /* AutomationEventFeed.swift */; };
6E1A9BD12B5EE84600A6489B /* AutomationScheduleData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BD02B5EE84600A6489B /* AutomationScheduleData.swift */; };
6E1A9BD32B5EE8A400A6489B /* AutomationScheduleState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BD22B5EE8A400A6489B /* AutomationScheduleState.swift */; };
6E1A9BD52B5EE97000A6489B /* TriggeringInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BD42B5EE97000A6489B /* TriggeringInfo.swift */; };
6E1A9BF72B606CF200A6489B /* AutomationDelayProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1A9BF62B606CF200A6489B /* AutomationDelayProcessor.swift */; };
6E1B7B132B714FFC00695561 /* LandingPageAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1B7B122B714FFC00695561 /* LandingPageAction.swift */; };
6E1B7B162B715FFE00695561 /* LandingPageActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1B7B152B715FFE00695561 /* LandingPageActionTest.swift */; };
6E1BACDB2719ED7D0038399E /* ScrollLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1BACDA2719ED7D0038399E /* ScrollLayout.swift */; };
6E1BACDD2719FC0A0038399E /* ViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1BACDC2719FC0A0038399E /* ViewFactory.swift */; };
6E1C9C3A271E90EB009EF9EF /* LayoutModelsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1C9C39271E90EB009EF9EF /* LayoutModelsTest.swift */; };
6E1C9C4B271F7878009EF9EF /* BackgroundColorViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1C9C4A271F7878009EF9EF /* BackgroundColorViewModifier.swift */; };
6E1CBD812BA3A30300519D9C /* AirshipEmbeddedInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1CBD802BA3A30300519D9C /* AirshipEmbeddedInfo.swift */; };
6E1CBDE32BA51ED100519D9C /* InAppDisplayImpressionRuleProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1CBDE22BA51ED100519D9C /* InAppDisplayImpressionRuleProvider.swift */; };
6E1CBDFF2BAA1DF200519D9C /* DefaultInAppDisplayImpressionRuleProviderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1CBDFE2BAA1DF200519D9C /* DefaultInAppDisplayImpressionRuleProviderTest.swift */; };
6E1CBE2D2BAA2AEA00519D9C /* AirshipAutomation.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 6E1CBE2A2BAA2AEA00519D9C /* AirshipAutomation.xcdatamodeld */; };
6E1D8AD126CC5D490049DACB /* RemoteConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1D8AB226CC5D490049DACB /* RemoteConfig.swift */; };
6E1D8AD826CC66BE0049DACB /* RemoteConfigCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1D8AD726CC66BE0049DACB /* RemoteConfigCache.swift */; };
6E1D90022B2D1AB4004BA130 /* RetryingQueueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1D90012B2D1AB4004BA130 /* RetryingQueueTests.swift */; };
6E1EEE902BD81AF300B45A87 /* ContactChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E1EEE8F2BD81AF300B45A87 /* ContactChannel.swift */; };
6E1F6E842BE6835400CFC7A7 /* UARemoteDataMappingV2toV4.xcmappingmodel in Resources */ = {isa = PBXBuildFile; fileRef = 6E1F6E832BE6835400CFC7A7 /* UARemoteDataMappingV2toV4.xcmappingmodel */; };
6E1F6E882BE683E600CFC7A7 /* UARemoteDataMappingV1toV4.xcmappingmodel in Resources */ = {isa = PBXBuildFile; fileRef = 6E1F6E872BE683E600CFC7A7 /* UARemoteDataMappingV1toV4.xcmappingmodel */; };
6E213B182BC60AF100BF24AE /* AirshipWeakValueHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E213B172BC60AF100BF24AE /* AirshipWeakValueHolder.swift */; };
6E213B1E2BC7054500BF24AE /* InAppActionRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E213B1D2BC7054500BF24AE /* InAppActionRunner.swift */; };
6E21852B237D32B30084933A /* EventData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E21852A237D32B30084933A /* EventData.swift */; };
6E2486DF28945D3900657CE4 /* PreferenceCenterState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2486DE28945D3900657CE4 /* PreferenceCenterState.swift */; };
6E2486EC2894901E00657CE4 /* ConditionsViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2486EB2894901E00657CE4 /* ConditionsViewModifier.swift */; };
6E2486F22898341400657CE4 /* ConditionsMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2486F02898341400657CE4 /* ConditionsMonitor.swift */; };
6E2486F728984D0D00657CE4 /* PreferenceCenterTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2486F628984D0D00657CE4 /* PreferenceCenterTheme.swift */; };
6E2486FD2899C06100657CE4 /* PreferenceCenterContentLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2486FC2899C06100657CE4 /* PreferenceCenterContentLoader.swift */; };
6E25DD052D515F33009CF1A4 /* ThomasEmailRegistrationOptionsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2FA28B2D515C5A005893E2 /* ThomasEmailRegistrationOptionsTest.swift */; };
6E2811682BE406A50040D928 /* FeatureFlagDeferredResolverTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7EACD22AF4220E00DA286B /* FeatureFlagDeferredResolverTest.swift */; };
6E28116C2BE40E860040D928 /* FeatureFlagVariablesTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E28116B2BE40E860040D928 /* FeatureFlagVariablesTest.swift */; };
6E29474B2AD47E15009EC6DD /* AirshipPreferenceCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 847BFFF4267CD739007CD249 /* AirshipPreferenceCenter.framework */; };
6E29474D2AD5DA3B009EC6DD /* LiveActivityRegistrationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E29474C2AD5DA3B009EC6DD /* LiveActivityRegistrationStatus.swift */; };
6E2947512AD5DB5A009EC6DD /* LiveActivityRegistrationStatusUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2947502AD5DB5A009EC6DD /* LiveActivityRegistrationStatusUpdates.swift */; };
6E299FD528D13D00001305A7 /* DefaultAirshipRequestSessionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E299FD428D13D00001305A7 /* DefaultAirshipRequestSessionTest.swift */; };
6E299FD728D13E54001305A7 /* AirshipRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E299FD628D13E54001305A7 /* AirshipRequest.swift */; };
6E299FDB28D14208001305A7 /* AirshipResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E299FDA28D14208001305A7 /* AirshipResponse.swift */; };
6E299FDF28D14258001305A7 /* AirshipRequestSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E299FDE28D14258001305A7 /* AirshipRequestSession.swift */; };
6E2D6AEE26B083DB00B7C226 /* ChannelAudienceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2D6AED26B083DB00B7C226 /* ChannelAudienceManager.swift */; };
6E2D6AF226B0B64E00B7C226 /* SubscriptionListAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2D6AF126B0B64E00B7C226 /* SubscriptionListAPIClientTest.swift */; };
6E2D6AF426B0C3C500B7C226 /* ChannelAudienceManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2D6AF326B0C3C500B7C226 /* ChannelAudienceManagerTest.swift */; };
6E2D6AF626B0C6CA00B7C226 /* TestSubscriptionListAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2D6AF526B0C6CA00B7C226 /* TestSubscriptionListAPIClient.swift */; };
6E2E3CA22B32723C00B8515B /* InAppMessageNativeBridgeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2E3CA12B32723C00B8515B /* InAppMessageNativeBridgeExtension.swift */; };
6E2E3CA62B327A6C00B8515B /* InAppMessageNativeBridgeExtensionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2E3CA42B32726400B8515B /* InAppMessageNativeBridgeExtensionTest.swift */; };
6E2F5A742A60833700CABD3D /* FeatureFlagManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2F5A732A60833700CABD3D /* FeatureFlagManager.swift */; };
6E2F5A762A60871E00CABD3D /* FeatureFlagPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2F5A752A60871E00CABD3D /* FeatureFlagPayload.swift */; };
6E2F5A862A65F00200CABD3D /* RemoteDataSourceStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2F5A852A65F00200CABD3D /* RemoteDataSourceStatus.swift */; };
6E2F5A8A2A66088100CABD3D /* AudienceDeviceInfoProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2F5A892A66088100CABD3D /* AudienceDeviceInfoProvider.swift */; };
6E2F5A8E2A66FE8900CABD3D /* AirshipTimeCriteria.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2F5A8D2A66FE8900CABD3D /* AirshipTimeCriteria.swift */; };
6E2F5A932A67316C00CABD3D /* AirshipFeatureFlags.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A62058692A5841330041FBF9 /* AirshipFeatureFlags.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
6E2F5AB12A67434B00CABD3D /* FeatureFlag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2F5AB02A67434B00CABD3D /* FeatureFlag.swift */; };
6E2F5AB22A67589400CABD3D /* TestDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1422683B8FA00A2CBD0 /* TestDate.swift */; };
6E2F5AB32A6758ED00CABD3D /* TestNetworkMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED171268448EC00A2CBD0 /* TestNetworkMonitor.swift */; };
6E2F5AB52A67599400CABD3D /* TestRemoteData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B70426CE07180099C92D /* TestRemoteData.swift */; };
6E2F5AB72A675ADC00CABD3D /* TestAudienceChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2F5AB62A675ADC00CABD3D /* TestAudienceChecker.swift */; };
6E2F5AB82A675ADC00CABD3D /* TestAudienceChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2F5AB62A675ADC00CABD3D /* TestAudienceChecker.swift */; };
6E2F5ABA2A675D3600CABD3D /* FeatureFlagsRemoteDataAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2F5AB92A675D3600CABD3D /* FeatureFlagsRemoteDataAccess.swift */; };
6E2FA2892D51519B005893E2 /* ThomasEmailRegistrationOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2FA2882D515189005893E2 /* ThomasEmailRegistrationOptions.swift */; };
6E34C4B12C7D4B6400B00506 /* ExecutionWindowProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E34C4B02C7D4B6400B00506 /* ExecutionWindowProcessor.swift */; };
6E34C4B32C7D4C6600B00506 /* ExecutionWindowProcessorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E34C4B22C7D4C6600B00506 /* ExecutionWindowProcessorTest.swift */; };
6E382C21276D3E990091A351 /* ThomasValidationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E382C20276D3E990091A351 /* ThomasValidationTests.swift */; };
6E3B230F28A318CD0005D46E /* PreferenceCenterThemeLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E3B230E28A318CD0005D46E /* PreferenceCenterThemeLoader.swift */; };
6E3B231328A32EC30005D46E /* PreferenceCenterViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E3B231228A32EC30005D46E /* PreferenceCenterViewExtensions.swift */; };
6E3B32CC27559D8B00B89C7B /* FormInputViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E3B32CB27559D8B00B89C7B /* FormInputViewModifier.swift */; };
6E3B32CF2755D8C700B89C7B /* LayoutState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E3B32CE2755D8C700B89C7B /* LayoutState.swift */; };
6E3CA5412ECB9B7900210C32 /* AirshipDisplayTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E3CA5402ECB9B7400210C32 /* AirshipDisplayTarget.swift */; };
6E4007142A153AB20013C2DE /* AppRemoteDataProviderDelegateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4007132A153AB20013C2DE /* AppRemoteDataProviderDelegateTest.swift */; };
6E4007162A153ABE0013C2DE /* ContactRemoteDataProviderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4007152A153ABE0013C2DE /* ContactRemoteDataProviderTest.swift */; };
6E4007182A153AFE0013C2DE /* RemoteDataURLFactoryTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4007172A153AFE0013C2DE /* RemoteDataURLFactoryTest.swift */; };
6E40868C2B8931C900435E2C /* AirshipViewSizeReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E40868B2B8931C900435E2C /* AirshipViewSizeReader.swift */; };
6E40868E2B8D036600435E2C /* AirshipEmbeddedSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E40868D2B8D036600435E2C /* AirshipEmbeddedSize.swift */; };
6E411B782538C4E600FEE4E8 /* UANativeBridge in Resources */ = {isa = PBXBuildFile; fileRef = 6E411B6C2538C4E500FEE4E8 /* UANativeBridge */; };
6E411B7C2538C4E600FEE4E8 /* UANotificationCategories.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6E411B6D2538C4E600FEE4E8 /* UANotificationCategories.plist */; };
6E411C782538C60900FEE4E8 /* UrbanAirship.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6E411C742538C60900FEE4E8 /* UrbanAirship.strings */; };
6E411CAB2538C6A600FEE4E8 /* UARemoteData.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 6E411CA42538C6A500FEE4E8 /* UARemoteData.xcdatamodeld */; };
6E411CAF2538C6A600FEE4E8 /* UAEvents.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 6E411CA72538C6A500FEE4E8 /* UAEvents.xcdatamodeld */; };
6E43202226EA814F009228AB /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3261A7F4243CD73100ADBF6B /* CoreTelephony.framework */; platformFilter = maccatalyst; };
6E43219226EA89B6009228AB /* NativeBridgeDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E43218F26EA89B6009228AB /* NativeBridgeDelegate.swift */; };
6E4325C32B7A9D9A00A9B000 /* AirshipPrivacyManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4325C22B7A9D9A00A9B000 /* AirshipPrivacyManagerTest.swift */; };
6E4325C52B7AC3F700A9B000 /* TestPush.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4325C42B7AC3F700A9B000 /* TestPush.swift */; };
6E4325C62B7AC40D00A9B000 /* TestPush.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4325C42B7AC3F700A9B000 /* TestPush.swift */; };
6E4325CE2B7AD5A200A9B000 /* AirshipComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4325CD2B7AD5A200A9B000 /* AirshipComponent.swift */; };
6E4325D32B7AD96800A9B000 /* AirshipTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4325D22B7AD96800A9B000 /* AirshipTest.swift */; };
6E4325E92B7AEB1F00A9B000 /* AirshipEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4325E82B7AEB1F00A9B000 /* AirshipEvent.swift */; };
6E4325F22B7B1EDA00A9B000 /* SessionEventFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4325F12B7B1EDA00A9B000 /* SessionEventFactory.swift */; };
6E4325F62B7B2F5800A9B000 /* FeatureFlagAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4325F52B7B2F5800A9B000 /* FeatureFlagAnalytics.swift */; };
6E4325F82B7C08A600A9B000 /* AirshipAnalyticsFeed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4325F72B7C08A600A9B000 /* AirshipAnalyticsFeed.swift */; };
6E4326012B7C327C00A9B000 /* AirshipEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4326002B7C327C00A9B000 /* AirshipEvents.swift */; };
6E4326072B7C364300A9B000 /* AssociatedIdentifiersTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4326042B7C361F00A9B000 /* AssociatedIdentifiersTest.swift */; };
6E4326092B7C396F00A9B000 /* TestAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BE1726E2C5940005D20D /* TestAnalytics.swift */; };
6E4339EF2DFA03A3000A7741 /* JSONValueMatcherPredicates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4339EE2DFA039B000A7741 /* JSONValueMatcherPredicates.swift */; };
6E4339F12DFA099F000A7741 /* AirshipIvyVersionMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4339F02DFA099C000A7741 /* AirshipIvyVersionMatcher.swift */; };
6E44626729E6813A00CB2B56 /* AsyncSerialQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E44626629E6813A00CB2B56 /* AsyncSerialQueue.swift */; };
6E46A273272B19760089CDE3 /* ViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E46A272272B19760089CDE3 /* ViewExtensions.swift */; };
6E46A27C272B63680089CDE3 /* ThomasEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E46A27B272B63680089CDE3 /* ThomasEnvironment.swift */; };
6E46A27F272B68660089CDE3 /* ThomasDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E46A27E272B68660089CDE3 /* ThomasDelegate.swift */; };
6E475BFE2F5A3709003D8E42 /* VideoGroupState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E475BFD2F5A3709003D8E42 /* VideoGroupState.swift */; };
6E475CBA2F5B3E45003D8E42 /* VideoMediaWebViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E475CB92F5B3E45003D8E42 /* VideoMediaWebViewTests.swift */; };
6E49D7B228401D2E00C7BB9D /* Permission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7A628401D2D00C7BB9D /* Permission.swift */; };
6E49D7B428401D2E00C7BB9D /* PermissionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7A728401D2D00C7BB9D /* PermissionDelegate.swift */; };
6E49D7B628401D2E00C7BB9D /* NotificationRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7A828401D2D00C7BB9D /* NotificationRegistrar.swift */; };
6E49D7B828401D2E00C7BB9D /* Atomic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7A928401D2D00C7BB9D /* Atomic.swift */; };
6E49D7BA28401D2E00C7BB9D /* NotificationPermissionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7AA28401D2D00C7BB9D /* NotificationPermissionDelegate.swift */; };
6E49D7BC28401D2E00C7BB9D /* PermissionsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7AB28401D2D00C7BB9D /* PermissionsManager.swift */; };
6E49D7BE28401D2E00C7BB9D /* RegistrationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7AC28401D2D00C7BB9D /* RegistrationDelegate.swift */; };
6E49D7C028401D2E00C7BB9D /* UNNotificationRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7AD28401D2D00C7BB9D /* UNNotificationRegistrar.swift */; };
6E49D7C228401D2E00C7BB9D /* PermissionStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7AE28401D2D00C7BB9D /* PermissionStatus.swift */; };
6E49D7C428401D2E00C7BB9D /* PushNotificationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7AF28401D2E00C7BB9D /* PushNotificationDelegate.swift */; };
6E49D7C628401D2E00C7BB9D /* Badger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7B028401D2E00C7BB9D /* Badger.swift */; };
6E49D7C828401D2E00C7BB9D /* APNSRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7B128401D2E00C7BB9D /* APNSRegistrar.swift */; };
6E49D7CD284028C600C7BB9D /* PermissionsManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E49D7CC284028C600C7BB9D /* PermissionsManagerTests.swift */; };
6E4A466128EF447C00A25617 /* MessageCenterUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A466028EF447C00A25617 /* MessageCenterUser.swift */; };
6E4A466528EF448600A25617 /* MessageCenterStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A466228EF448600A25617 /* MessageCenterStore.swift */; };
6E4A466628EF448600A25617 /* MessageCenterAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A466328EF448600A25617 /* MessageCenterAPIClient.swift */; };
6E4A466728EF448600A25617 /* MessageCenterMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A466428EF448600A25617 /* MessageCenterMessage.swift */; };
6E4A467228EF44F600A25617 /* AirshipMessageCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CA0E423237E4A7B00EE76CF /* AirshipMessageCenter.framework */; };
6E4A467928EF453400A25617 /* MessageCenterAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A467828EF453400A25617 /* MessageCenterAPIClientTest.swift */; };
6E4A468028EF4FAF00A25617 /* TestAirshipRequestSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A467F28EF4FAF00A25617 /* TestAirshipRequestSession.swift */; };
6E4A468128EF4FAF00A25617 /* TestAirshipRequestSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A467F28EF4FAF00A25617 /* TestAirshipRequestSession.swift */; };
6E4A469F28F4A7DF00A25617 /* MessageCenterAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A469E28F4A7DF00A25617 /* MessageCenterAction.swift */; };
6E4A46A128F4AEDF00A25617 /* MessageCenterNativeBridgeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A46A028F4AEDF00A25617 /* MessageCenterNativeBridgeExtension.swift */; };
6E4A4FDA2A30358F0049FEFC /* TagsActionArgs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A4FD92A30358F0049FEFC /* TagsActionArgs.swift */; };
6E4A4FDE2A3132850049FEFC /* AirshipSDKModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A4FDD2A3132850049FEFC /* AirshipSDKModule.swift */; };
6E4AEE0C2B6B24D7008AEAC1 /* AirshipAutomation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E0B872A294A9C120064B7BD /* AirshipAutomation.framework */; };
6E4AEE272B6B2E0A008AEAC1 /* alternate-airship.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6E4AEE222B6B2E09008AEAC1 /* alternate-airship.jpg */; };
6E4AEE282B6B2E0A008AEAC1 /* DefaultAssetFileManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AEE232B6B2E09008AEAC1 /* DefaultAssetFileManagerTest.swift */; };
6E4AEE292B6B2E0A008AEAC1 /* airship.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6E4AEE242B6B2E0A008AEAC1 /* airship.jpg */; };
6E4AEE2A2B6B2E0A008AEAC1 /* AssetCacheManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AEE252B6B2E0A008AEAC1 /* AssetCacheManagerTest.swift */; };
6E4AEE2B2B6B2E0A008AEAC1 /* DefaultAssetDownloaderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AEE262B6B2E0A008AEAC1 /* DefaultAssetDownloaderTest.swift */; };
6E4AEE2C2B6B302D008AEAC1 /* ActionAutomationPreparerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15283D2B4F0B8200DF1377 /* ActionAutomationPreparerTest.swift */; };
6E4AEE302B6B3041008AEAC1 /* InAppMessageThemeTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D79C2B4F9E830099B6F3 /* InAppMessageThemeTest.swift */; };
6E4AEE312B6B3A6A008AEAC1 /* Valid-UAInAppMessageModalStyle.plist in Resources */ = {isa = PBXBuildFile; fileRef = 459D40542092474300C40E2D /* Valid-UAInAppMessageModalStyle.plist */; };
6E4AEE322B6B3A6A008AEAC1 /* Valid-UAInAppMessageBannerStyle.plist in Resources */ = {isa = PBXBuildFile; fileRef = 459D40562092474A00C40E2D /* Valid-UAInAppMessageBannerStyle.plist */; };
6E4AEE332B6B3A6A008AEAC1 /* Valid-UAInAppMessageFullScreenStyle.plist in Resources */ = {isa = PBXBuildFile; fileRef = 459D4049208FE64D00C40E2D /* Valid-UAInAppMessageFullScreenStyle.plist */; };
6E4AEE342B6B3A6A008AEAC1 /* Invalid-UAInAppMessageBannerStyle.plist in Resources */ = {isa = PBXBuildFile; fileRef = 459D40582092475500C40E2D /* Invalid-UAInAppMessageBannerStyle.plist */; };
6E4AEE352B6B3A6A008AEAC1 /* Valid-UAInAppMessageHTMLStyle.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6EE6529222A7E3B800F7D54D /* Valid-UAInAppMessageHTMLStyle.plist */; };
6E4AEE362B6B3A6A008AEAC1 /* Invalid-UAInAppMessageModalStyle.plist in Resources */ = {isa = PBXBuildFile; fileRef = 459D405A2092475C00C40E2D /* Invalid-UAInAppMessageModalStyle.plist */; };
6E4AEE372B6B3A6A008AEAC1 /* Invalid-UAInAppMessageFullScreenStyle.plist in Resources */ = {isa = PBXBuildFile; fileRef = 459D404B208FE6BA00C40E2D /* Invalid-UAInAppMessageFullScreenStyle.plist */; };
6E4AEE572B6B4358008AEAC1 /* UAAutomation.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AEE492B6B4358008AEAC1 /* UAAutomation.xcdatamodeld */; };
6E4AEE642B6B44EA008AEAC1 /* LegacyAutomationStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AEE622B6B44EA008AEAC1 /* LegacyAutomationStore.swift */; };
6E4AEE652B6B44EA008AEAC1 /* AutomationStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AEE632B6B44EA008AEAC1 /* AutomationStore.swift */; };
6E4AEEBC2B6D6380008AEAC1 /* TriggerData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AEEBB2B6D6380008AEAC1 /* TriggerData.swift */; };
6E4D20722E6B761200A8D641 /* MessageCenterListViewWithNavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4D20712E6B760C00A8D641 /* MessageCenterListViewWithNavigation.swift */; };
6E4D224A2E6F814000A8D641 /* MessageCenterMessageViewWithNavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4D22492E6F813700A8D641 /* MessageCenterMessageViewWithNavigation.swift */; };
6E4D224C2E6F968A00A8D641 /* MessageCenterNavigationStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4D224B2E6F968000A8D641 /* MessageCenterNavigationStack.swift */; };
6E4D224E2E6F96B800A8D641 /* MessageCenterSplitNavigationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4D224D2E6F96B100A8D641 /* MessageCenterSplitNavigationView.swift */; };
6E4D22502E6F9CF200A8D641 /* MessageCenterContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4D224F2E6F9CD700A8D641 /* MessageCenterContent.swift */; };
6E4D22522E6FA2F700A8D641 /* MessageCenterBackButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4D22512E6FA2F300A8D641 /* MessageCenterBackButton.swift */; };
6E4D22542E6FA5ED00A8D641 /* MessageCenterWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4D22532E6FA5EA00A8D641 /* MessageCenterWebView.swift */; };
6E4D225D2E70ADE100A8D641 /* MessageCenterMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4D225C2E70ADDB00A8D641 /* MessageCenterMessageViewModel.swift */; };
6E4D225F2E70AFE800A8D641 /* MessageCenterListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4D225E2E70AFE300A8D641 /* MessageCenterListViewModel.swift */; };
6E4E2E2829CEB222002E7682 /* ContactManagerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4E2E2729CEB222002E7682 /* ContactManagerProtocol.swift */; };
6E4E5B3B26E7F91600198175 /* AirshipLocalizationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4E5B3926E7F91600198175 /* AirshipLocalizationUtils.swift */; };
6E4E5B3D26E7F91600198175 /* Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4E5B3A26E7F91600198175 /* Attributes.swift */; };
6E5213E32DCA7A3B00CF64B9 /* ThomasEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5213E22DCA7A3800CF64B9 /* ThomasEvent.swift */; };
6E5214672DCAB03900CF64B9 /* ThomasFormResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5214662DCAB03600CF64B9 /* ThomasFormResult.swift */; };
6E5214692DCABFCE00CF64B9 /* ThomasLayoutContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5214682DCABFCA00CF64B9 /* ThomasLayoutContext.swift */; };
6E52146B2DCBF9BD00CF64B9 /* AirshipTimerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E52146A2DCBF9BA00CF64B9 /* AirshipTimerProtocol.swift */; };
6E52146D2DCBFABE00CF64B9 /* ThomasPagerTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E52146C2DCBFAB900CF64B9 /* ThomasPagerTracker.swift */; };
6E52146F2DCC075500CF64B9 /* ThomasPagerTrackerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E52146E2DCC075100CF64B9 /* ThomasPagerTrackerTest.swift */; };
6E5215222DCEA12A00CF64B9 /* ThomasViewedPageInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5215212DCEA10F00CF64B9 /* ThomasViewedPageInfo.swift */; };
6E524C732C126F5F002CA094 /* AirshipEventType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E524C722C126F5F002CA094 /* AirshipEventType.swift */; };
6E524D022C1A2CAE002CA094 /* InAppMessageThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E524D012C1A2CAE002CA094 /* InAppMessageThemeManager.swift */; };
6E524D042C1A454E002CA094 /* InAppMessageThemeShadow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E524D032C1A454E002CA094 /* InAppMessageThemeShadow.swift */; };
6E55A4D72E1DB4F700B07DF8 /* ThomasAssociatedLabelResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E55A4D62E1DB4CB00B07DF8 /* ThomasAssociatedLabelResolver.swift */; };
6E57CE3228DB8BDA00287601 /* LiveActivityUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E57CE3128DB8BDA00287601 /* LiveActivityUpdate.swift */; };
6E57CE3728DBBD9A00287601 /* LiveActivityRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E57CE3628DBBD9A00287601 /* LiveActivityRegistry.swift */; };
6E590E6E29A94CA90036DFAB /* AppStateTrackerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E590E6D29A94CA90036DFAB /* AppStateTrackerTest.swift */; };
6E5A64C42AAB7D5C00574085 /* AirshipMeteredUsage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5A64C32AAB7D5C00574085 /* AirshipMeteredUsage.swift */; };
6E5A64C82AABBE7100574085 /* MeteredUsageAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5A64C72AABBE7100574085 /* MeteredUsageAPIClient.swift */; };
6E5A64D02AABBEAF00574085 /* AirshipMeteredUsageEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5A64CF2AABBEAF00574085 /* AirshipMeteredUsageEvent.swift */; };
6E5A64D42AABBED600574085 /* MeteredUsageStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5A64D32AABBED600574085 /* MeteredUsageStore.swift */; };
6E5A64D92AABC5A400574085 /* UAMeteredUsage.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 6E5A64D72AABC5A400574085 /* UAMeteredUsage.xcdatamodeld */; };
6E5ADF822D7682A300A03799 /* StateSubscriptionsModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5ADF812D7682A200A03799 /* StateSubscriptionsModifier.swift */; };
6E5ADF842D7682D600A03799 /* ThomasStateTrigger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5ADF832D7682D300A03799 /* ThomasStateTrigger.swift */; };
6E5B1A052AFF090B0019CA61 /* SessionTrackerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5B1A042AFF090B0019CA61 /* SessionTrackerTest.swift */; };
6E60EF6A29DF542B003F7A8D /* AnonContactData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E60EF6929DF542B003F7A8D /* AnonContactData.swift */; };
6E6363E229DCD0CF009C358A /* ContactSubscriptionListClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6363E129DCD0CF009C358A /* ContactSubscriptionListClient.swift */; };
6E6363E629DCE9A2009C358A /* ContactSubscriptionListAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6363E529DCE9A2009C358A /* ContactSubscriptionListAPIClientTest.swift */; };
6E6363E829DCEB84009C358A /* ContactManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6363E729DCEB84009C358A /* ContactManagerTest.swift */; };
6E6363EA29DCECA1009C358A /* TestContactSubscriptionListAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6363E929DCECA1009C358A /* TestContactSubscriptionListAPIClient.swift */; };
6E6363EC29DDF84B009C358A /* SerialQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6363EB29DDF84B009C358A /* SerialQueue.swift */; };
6E64C88027331ABA000EB887 /* PreferenceDataStoreTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E64C87F27331ABA000EB887 /* PreferenceDataStoreTest.swift */; };
6E65244C2A4FD4270019F353 /* DeviceTagSelectorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E65244B2A4FD4270019F353 /* DeviceTagSelectorTest.swift */; };
6E65244E2A4FD69F0019F353 /* DeviceAudienceSelectorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E65244D2A4FD69F0019F353 /* DeviceAudienceSelectorTest.swift */; };
6E6524502A4FD8D30019F353 /* JSONPredicateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E65244F2A4FD8D30019F353 /* JSONPredicateTest.swift */; };
6E6541E02758976D009676CA /* AirshipProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6541DF2758976D009676CA /* AirshipProgressView.swift */; };
6E65FB602C753CB400D9F341 /* EmbeddedViewSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E65FB5F2C753CB400D9F341 /* EmbeddedViewSelector.swift */; };
6E664BA126C43F5400A2C8E5 /* ActivityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BA026C43F5400A2C8E5 /* ActivityViewController.swift */; };
6E664BA726C4417400A2C8E5 /* ShareAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BA426C4417400A2C8E5 /* ShareAction.swift */; };
6E664BCA26C4852B00A2C8E5 /* AddCustomEventAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BC926C4852B00A2C8E5 /* AddCustomEventAction.swift */; };
6E664BD026C4916600A2C8E5 /* AddTagsAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BCF26C4916600A2C8E5 /* AddTagsAction.swift */; };
6E664BD326C4917000A2C8E5 /* RemoveTagsAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BD226C4917000A2C8E5 /* RemoveTagsAction.swift */; };
6E664BD926C4CD8700A2C8E5 /* PasteboardAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BD526C4CD8700A2C8E5 /* PasteboardAction.swift */; };
6E664BDB26C4CD8700A2C8E5 /* EnableFeatureAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BD626C4CD8700A2C8E5 /* EnableFeatureAction.swift */; };
6E664BDD26C4CD8700A2C8E5 /* OpenExternalURLAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BD726C4CD8700A2C8E5 /* OpenExternalURLAction.swift */; };
6E664BDF26C4CD8700A2C8E5 /* FetchDeviceInfoAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BD826C4CD8700A2C8E5 /* FetchDeviceInfoAction.swift */; };
6E664BE526C5817B00A2C8E5 /* TestContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BE426C5817B00A2C8E5 /* TestContact.swift */; };
6E664BE726C5B21600A2C8E5 /* ModifyAttributesAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BE626C5B21600A2C8E5 /* ModifyAttributesAction.swift */; };
6E664BEA26C6DB7600A2C8E5 /* AirshipUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E664BE926C6DB7500A2C8E5 /* AirshipUtils.swift */; };
6E66BA7F2D14B61A0083A9FD /* WrappingLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E66BA7E2D14B61A0083A9FD /* WrappingLayout.swift */; };
6E66DDA62E95A68300D44555 /* WorkRateLimiterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E66DDA52E95A67C00D44555 /* WorkRateLimiterTests.swift */; };
6E68028B2B850DDE00F4591F /* ApplicationMetrics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1512683DBC300A2CBD0 /* ApplicationMetrics.swift */; };
6E68028C2B85149900F4591F /* ApplicationMetricsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E60EF6529DF4BB5003F7A8D /* ApplicationMetricsTest.swift */; };
6E68028E2B852F6A00F4591F /* AutomationScheduleDataTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E68028D2B852F6A00F4591F /* AutomationScheduleDataTest.swift */; };
6E6802902B8671E700F4591F /* InAppAutomationComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E68028F2B8671E700F4591F /* InAppAutomationComponent.swift */; };
6E6802922B86732200F4591F /* PreferenceCenterComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6802912B86732200F4591F /* PreferenceCenterComponent.swift */; };
6E6802942B8673F900F4591F /* FeatureFlagComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6802932B8673F900F4591F /* FeatureFlagComponent.swift */; };
6E6802962B86749900F4591F /* MessageCenterComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6802952B86749900F4591F /* MessageCenterComponent.swift */; };
6E6802982B8675A200F4591F /* DebugComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6802972B8675A200F4591F /* DebugComponent.swift */; };
6E68203228EDE3E200A4F90B /* LiveActivityRestorer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E68203128EDE3E200A4F90B /* LiveActivityRestorer.swift */; };
6E692AFD29E0CB2F00D96CCC /* JavaScriptCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E692AFC29E0CB2F00D96CCC /* JavaScriptCommand.swift */; };
6E692AFF29E0CB4100D96CCC /* JavaScriptCommandDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E692AFE29E0CB4100D96CCC /* JavaScriptCommandDelegate.swift */; };
6E692B0329E0CBB500D96CCC /* NativeBridgeExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E692B0229E0CBB500D96CCC /* NativeBridgeExtensionDelegate.swift */; };
6E698DEC26790AC300654DB2 /* PreferenceDataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698DE826790AC300654DB2 /* PreferenceDataStore.swift */; };
6E698DF226790AC300654DB2 /* AirshipPrivacyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698DEB26790AC300654DB2 /* AirshipPrivacyManager.swift */; };
6E698E03267A799500654DB2 /* AirshipErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E02267A799500654DB2 /* AirshipErrors.swift */; };
6E698E09267A7DD900654DB2 /* RemoteDataAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E08267A7DD900654DB2 /* RemoteDataAPIClient.swift */; };
6E698E0C267A88D600654DB2 /* EventAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E0B267A88D600654DB2 /* EventAPIClient.swift */; };
6E698E3D267BEDC300654DB2 /* DefaultAirshipContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E3A267BEDC300654DB2 /* DefaultAirshipContact.swift */; };
6E698E3F267BEDC300654DB2 /* AttributesEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E3B267BEDC300654DB2 /* AttributesEditor.swift */; };
6E698E41267BEDC300654DB2 /* TagGroupsEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E3C267BEDC300654DB2 /* TagGroupsEditor.swift */; };
6E698E57267BF63B00654DB2 /* AppStateTrackerAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E52267BF63A00654DB2 /* AppStateTrackerAdapter.swift */; };
6E698E59267BF63B00654DB2 /* AppStateTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E53267BF63A00654DB2 /* AppStateTracker.swift */; };
6E698E5F267BF63B00654DB2 /* ApplicationState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E56267BF63B00654DB2 /* ApplicationState.swift */; };
6E698E62267C03C700654DB2 /* TestAppStateTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E61267C03C700654DB2 /* TestAppStateTracker.swift */; };
6E6A848D2B6854FC006FFB35 /* AutomationDelayProcessorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6A848C2B6854FC006FFB35 /* AutomationDelayProcessorTest.swift */; };
6E6A84932B68A57E006FFB35 /* AutomationStoreTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6A84912B68A571006FFB35 /* AutomationStoreTest.swift */; };
6E6B2DBE2B33B768008BF788 /* AutomationScheduleTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6B2DBD2B33B768008BF788 /* AutomationScheduleTest.swift */; };
6E6BD2422AE995DA00B9DFC9 /* DeferredResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BD2412AE995DA00B9DFC9 /* DeferredResolver.swift */; };
6E6BD2462AEAFE7E00B9DFC9 /* DeferredAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BD2452AEAFE7E00B9DFC9 /* DeferredAPIClient.swift */; };
6E6BD24A2AEAFEB700B9DFC9 /* AirsihpTriggerContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BD2492AEAFEB700B9DFC9 /* AirsihpTriggerContext.swift */; };
6E6BD24E2AEAFEC500B9DFC9 /* AirshipStateOverrides.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BD24D2AEAFEC500B9DFC9 /* AirshipStateOverrides.swift */; };
6E6BD2582AEC598C00B9DFC9 /* DeferredAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BD2572AEC598C00B9DFC9 /* DeferredAPIClientTest.swift */; };
6E6BD25A2AEC626B00B9DFC9 /* DeferredResolverTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BD2592AEC626B00B9DFC9 /* DeferredResolverTest.swift */; };
6E6BD26D2AF1AC5700B9DFC9 /* AirshipCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BD26C2AF1AC5700B9DFC9 /* AirshipCache.swift */; };
6E6BD2722AF1B05500B9DFC9 /* UAirshipCache.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BD2702AF1B05500B9DFC9 /* UAirshipCache.xcdatamodeld */; };
6E6BD2762AF1C1D800B9DFC9 /* DeferredFlagResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BD2752AF1C1D800B9DFC9 /* DeferredFlagResolver.swift */; };
6E6BD2782AF2B97300B9DFC9 /* AirshipTaskSleeper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BD2772AF2B97300B9DFC9 /* AirshipTaskSleeper.swift */; };
6E6C3F7F27A20C3C007F55C7 /* ChannelScope.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6C3F7E27A20C3C007F55C7 /* ChannelScope.swift */; };
6E6C3F8A27A266C0007F55C7 /* CachedValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6C3F8927A266C0007F55C7 /* CachedValue.swift */; };
6E6C3F8D27A26992007F55C7 /* CachedValueTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6C3F8C27A26992007F55C7 /* CachedValueTest.swift */; };
6E6C3F9A27A47DB4007F55C7 /* PreferenceCenterConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6C3F9927A47DB4007F55C7 /* PreferenceCenterConfig.swift */; };
6E6C3F9E27A4C3D4007F55C7 /* AirshipJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6C3F9D27A4C3D4007F55C7 /* AirshipJSON.swift */; };
6E6C84462A5C8CFE00DD83A2 /* AirshipConfigTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6C84452A5C8CFD00DD83A2 /* AirshipConfigTest.swift */; };
6E6CC38623A3F9B4003D583C /* PushDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6CC38023A3F9B4003D583C /* PushDataManager.swift */; };
6E6ED13B2683A58D00A2CBD0 /* Dispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1352683A58D00A2CBD0 /* Dispatcher.swift */; };
6E6ED1402683A9F200A2CBD0 /* AirshipDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED13F2683A9F200A2CBD0 /* AirshipDate.swift */; };
6E6ED1432683B8FA00A2CBD0 /* TestDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1422683B8FA00A2CBD0 /* TestDate.swift */; };
6E6ED1452683BC7F00A2CBD0 /* TestDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1442683BC7F00A2CBD0 /* TestDispatcher.swift */; };
6E6ED1492683D8E200A2CBD0 /* LocaleManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1482683D8E200A2CBD0 /* LocaleManager.swift */; };
6E6ED15B2683DBC300A2CBD0 /* AirshipBase64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED14D2683DBC200A2CBD0 /* AirshipBase64.swift */; };
6E6ED15F2683DBC300A2CBD0 /* AirshipCoreResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED14F2683DBC200A2CBD0 /* AirshipCoreResources.swift */; };
6E6ED1612683DBC300A2CBD0 /* AirshipVersion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1502683DBC300A2CBD0 /* AirshipVersion.swift */; };
6E6ED1672683DBC300A2CBD0 /* UACoreData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1532683DBC300A2CBD0 /* UACoreData.swift */; };
6E6ED1692683DBC300A2CBD0 /* AirshipNetworkChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED1542683DBC300A2CBD0 /* AirshipNetworkChecker.swift */; };
6E6ED172268448EC00A2CBD0 /* TestNetworkMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED171268448EC00A2CBD0 /* TestNetworkMonitor.swift */; };
6E6EF9E7270625C400D30C35 /* AirshipEventsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6EF9E6270625C400D30C35 /* AirshipEventsTest.swift */; };
6E71129D2880DACB004942E4 /* EventHandlerViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7112962880DACB004942E4 /* EventHandlerViewModifier.swift */; };
6E7112A12880DACB004942E4 /* EnableBehaviorModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7112982880DACB004942E4 /* EnableBehaviorModifiers.swift */; };
6E7112A32880DACB004942E4 /* VisibilityViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7112992880DACB004942E4 /* VisibilityViewModifier.swift */; };
6E7112A52880DACB004942E4 /* StateController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E71129A2880DACB004942E4 /* StateController.swift */; };
6E739D6626B9BDC100BC6F6D /* ChannelBulkUpdateAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E739D6526B9BDC100BC6F6D /* ChannelBulkUpdateAPIClient.swift */; };
6E739D6B26B9DFFB00BC6F6D /* AttributePendingMutations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E739D6A26B9DFFB00BC6F6D /* AttributePendingMutations.swift */; };
6E739D6E26B9F58700BC6F6D /* TagGroupMutations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E739D6D26B9F58700BC6F6D /* TagGroupMutations.swift */; };
6E739D7F26BAFCB800BC6F6D /* TestChannelBulkUpdateAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E739D7E26BAFCB800BC6F6D /* TestChannelBulkUpdateAPIClient.swift */; };
6E739D8226BB33A200BC6F6D /* ChannelBulkUpdateAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E739D8126BB33A200BC6F6D /* ChannelBulkUpdateAPIClientTest.swift */; };
6E75F50529C4EAF600E3585A /* AudienceOverridesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E75F50429C4EAF600E3585A /* AudienceOverridesProvider.swift */; };
6E77CD4A2D8A225E0057A52C /* SMSValidatorAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E77CD492D8A225E0057A52C /* SMSValidatorAPIClient.swift */; };
6E77CD4B2D8A225E0057A52C /* AirshipInputValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E77CD472D8A225E0057A52C /* AirshipInputValidator.swift */; };
6E77CE472D8A28B90057A52C /* CachingSMSValidatorAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E77CE462D8A28B10057A52C /* CachingSMSValidatorAPIClient.swift */; };
6E78848F29B9643C00ACAE45 /* AirshipContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E78848E29B9643C00ACAE45 /* AirshipContact.swift */; };
6E7DB38328ECDC41002725F6 /* LiveActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7DB38228ECDC41002725F6 /* LiveActivity.swift */; };
6E7DB38E28ECFCED002725F6 /* AirshipJSONTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7DB38D28ECFCED002725F6 /* AirshipJSONTest.swift */; };
6E7DB39228ED0D7C002725F6 /* LiveActivityRegistryTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7DB38A28ECDDD9002725F6 /* LiveActivityRegistryTest.swift */; };
6E7E770D2DDFD0D80042086D /* AirshipAsyncSemaphore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7E770C2DDFD0D80042086D /* AirshipAsyncSemaphore.swift */; };
6E7E770F2DDFD10A0042086D /* AirshipAsyncSemaphoreTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7E770E2DDFD1040042086D /* AirshipAsyncSemaphoreTest.swift */; };
6E7EACD12AF4192400DA286B /* AirshipCacheTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7EACD02AF4192400DA286B /* AirshipCacheTest.swift */; };
6E82482229A6D9DF00136EA0 /* CancellableValueHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E82482129A6D9DF00136EA0 /* CancellableValueHolder.swift */; };
6E82483829A6E1BE00136EA0 /* AirshipCancellable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E82483729A6E1BE00136EA0 /* AirshipCancellable.swift */; };
6E8746492D8A3C71002469D7 /* TestSMSValidatorAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8746482D8A3C64002469D7 /* TestSMSValidatorAPIClient.swift */; };
6E87BD6426D594870005D20D /* ChannelRegistrationPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BD6326D594870005D20D /* ChannelRegistrationPayload.swift */; };
6E87BD6726D6A39A0005D20D /* AirshipConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BD6626D6A39A0005D20D /* AirshipConfig.swift */; };
6E87BD8326D757CA0005D20D /* CloudSite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BD8226D757CA0005D20D /* CloudSite.swift */; };
6E87BD8D26D815780005D20D /* AppIntegration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BD8C26D815780005D20D /* AppIntegration.swift */; };
6E87BD9226D963B60005D20D /* DefaultAppIntegrationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BD9126D963B60005D20D /* DefaultAppIntegrationDelegate.swift */; };
6E87BD9D26DD78CC0005D20D /* DefaultAppIntegrationDelegateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BD9C26DD78CC0005D20D /* DefaultAppIntegrationDelegateTest.swift */; };
6E87BD9F26DDDB250005D20D /* AppIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BD9E26DDDB250005D20D /* AppIntegrationTests.swift */; };
6E87BDBD26E01FF40005D20D /* ModuleLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BDBC26E01FF40005D20D /* ModuleLoader.swift */; };
6E87BE0126E283850005D20D /* Airship.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BDFD26E283840005D20D /* Airship.swift */; };
6E87BE0726E283850005D20D /* DeepLinkDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BE0026E283850005D20D /* DeepLinkDelegate.swift */; };
6E87BE1326E28F570005D20D /* AirshipInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BE1226E28F570005D20D /* AirshipInstance.swift */; };
6E87BE1626E29BC90005D20D /* TestAirshipInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BE1526E29BC90005D20D /* TestAirshipInstance.swift */; };
6E87BE1B26E2C59D0005D20D /* TestAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BE1726E2C5940005D20D /* TestAnalytics.swift */; };
6E88739A2763D8AB00AC248A /* AirshipImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8873992763D8AB00AC248A /* AirshipImageProvider.swift */; };
6E887CD1272C5E8400E83363 /* CheckboxState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E887CD0272C5E8400E83363 /* CheckboxState.swift */; };
6E887CD3272C5F5000E83363 /* Checkbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E887CD2272C5F5000E83363 /* Checkbox.swift */; };
6E887CD5272C5F5A00E83363 /* CheckboxController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E887CD4272C5F5A00E83363 /* CheckboxController.swift */; };
6E892F2E2E7A193E00FB0EC4 /* PreferenceCenterContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E892F2D2E7A193200FB0EC4 /* PreferenceCenterContent.swift */; };
6E8932982E7B666000FB0EC4 /* APNSRegistrationResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8932972E7B665200FB0EC4 /* APNSRegistrationResult.swift */; };
6E89329A2E7B66C300FB0EC4 /* NotificationRegistrationResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8932992E7B66B600FB0EC4 /* NotificationRegistrationResult.swift */; };
6E8B4BF12888606D00AA336E /* ChannelTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8B4BEF2888606400AA336E /* ChannelTest.swift */; };
6E8BDA172B62EC9F00711DB8 /* AutomationRemoteDataSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8BDA162B62EC9F00711DB8 /* AutomationRemoteDataSubscriber.swift */; };
6E8BDEFE2A67938200F816D9 /* FeatureFlagInfoTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8BDEFC2A67937E00F816D9 /* FeatureFlagInfoTest.swift */; };
6E8BDF012A679E5000F816D9 /* FeatureFlagRemoteDataAccessTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8BDEFF2A679CD100F816D9 /* FeatureFlagRemoteDataAccessTest.swift */; };
6E8BDF022A684FC700F816D9 /* TestRemoteData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B70426CE07180099C92D /* TestRemoteData.swift */; };
6E8CE762284137D600CF4B11 /* AirshipPushTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E8CE761284137D600CF4B11 /* AirshipPushTest.swift */; };
6E916C572DB30DA200C676FA /* AirshipWindowFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E916C562DB30D9E00C676FA /* AirshipWindowFactory.swift */; };
6E91B43C26868A6300DDB1A8 /* CircularRegion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91B43B26868A6300DDB1A8 /* CircularRegion.swift */; };
6E91B44026868C3400DDB1A8 /* RegionEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91B43E26868C3400DDB1A8 /* RegionEvent.swift */; };
6E91B44226868C3400DDB1A8 /* ProximityRegion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91B43F26868C3400DDB1A8 /* ProximityRegion.swift */; };
6E91B4452686911B00DDB1A8 /* EventUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91B4442686911B00DDB1A8 /* EventUtils.swift */; };
6E91B4692689327D00DDB1A8 /* CustomEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91B4662689327D00DDB1A8 /* CustomEvent.swift */; };
6E91E43A28EF423400B6F25E /* WorkBackgroundTasks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91E42F28EF423300B6F25E /* WorkBackgroundTasks.swift */; };
6E91E43D28EF423400B6F25E /* WorkConditionsMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91E43028EF423300B6F25E /* WorkConditionsMonitor.swift */; };
6E91E44028EF423400B6F25E /* Worker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91E43128EF423300B6F25E /* Worker.swift */; };
6E91E44328EF423400B6F25E /* WorkRateLimiterActor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91E43228EF423300B6F25E /* WorkRateLimiterActor.swift */; };
6E91E44628EF423400B6F25E /* AirshipWorkManagerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91E43328EF423300B6F25E /* AirshipWorkManagerProtocol.swift */; };
6E91E44C28EF423400B6F25E /* AirshipWorkRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91E43528EF423300B6F25E /* AirshipWorkRequest.swift */; };
6E91E45228EF423400B6F25E /* AirshipWorkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91E43728EF423300B6F25E /* AirshipWorkManager.swift */; };
6E91E45828EF423400B6F25E /* AirshipWorkResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91E43928EF423400B6F25E /* AirshipWorkResult.swift */; };
6E92EC8A284933750038802D /* PromptPermissionAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E92EC89284933750038802D /* PromptPermissionAction.swift */; };
6E92EC8D2849378E0038802D /* PermissionPrompter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E92EC8C2849378E0038802D /* PermissionPrompter.swift */; };
6E92EC90284954B10038802D /* ButtonState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E92EC8F284954B10038802D /* ButtonState.swift */; };
6E92ECA1284A79AB0038802D /* PromptPermissionActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E92ECA0284A79AB0038802D /* PromptPermissionActionTest.swift */; };
6E92ECA5284A7A5C0038802D /* TestPermissionPrompter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E92ECA2284A7A2A0038802D /* TestPermissionPrompter.swift */; };
6E92ECA7284AC1120038802D /* EnableFeatureActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E92ECA6284AC1120038802D /* EnableFeatureActionTest.swift */; };
6E92ECAC284EA7DB0038802D /* AnalyticsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E92ECAB284EA7DA0038802D /* AnalyticsTest.swift */; };
6E92ECB1284ECE590038802D /* CachedList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E92ECB0284ECE590038802D /* CachedList.swift */; };
6E92ECB6284ED7330038802D /* CachedListTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E92ECB3284ED6F10038802D /* CachedListTest.swift */; };
6E938DBC2AC39A0500F691D9 /* FeatureFlagAnalyticsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E938DBB2AC39A0500F691D9 /* FeatureFlagAnalyticsTest.swift */; };
6E94760F29BA8FA30025F364 /* ContactManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E94760E29BA8FA30025F364 /* ContactManager.swift */; };
6E94761529BBC0240025F364 /* AirshipButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E94761429BBC0230025F364 /* AirshipButton.swift */; };
6E952920268A6C1500398B54 /* SearchEventTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E95291F268A6C1500398B54 /* SearchEventTemplate.swift */; };
6E952923268B812000398B54 /* AccountEventTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E952922268B812000398B54 /* AccountEventTemplate.swift */; };
6E952926268B8F6600398B54 /* AssociatedIdentifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E952925268B8F6500398B54 /* AssociatedIdentifiers.swift */; };
6E95292C268B98A200398B54 /* MediaEventTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E95292B268B98A200398B54 /* MediaEventTemplate.swift */; };
6E95292F268BBD7D00398B54 /* RetailEventTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E95292E268BBD7D00398B54 /* RetailEventTemplate.swift */; };
6E96ECF2293EB7900053CC91 /* AirshipEventData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ECF1293EB7900053CC91 /* AirshipEventData.swift */; };
6E96ECF6293FCE080053CC91 /* EventUploadScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ECF5293FCE080053CC91 /* EventUploadScheduler.swift */; };
6E96ECFA293FDDD90053CC91 /* AirshipSDKExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ECF9293FDDD90053CC91 /* AirshipSDKExtension.swift */; };
6E96ED02294115210053CC91 /* AsyncStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ED01294115210053CC91 /* AsyncStream.swift */; };
6E96ED0A294135500053CC91 /* EventManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ED09294135500053CC91 /* EventManager.swift */; };
6E96ED0E29416E820053CC91 /* EventManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ED0D29416E820053CC91 /* EventManagerTest.swift */; };
6E96ED1029416E8F0053CC91 /* EventAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ED0F29416E8F0053CC91 /* EventAPIClientTest.swift */; };
6E96ED1229416E990053CC91 /* EventSchedulerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ED1129416E990053CC91 /* EventSchedulerTest.swift */; };
6E96ED1429417A600053CC91 /* EventStoreTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ED1329417A600053CC91 /* EventStoreTest.swift */; };
6E96ED16294197D90053CC91 /* EventUploadTuningInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ED15294197D90053CC91 /* EventUploadTuningInfo.swift */; };
6E96ED1A2941A0EC0053CC91 /* EventTestUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E96ED192941A0EC0053CC91 /* EventTestUtils.swift */; };
6E9752562A5F79E200E67B1A /* ExperimentTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9752552A5F79E200E67B1A /* ExperimentTest.swift */; };
6E97D6AD2D84B1660001CF7F /* ThomasFormStateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E97D6AC2D84B1610001CF7F /* ThomasFormStateTest.swift */; };
6E97D6AF2D84B17D0001CF7F /* ThomasFormDataCollectorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E97D6AE2D84B1780001CF7F /* ThomasFormDataCollectorTest.swift */; };
6E97D6B12D84B18E0001CF7F /* ThomasFormDataCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E97D6B02D84B1890001CF7F /* ThomasFormDataCollector.swift */; };
6E97D6B42D84B1D70001CF7F /* ThomasStateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E97D6B32D84B1D10001CF7F /* ThomasStateTest.swift */; };
6E97D6B62D84B2350001CF7F /* ThomasFormFieldTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E97D6B52D84B2330001CF7F /* ThomasFormFieldTest.swift */; };
6E986EE42B448D3C00FBE6A0 /* AutomationEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E986EE32B448D3C00FBE6A0 /* AutomationEngine.swift */; };
6E986EF92B44D41E00FBE6A0 /* InAppAutomation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E986EF82B44D41E00FBE6A0 /* InAppAutomation.swift */; };
6E986EFB2B44D48C00FBE6A0 /* InAppMessaging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E986EFA2B44D48C00FBE6A0 /* InAppMessaging.swift */; };
6E986F062B47319E00FBE6A0 /* DeferredScheduleResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E986F052B47319E00FBE6A0 /* DeferredScheduleResult.swift */; };
6E986F0E2B473EC700FBE6A0 /* AutomationRemoteDataAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E986F0D2B473EC700FBE6A0 /* AutomationRemoteDataAccess.swift */; };
6E9B4874288F0CE000C905B1 /* RateAppAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9B4873288F0CE000C905B1 /* RateAppAction.swift */; };
6E9B4878288F360C00C905B1 /* RateAppActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9B4877288F360C00C905B1 /* RateAppActionTest.swift */; };
6E9B488B2891962000C905B1 /* PreferenceCenterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9B488A2891962000C905B1 /* PreferenceCenterView.swift */; };
6E9B488D2891B43F00C905B1 /* LabeledSectionBreakView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9B488C2891B43F00C905B1 /* LabeledSectionBreakView.swift */; };
6E9B488F2891B57300C905B1 /* CommonSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9B488E2891B57300C905B1 /* CommonSectionView.swift */; };
6E9B48912891B68C00C905B1 /* PreferenceCenterAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9B48902891B68B00C905B1 /* PreferenceCenterAlertView.swift */; };
6E9B48932891B6A700C905B1 /* ChannelSubscriptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9B48922891B6A700C905B1 /* ChannelSubscriptionView.swift */; };
6E9B48952891B6B400C905B1 /* ContactSubscriptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9B48942891B6B400C905B1 /* ContactSubscriptionView.swift */; };
6E9B48972891B6BF00C905B1 /* ContactSubscriptionGroupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9B48962891B6BF00C905B1 /* ContactSubscriptionGroupView.swift */; };
6E9C2B7D2D014438000089A9 /* APNSEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9C2B7C2D014426000089A9 /* APNSEnvironment.swift */; };
6E9C2BD02D02321D000089A9 /* RuntimeConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9C2BCF2D023216000089A9 /* RuntimeConfig.swift */; };
6E9C2BD32D02683D000089A9 /* RuntimeConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9C2BCF2D023216000089A9 /* RuntimeConfig.swift */; };
6E9C2BD42D02683D000089A9 /* RuntimeConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9C2BCF2D023216000089A9 /* RuntimeConfig.swift */; };
6E9C2BD52D02683D000089A9 /* RuntimeConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9C2BCF2D023216000089A9 /* RuntimeConfig.swift */; };
6E9C2BD62D02683D000089A9 /* RuntimeConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9C2BCF2D023216000089A9 /* RuntimeConfig.swift */; };
6E9C2BD72D0269AE000089A9 /* TestAirshipRequestSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A467F28EF4FAF00A25617 /* TestAirshipRequestSession.swift */; };
6E9C2BD82D0269AE000089A9 /* TestAirshipRequestSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4A467F28EF4FAF00A25617 /* TestAirshipRequestSession.swift */; };
6E9C2BDA2D027B5F000089A9 /* AirshipAppCredentials.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9C2BD92D027B5A000089A9 /* AirshipAppCredentials.swift */; };
6E9C2BDC2D028034000089A9 /* APNSEnvironmentTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9C2BDB2D028030000089A9 /* APNSEnvironmentTest.swift */; };
6E9D529826C195F7004EA16B /* ActionRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9D529726C195F7004EA16B /* ActionRunner.swift */; };
6E9D529B26C1A77C004EA16B /* ActionRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E9D529A26C1A77C004EA16B /* ActionRegistry.swift */; };
6EA5202327D1364E003011CA /* AirshipDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EA5202227D1364E003011CA /* AirshipDateFormatter.swift */; };
6EAA61492D5297A7006602F7 /* SubjectExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EAA61482D5297A2006602F7 /* SubjectExtension.swift */; };
6EAC295A27580063006DFA63 /* ChannelRegistrarTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EAC295927580063006DFA63 /* ChannelRegistrarTest.swift */; };
6EAD3AF82F45305E00FF274E /* AirshipSwizzler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EAD3AF72F45305B00FF274E /* AirshipSwizzler.swift */; };
6EAD3AFA2F4530BE00FF274E /* AutoIntegration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EAD3AF92F4530AD00FF274E /* AutoIntegration.swift */; };
6EAD3AFC2F4530F600FF274E /* UAAppIntegrationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EAD3AFB2F4530E400FF274E /* UAAppIntegrationDelegate.swift */; };
6EAD7CE526B216DB00B88EA7 /* DeepLinkAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EAD7CE426B216DB00B88EA7 /* DeepLinkAction.swift */; };
6EB11C872697ACBF00DC698F /* ContactOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB11C862697ACBF00DC698F /* ContactOperation.swift */; };
6EB11C892697AF5600DC698F /* TagGroupUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB11C882697AF5600DC698F /* TagGroupUpdate.swift */; };
6EB11C8B2697AFC700DC698F /* AttributeUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB11C8A2697AFC700DC698F /* AttributeUpdate.swift */; };
6EB11C8D2698C50F00DC698F /* AudienceUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB11C8C2698C50F00DC698F /* AudienceUtils.swift */; };
6EB1B3F326EAA4D6000421B9 /* ChannelAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698E11267A98AB00654DB2 /* ChannelAPIClient.swift */; };
6EB214D22E7DBA61001A5660 /* FeatureFlagManagerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB214D12E7DBA5E001A5660 /* FeatureFlagManagerProtocol.swift */; };
6EB21A682E81BB6E001A5660 /* AirshipDebugAddEmailChannelView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A4C2E81BB6E001A5660 /* AirshipDebugAddEmailChannelView.swift */; };
6EB21A692E81BB6E001A5660 /* AirshipDebugChannelTagView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A412E81BB6E001A5660 /* AirshipDebugChannelTagView.swift */; };
6EB21A6A2E81BB6E001A5660 /* AirshipDebugAutomationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A3E2E81BB6E001A5660 /* AirshipDebugAutomationsView.swift */; };
6EB21A6B2E81BB6E001A5660 /* AirshipDebugFeatureFlagDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A532E81BB6E001A5660 /* AirshipDebugFeatureFlagDetailsView.swift */; };
6EB21A6C2E81BB6E001A5660 /* AirshipDebugExperimentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A3C2E81BB6E001A5660 /* AirshipDebugExperimentsView.swift */; };
6EB21A6D2E81BB6E001A5660 /* AirshipDebugExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A452E81BB6E001A5660 /* AirshipDebugExtensions.swift */; };
6EB21A6E2E81BB6E001A5660 /* AirshipDebugAddEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A342E81BB6E001A5660 /* AirshipDebugAddEventView.swift */; };
6EB21A6F2E81BB6E001A5660 /* AirshipDebugPushDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A5D2E81BB6E001A5660 /* AirshipDebugPushDetailsView.swift */; };
6EB21A702E81BB6E001A5660 /* AirshipDebugView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A662E81BB6E001A5660 /* AirshipDebugView.swift */; };
6EB21A712E81BB6E001A5660 /* AirshipDebugAddSMSChannelView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A4E2E81BB6E001A5660 /* AirshipDebugAddSMSChannelView.swift */; };
6EB21A722E81BB6E001A5660 /* AirshipJSONDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A472E81BB6E001A5660 /* AirshipJSONDetailsView.swift */; };
6EB21A732E81BB6E001A5660 /* AirshipDebugAnalyticIdentifierEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A352E81BB6E001A5660 /* AirshipDebugAnalyticIdentifierEditorView.swift */; };
6EB21A742E81BB6E001A5660 /* AirshipDebugContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A642E81BB6E001A5660 /* AirshipDebugContentView.swift */; };
6EB21A752E81BB6E001A5660 /* AirshipDebugRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A652E81BB6E001A5660 /* AirshipDebugRoute.swift */; };
6EB21A772E81BB6E001A5660 /* AirshipDebugPreferencCenterItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A572E81BB6E001A5660 /* AirshipDebugPreferencCenterItemView.swift */; };
6EB21A792E81BB6E001A5660 /* AirshipDebugAttributesEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A442E81BB6E001A5660 /* AirshipDebugAttributesEditorView.swift */; };
6EB21A7A2E81BB6E001A5660 /* AirshipToast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A492E81BB6E001A5660 /* AirshipToast.swift */; };
6EB21A7B2E81BB6E001A5660 /* AirshipDebugFeatureFlagView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A552E81BB6E001A5660 /* AirshipDebugFeatureFlagView.swift */; };
6EB21A7C2E81BB6E001A5660 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A4A2E81BB6E001A5660 /* Extensions.swift */; };
6EB21A7D2E81BB6E001A5660 /* AirshipDebugTagGroupsEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A462E81BB6E001A5660 /* AirshipDebugTagGroupsEditorView.swift */; };
6EB21A7E2E81BB6E001A5660 /* AirshipDebugAppInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A3A2E81BB6E001A5660 /* AirshipDebugAppInfoView.swift */; };
6EB21A7F2E81BB6E001A5660 /* AirshipDebugEventDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A372E81BB6E001A5660 /* AirshipDebugEventDetailsView.swift */; };
6EB21A802E81BB6E001A5660 /* AirshipDebugPrivacyManagerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A5B2E81BB6E001A5660 /* AirshipDebugPrivacyManagerView.swift */; };
6EB21A812E81BB6E001A5660 /* AirshipDebugEventsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A382E81BB6E001A5660 /* AirshipDebugEventsView.swift */; };
6EB21A822E81BB6E001A5660 /* AirshipDebugContactSubscriptionEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A4F2E81BB6E001A5660 /* AirshipDebugContactSubscriptionEditorView.swift */; };
6EB21A832E81BB6E001A5660 /* AirshipDebugPreferenceCenterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A582E81BB6E001A5660 /* AirshipDebugPreferenceCenterView.swift */; };
6EB21A842E81BB6E001A5660 /* AirshipDebugAnalyticsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A362E81BB6E001A5660 /* AirshipDebugAnalyticsView.swift */; };
6EB21A852E81BB6E001A5660 /* AirshipDebugReceivedPushView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A5F2E81BB6E001A5660 /* AirshipDebugReceivedPushView.swift */; };
6EB21A862E81BB6E001A5660 /* AirshipDebugPushView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A5E2E81BB6E001A5660 /* AirshipDebugPushView.swift */; };
6EB21A872E81BB6E001A5660 /* AirshipDebugNamedUserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A512E81BB6E001A5660 /* AirshipDebugNamedUserView.swift */; };
6EB21A882E81BB6E001A5660 /* AirshipJSONView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A482E81BB6E001A5660 /* AirshipJSONView.swift */; };
6EB21A892E81BB6E001A5660 /* AirshipDebugChannelSubscriptionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A402E81BB6E001A5660 /* AirshipDebugChannelSubscriptionsView.swift */; };
6EB21A8A2E81BB6E001A5660 /* AirshipDebugInAppExperiencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A3D2E81BB6E001A5660 /* AirshipDebugInAppExperiencesView.swift */; };
6EB21A8B2E81BB6E001A5660 /* TVSlider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A622E81BB6E001A5660 /* TVSlider.swift */; };
6EB21A8C2E81BB6E001A5660 /* TVDatePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A612E81BB6E001A5660 /* TVDatePicker.swift */; };
6EB21A8D2E81BB6E001A5660 /* AirshipDebugChannelView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A422E81BB6E001A5660 /* AirshipDebugChannelView.swift */; };
6EB21A8E2E81BB6E001A5660 /* AirshipDebugContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A502E81BB6E001A5660 /* AirshipDebugContactView.swift */; };
6EB21A8F2E81BB6E001A5660 /* AirshipDebugAddOpenChannelView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A4D2E81BB6E001A5660 /* AirshipDebugAddOpenChannelView.swift */; };
6EB21A912E81BFC1001A5660 /* AirshipDebugAddPropertyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A902E81BFB9001A5660 /* AirshipDebugAddPropertyView.swift */; };
6EB21A932E81C7AB001A5660 /* AirshipDebugAddStringPropertyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21A922E81C7A2001A5660 /* AirshipDebugAddStringPropertyView.swift */; };
6EB21AFC2E8216A4001A5660 /* AirshipoDebugTriggers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21AFB2E82169F001A5660 /* AirshipoDebugTriggers.swift */; };
6EB21B5F2E82FE9F001A5660 /* AirshipDebugAudienceSubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB21B5E2E82FE98001A5660 /* AirshipDebugAudienceSubject.swift */; };
6EB3FCEF2ABCFA680018594E /* RemoteDataProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB3FCEE2ABCFA680018594E /* RemoteDataProtocol.swift */; };
6EB5156E28A42B5800870C5A /* AirshipPreferenceCenterResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB5156D28A42B5800870C5A /* AirshipPreferenceCenterResources.swift */; };
6EB5157128A4608C00870C5A /* PreferenceCenterViewControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB5157028A4608C00870C5A /* PreferenceCenterViewControllerFactory.swift */; };
6EB5158128A47BD700870C5A /* SubscriptionListEdit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB5158028A47BD700870C5A /* SubscriptionListEdit.swift */; };
6EB5158328A47C7100870C5A /* ScopedSubscriptionListEdit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB5158228A47C7100870C5A /* ScopedSubscriptionListEdit.swift */; };
6EB5159228A5B1B400870C5A /* TestLegacyTheme.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6EB5159128A5B1B400870C5A /* TestLegacyTheme.plist */; };
6EB5159428A5B8E900870C5A /* TestTheme.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6EB5159328A5B8E900870C5A /* TestTheme.plist */; };
6EB5159528A5B96300870C5A /* PreferenceThemeLoaderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB5158E28A5B15C00870C5A /* PreferenceThemeLoaderTest.swift */; };
6EB5159728A5C54400870C5A /* TestThemeEmpty.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6EB5159628A5C54400870C5A /* TestThemeEmpty.plist */; };
6EB5159928A5C61D00870C5A /* TestThemeInvalid.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6EB5159828A5C61D00870C5A /* TestThemeInvalid.plist */; };
6EB515A328A5F1C600870C5A /* PreferenceCenterStateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB515A228A5F1C600870C5A /* PreferenceCenterStateTest.swift */; };
6EB839472BC83B9D006611C4 /* DefaultInAppActionRunnerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB839452BC83B96006611C4 /* DefaultInAppActionRunnerTest.swift */; };
6EB839492BC8898E006611C4 /* AirshipAsyncChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB839482BC8898E006611C4 /* AirshipAsyncChannel.swift */; };
6EB8394C2BC8AB51006611C4 /* TestWorkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A63A567528F449D8004B8951 /* TestWorkManager.swift */; };
6EB8394E2BC8B1F4006611C4 /* AirshipAsyncChannelTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB8394D2BC8B1F4006611C4 /* AirshipAsyncChannelTest.swift */; };
6EBD12052DA73FDA00F678AB /* ValidatableHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EBD12042DA73FD300F678AB /* ValidatableHelper.swift */; };
6EBFA9AD2D15DA73002BA3E9 /* HashChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EBFA9AC2D15DA70002BA3E9 /* HashChecker.swift */; };
6EBFA9AF2D15E04D002BA3E9 /* AirshipDeviceAudienceResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EBFA9AE2D15E04B002BA3E9 /* AirshipDeviceAudienceResult.swift */; };
6EBFA9B12D15F499002BA3E9 /* HashCheckerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EBFA9B02D15F491002BA3E9 /* HashCheckerTest.swift */; };
6EC0CA4F2B48987700333A87 /* AutomationRemoteDataAccessTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA4E2B48987700333A87 /* AutomationRemoteDataAccessTest.swift */; };
6EC0CA502B4899CC00333A87 /* TestRemoteData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E15B70426CE07180099C92D /* TestRemoteData.swift */; };
6EC0CA512B4899DB00333A87 /* TestNetworkMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6ED171268448EC00A2CBD0 /* TestNetworkMonitor.swift */; };
6EC0CA532B48A2C300333A87 /* AutomationAudience.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA522B48A2C300333A87 /* AutomationAudience.swift */; };
6EC0CA562B48B05600333A87 /* ActionAutomationExecutorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA542B48B05000333A87 /* ActionAutomationExecutorTest.swift */; };
6EC0CA5C2B48C2F500333A87 /* AutomationPreparer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA5B2B48C2F500333A87 /* AutomationPreparer.swift */; };
6EC0CA682B49287100333A87 /* AutomationExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA672B49287100333A87 /* AutomationExecutor.swift */; };
6EC0CA6B2B4B698000333A87 /* AutomationExecutorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA6A2B4B698000333A87 /* AutomationExecutorTest.swift */; };
6EC0CA6D2B4B879800333A87 /* AutomationPreparerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA6C2B4B879800333A87 /* AutomationPreparerTest.swift */; };
6EC0CA6F2B4B893500333A87 /* TestDeferredResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA6E2B4B893500333A87 /* TestDeferredResolver.swift */; };
6EC0CA702B4B895A00333A87 /* TestDeferredResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA6E2B4B893500333A87 /* TestDeferredResolver.swift */; };
6EC0CA722B4B897B00333A87 /* TestExperimentDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA712B4B897B00333A87 /* TestExperimentDataProvider.swift */; };
6EC0CA732B4B897B00333A87 /* TestExperimentDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA712B4B897B00333A87 /* TestExperimentDataProvider.swift */; };
6EC0CA762B4B8A3A00333A87 /* TestRemoteDataAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA752B4B8A3A00333A87 /* TestRemoteDataAccess.swift */; };
6EC0CA782B4B8A4700333A87 /* TestFrequencyLimitsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA772B4B8A4700333A87 /* TestFrequencyLimitsManager.swift */; };
6EC0CA792B4B8C2B00333A87 /* TestAudienceChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2F5AB62A675ADC00CABD3D /* TestAudienceChecker.swift */; };
6EC0CA812B4C812A00333A87 /* DisplayAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC0CA802B4C812A00333A87 /* DisplayAdapter.swift */; };
6EC755992A4E115400851ABB /* DeviceAudienceSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC755982A4E115400851ABB /* DeviceAudienceSelector.swift */; };
6EC7559B2A4E129000851ABB /* DeviceTagSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7559A2A4E129000851ABB /* DeviceTagSelector.swift */; };
6EC7559F2A4E5AB200851ABB /* DeviceAudienceChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7559E2A4E5AB200851ABB /* DeviceAudienceChecker.swift */; };
6EC755AF2A4FCD8800851ABB /* AudienceHashSelectorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC755AE2A4FCD8800851ABB /* AudienceHashSelectorTest.swift */; };
6EC7E46E269E2A4C0038CFDD /* AttributeEditorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E46D269E2A4C0038CFDD /* AttributeEditorTest.swift */; };
6EC7E470269E33290038CFDD /* TagGroupsEditorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E46F269E33290038CFDD /* TagGroupsEditorTest.swift */; };
6EC7E472269E51030038CFDD /* AttributeUpdateTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E471269E51030038CFDD /* AttributeUpdateTest.swift */; };
6EC7E474269E52600038CFDD /* ContactOperationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E473269E52600038CFDD /* ContactOperationTest.swift */; };
6EC7E47626A5EE910038CFDD /* AudienceUtilsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E47526A5EE910038CFDD /* AudienceUtilsTest.swift */; };
6EC7E47826A604080038CFDD /* AirshipContactTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E47726A604080038CFDD /* AirshipContactTest.swift */; };
6EC7E48226A60C060038CFDD /* AirshipChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E48126A60C060038CFDD /* AirshipChannel.swift */; };
6EC7E48526A60CDF0038CFDD /* TestChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E48426A60CDF0038CFDD /* TestChannel.swift */; };
6EC7E48726A60DD60038CFDD /* TestContactAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E48626A60DD60038CFDD /* TestContactAPIClient.swift */; };
6EC7E48D26A738C80038CFDD /* ContactConflictEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC7E48C26A738C70038CFDD /* ContactConflictEvent.swift */; };
6EC815AF2F2BBFD500E1C0C6 /* BundleExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC815AE2F2BBFD100E1C0C6 /* BundleExtensions.swift */; };
6EC81D032F2D445500E1C0C6 /* UAInboxDataMappingV1toV4.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 6EC81D022F2D445500E1C0C6 /* UAInboxDataMappingV1toV4.xcmappingmodel */; };
6EC81D052F2D448B00E1C0C6 /* UAInboxDataMappingV2toV4.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 6EC81D042F2D448B00E1C0C6 /* UAInboxDataMappingV2toV4.xcmappingmodel */; };
6EC81D082F2D44D700E1C0C6 /* UAInboxDataMappingV3toV4.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 6EC81D072F2D44D700E1C0C6 /* UAInboxDataMappingV3toV4.xcmappingmodel */; };
6EC824A02F33A4DD00E1C0C6 /* MessageDisplayHistory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC8249F2F33A4DD00E1C0C6 /* MessageDisplayHistory.swift */; };
6EC824A22F33A5EC00E1C0C6 /* MessageCenterThemeLoaderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC824A12F33A5EC00E1C0C6 /* MessageCenterThemeLoaderTest.swift */; };
6EC824A42F33A5F600E1C0C6 /* MessageCenterMessageTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC824A32F33A5F600E1C0C6 /* MessageCenterMessageTest.swift */; };
6EC9214E2D82144A000A3A59 /* ThomasFormField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC9214D2D82144A000A3A59 /* ThomasFormField.swift */; };
6EC922E12D832BB8000A3A59 /* ThomasFormFieldProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC922E02D832BAF000A3A59 /* ThomasFormFieldProcessor.swift */; };
6EC922E32D838DFF000A3A59 /* ThomasFormPayloadGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC922E22D838DFA000A3A59 /* ThomasFormPayloadGenerator.swift */; };
6ECB627C2A369F5B0095C85C /* OpenExternalURLActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECB627B2A369F5B0095C85C /* OpenExternalURLActionTest.swift */; };
6ECB627E2A36A0770095C85C /* ExternalURLProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECB627D2A36A0770095C85C /* ExternalURLProcessor.swift */; };
6ECB62822A36A45F0095C85C /* TestURLOpener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECB62812A36A45F0095C85C /* TestURLOpener.swift */; };
6ECB62842A36A7510095C85C /* DeepLinkActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECB62832A36A7510095C85C /* DeepLinkActionTest.swift */; };
6ECB62862A36C1EE0095C85C /* NativeBridgeActionHandlerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECB62852A36C1EE0095C85C /* NativeBridgeActionHandlerTest.swift */; };
6ECD4F6D2DD7A7060060EE72 /* RadioInputToggleLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECD4F6C2DD7A7060060EE72 /* RadioInputToggleLayout.swift */; };
6ECD4F6F2DD7A7090060EE72 /* CheckboxToggleLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECD4F6E2DD7A7090060EE72 /* CheckboxToggleLayout.swift */; };
6ECD4F712DD7A7CD0060EE72 /* ToggleLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECD4F702DD7A7C90060EE72 /* ToggleLayout.swift */; };
6ECDDE6C29B7EEE9009D79DB /* AuthToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECDDE6B29B7EEE9009D79DB /* AuthToken.swift */; };
6ECDDE7429B80462009D79DB /* ChannelAuthTokenProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECDDE7329B80462009D79DB /* ChannelAuthTokenProvider.swift */; };
6ECDDE7929B804FB009D79DB /* ChannelAuthTokenAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ECDDE7829B804FB009D79DB /* ChannelAuthTokenAPIClient.swift */; };
6ED040EB278B5D7C00FCF773 /* ThomasFormPayloadGeneratorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED040EA278B5D7C00FCF773 /* ThomasFormPayloadGeneratorTest.swift */; };
6ED2F5252B7EE648000AFC80 /* AirshipBase64Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED2F5242B7EE648000AFC80 /* AirshipBase64Test.swift */; };
6ED2F5272B7EE82B000AFC80 /* AirshipJSONUtilsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED2F5262B7EE82B000AFC80 /* AirshipJSONUtilsTest.swift */; };
6ED2F5292B7FC59F000AFC80 /* AirshipColorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED2F5282B7FC59F000AFC80 /* AirshipColorTests.swift */; };
6ED2F52B2B7FC5C8000AFC80 /* AirshipIvyVersionMatcherTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED2F52A2B7FC5C8000AFC80 /* AirshipIvyVersionMatcherTest.swift */; };
6ED2F52D2B7FD403000AFC80 /* JavaScriptCommandTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED2F52C2B7FD403000AFC80 /* JavaScriptCommandTest.swift */; };
6ED2F52F2B7FD49B000AFC80 /* AirshipURLAllowListTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED2F52E2B7FD49B000AFC80 /* AirshipURLAllowListTest.swift */; };
6ED2F5312B7FF819000AFC80 /* AirshipViewUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED2F5302B7FF819000AFC80 /* AirshipViewUtils.swift */; };
6ED2F5382B7FFCEB000AFC80 /* AirshipDateFormatterTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED2F5342B7FFCD7000AFC80 /* AirshipDateFormatterTest.swift */; };
6ED2F5392B7FFF68000AFC80 /* AirshipSceneManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D1B3272B44F08900447840 /* AirshipSceneManager.swift */; };
6ED562A02EA9434B00C20B55 /* StackImageButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED5629F2EA9434900C20B55 /* StackImageButton.swift */; };
6ED6ECA426ADCA6F00973364 /* BlockAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED6ECA326ADCA6F00973364 /* BlockAction.swift */; };
6ED6ECA726AE05B700973364 /* EmptyAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED6ECA626AE05B700973364 /* EmptyAction.swift */; };
6ED735DA26C73DC5003B0A7D /* DefaultAirshipChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED735D926C73DC5003B0A7D /* DefaultAirshipChannel.swift */; };
6ED735DD26C7401D003B0A7D /* TagEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED735DC26C7401D003B0A7D /* TagEditor.swift */; };
6ED735E026C74321003B0A7D /* TagEditorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED735DF26C74321003B0A7D /* TagEditorTest.swift */; };
6ED735E226CAE2D7003B0A7D /* TestChannelRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED735E126CAE2D7003B0A7D /* TestChannelRegistrar.swift */; };
6ED735E426CAE8AA003B0A7D /* TestChannelAudienceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED735E326CAE8AA003B0A7D /* TestChannelAudienceManager.swift */; };
6ED735E626CAEABC003B0A7D /* TestLocaleManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED735E526CAEABC003B0A7D /* TestLocaleManager.swift */; };
6ED7BE602D13D9E300B6A124 /* TestCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED7BE5F2D13D9E300B6A124 /* TestCache.swift */; };
6ED7BE612D13D9E300B6A124 /* TestCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED7BE5F2D13D9E300B6A124 /* TestCache.swift */; };
6ED7BE632D13D9FE00B6A124 /* FeatureFlagResultCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED7BE622D13D9FE00B6A124 /* FeatureFlagResultCache.swift */; };
6ED7BE652D13DA0400B6A124 /* FeatureFlagResultCacheTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED7BE642D13DA0400B6A124 /* FeatureFlagResultCacheTest.swift */; };
6ED80793273CA0C800D1F455 /* EnvironmentValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED80792273CA0C800D1F455 /* EnvironmentValues.swift */; };
6ED8079A273DA56000D1F455 /* ThomasViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED80799273DA56000D1F455 /* ThomasViewController.swift */; };
6ED838AB2D0CE9D6009CBB0C /* CompoundDeviceAudienceSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED838AA2D0CE9D6009CBB0C /* CompoundDeviceAudienceSelector.swift */; };
6ED838AD2D0CEF4A009CBB0C /* CompoundDeviceAudienceSelectorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED838AC2D0CEF4A009CBB0C /* CompoundDeviceAudienceSelectorTest.swift */; };
6ED838D02D0D118B009CBB0C /* AutomationCompoundAudience.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED838CF2D0D118B009CBB0C /* AutomationCompoundAudience.swift */; };
6EDAFB262CB463C5000BD4AA /* ButtonLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDAFB252CB463C1000BD4AA /* ButtonLayout.swift */; };
6EDE293F2A9802BF00235738 /* NativeBridgeActionRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDE293E2A9802BF00235738 /* NativeBridgeActionRunner.swift */; };
6EDE5F192B9BD7E700E33D04 /* InboxMessageData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDE5F182B9BD7E700E33D04 /* InboxMessageData.swift */; };
6EDE5F4F2BA248FF00E33D04 /* TouchViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDE5F4E2BA248FF00E33D04 /* TouchViewModifier.swift */; };
6EDE5FC22BADDD96003ADF55 /* PreparedScheduleInfoTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDE5FC12BADDD96003ADF55 /* PreparedScheduleInfoTest.swift */; };
6EDF1D932B292FB100E23BC4 /* InAppMessageTextInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDF1D922B292FB000E23BC4 /* InAppMessageTextInfo.swift */; };
6EDF1D962B2A25B400E23BC4 /* InAppMessageButtonInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDF1D952B2A25B400E23BC4 /* InAppMessageButtonInfo.swift */; };
6EDF1D982B2A25C800E23BC4 /* InAppMessageMediaInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDF1D972B2A25C800E23BC4 /* InAppMessageMediaInfo.swift */; };
6EDF1D9C2B2A287A00E23BC4 /* InAppMessageButtonLayoutType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDF1D9B2B2A287A00E23BC4 /* InAppMessageButtonLayoutType.swift */; };
6EDF1D9E2B2A2A5900E23BC4 /* InAppMessageDisplayContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDF1D9D2B2A2A5900E23BC4 /* InAppMessageDisplayContent.swift */; };
6EDF1DA42B2A2C6F00E23BC4 /* InAppMessageColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDF1DA32B2A2C6F00E23BC4 /* InAppMessageColor.swift */; };
6EDF1DA62B2A300100E23BC4 /* InAppMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDF1DA52B2A300100E23BC4 /* InAppMessage.swift */; };
6EDF1DAD2B2A73FC00E23BC4 /* InAppMessageTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDF1DAA2B2A6D9900E23BC4 /* InAppMessageTest.swift */; };
6EDF1DB82B2BB2B800E23BC4 /* RetryingQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDF1DB72B2BB2B800E23BC4 /* RetryingQueue.swift */; };
6EDFBBC32F5780BC0043D9EF /* BasementImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EDFBBC22F5780BA0043D9EF /* BasementImport.swift */; };
6EDFBBC42F5780EA0043D9EF /* AirshipLogHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF1933B2838062B005F192A /* AirshipLogHandler.swift */; };
6EDFBBC52F5780EA0043D9EF /* AirshipLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E698DEA26790AC300654DB2 /* AirshipLogger.swift */; };
6EDFBBC62F5780EA0043D9EF /* AirshipLogPrivacyLevel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E524CC22C180A39002CA094 /* AirshipLogPrivacyLevel.swift */; };
6EDFBBC72F5780EA0043D9EF /* DefaultLogHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF1933D28380644005F192A /* DefaultLogHandler.swift */; };
6EDFBBC82F5780EA0043D9EF /* LogLevel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E87BDFE26E283840005D20D /* LogLevel.swift */; };
6EE49BDD2A09AD3600AB1CF4 /* AirshipNotificationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE49BDC2A09AD3600AB1CF4 /* AirshipNotificationStatus.swift */; };
6EE49BE12A0AADC900AB1CF4 /* AppRemoteDataProviderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE49BE02A0AADC900AB1CF4 /* AppRemoteDataProviderDelegate.swift */; };
6EE49C082A0BE9F600AB1CF4 /* RemoteDataURLFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE49C072A0BE9F600AB1CF4 /* RemoteDataURLFactory.swift */; };
6EE49C0C2A0C141800AB1CF4 /* RemoteDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE49C0B2A0C141800AB1CF4 /* RemoteDataSource.swift */; };
6EE49C102A0C142F00AB1CF4 /* RemoteDataInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE49C0F2A0C142F00AB1CF4 /* RemoteDataInfo.swift */; };
6EE49C182A0C3CC600AB1CF4 /* ContactRemoteDataProviderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE49C172A0C3CC600AB1CF4 /* ContactRemoteDataProviderDelegate.swift */; };
6EE49C1D2A0D9D8000AB1CF4 /* RemoteDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE49C1C2A0D9D8000AB1CF4 /* RemoteDataProvider.swift */; };
6EE49C222A13E32B00AB1CF4 /* RemoteDataProviderProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE49C212A13E32B00AB1CF4 /* RemoteDataProviderProtocol.swift */; };
6EE49C262A1446B100AB1CF4 /* RemoteDataTestUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE49C252A1446B100AB1CF4 /* RemoteDataTestUtils.swift */; };
6EE6AA132B4F3009002FEA75 /* InAppMessageAutomationPreparerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AA112B4F3003002FEA75 /* InAppMessageAutomationPreparerTest.swift */; };
6EE6AA162B4F302D002FEA75 /* InAppMessageAutomationExecutorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AA142B4F302A002FEA75 /* InAppMessageAutomationExecutorTest.swift */; };
6EE6AA1B2B4F3062002FEA75 /* DisplayCoordinatorManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AA1A2B4F3062002FEA75 /* DisplayCoordinatorManagerTest.swift */; };
6EE6AA1C2B4F3066002FEA75 /* DisplayAdapterFactoryTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AA182B4F304B002FEA75 /* DisplayAdapterFactoryTest.swift */; };
6EE6AA1E2B4F31B1002FEA75 /* TestCachedAssets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AA1D2B4F31B1002FEA75 /* TestCachedAssets.swift */; };
6EE6AA202B4F5246002FEA75 /* InAppMessageSceneManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AA1F2B4F5246002FEA75 /* InAppMessageSceneManager.swift */; };
6EE6AA282B50C91E002FEA75 /* AutomationRemoteDataSubscriberTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AA272B50C91E002FEA75 /* AutomationRemoteDataSubscriberTest.swift */; };
6EE6AA2A2B50C976002FEA75 /* TestAutomationEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AA292B50C976002FEA75 /* TestAutomationEngine.swift */; };
6EE6AA2C2B51DB1E002FEA75 /* AutomationSourceInfoStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AA2B2B51DB1E002FEA75 /* AutomationSourceInfoStore.swift */; };
6EE6AA382B572897002FEA75 /* AutomationSourceInfoStoreTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AA372B572897002FEA75 /* AutomationSourceInfoStoreTest.swift */; };
6EE6AAFF2B58AB66002FEA75 /* LegacyInAppAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AAFE2B58AB66002FEA75 /* LegacyInAppAnalytics.swift */; };
6EE6AB022B58B6E9002FEA75 /* LegacyInAppAnalyticsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AB002B58B5AE002FEA75 /* LegacyInAppAnalyticsTest.swift */; };
6EE6AB062B59C231002FEA75 /* AirshipLayoutDisplayAdapterTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AB052B59C231002FEA75 /* AirshipLayoutDisplayAdapterTest.swift */; };
6EE6AB092B59C236002FEA75 /* CustomDisplayAdapterWrapperTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE6AB032B59C21A002FEA75 /* CustomDisplayAdapterWrapperTest.swift */; };
6EE7725B238F179300E79944 /* AirshipCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 494DD9571B0EB677009C134E /* AirshipCore.framework */; settings = {ATTRIBUTES = (Required, ); }; };
6EED67652CDEE7900087CDCB /* ThomasViewInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67632CDEE75D0087CDCB /* ThomasViewInfo.swift */; };
6EED676E2CDEE7EB0087CDCB /* ThomasPresentationInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED676C2CDEE7E50087CDCB /* ThomasPresentationInfo.swift */; };
6EED67722CDEE8390087CDCB /* ThomasOrientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67702CDEE8370087CDCB /* ThomasOrientation.swift */; };
6EED67752CDEE8460087CDCB /* ThomasWindowSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67742CDEE8460087CDCB /* ThomasWindowSize.swift */; };
6EED677A2CDEE87D0087CDCB /* ThomasShadow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67782CDEE8790087CDCB /* ThomasShadow.swift */; };
6EED677D2CDEE9040087CDCB /* ThomasSerializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED677C2CDEE8FE0087CDCB /* ThomasSerializable.swift */; };
6EED67972CDEEA2E0087CDCB /* ThomasShapeInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67952CDEEA2B0087CDCB /* ThomasShapeInfo.swift */; };
6EED679C2CDEEA380087CDCB /* ThomasToggleStyleInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67992CDEEA380087CDCB /* ThomasToggleStyleInfo.swift */; };
6EED67A02CDEEAAB0087CDCB /* AirshipLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED679D2CDEEAA90087CDCB /* AirshipLayout.swift */; };
6EED67A22CE1A47C0087CDCB /* ThomasColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67A12CE1A4780087CDCB /* ThomasColor.swift */; };
6EED67A72CE1A5000087CDCB /* ThomasBorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67A52CE1A4FC0087CDCB /* ThomasBorder.swift */; };
6EED67AB2CE1A5D00087CDCB /* ThomasMarkdownOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67A92CE1A5CC0087CDCB /* ThomasMarkdownOptions.swift */; };
6EED67AE2CE1A6B90087CDCB /* ThomasPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67AD2CE1A6B70087CDCB /* ThomasPosition.swift */; };
6EED67B32CE1A8330087CDCB /* ThomasEventHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67B12CE1A8300087CDCB /* ThomasEventHandler.swift */; };
6EED67B62CE1B4420087CDCB /* ThomasTextAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67B52CE1B43C0087CDCB /* ThomasTextAppearance.swift */; };
6EED67BA2CE1B4E90087CDCB /* ThomasPlatform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67B92CE1B4E60087CDCB /* ThomasPlatform.swift */; };
6EED67C02CE1B5160087CDCB /* ThomasActionsPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67BD2CE1B5120087CDCB /* ThomasActionsPayload.swift */; };
6EED67C32CE1B5890087CDCB /* ThomasIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67C12CE1B5850087CDCB /* ThomasIcon.swift */; };
6EED67C82CE1B6020087CDCB /* ThomasMediaFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67C52CE1B5FF0087CDCB /* ThomasMediaFit.swift */; };
6EED67E32CE268680087CDCB /* ThomasButtonTapEffect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67E22CE268630087CDCB /* ThomasButtonTapEffect.swift */; };
6EED67E82CE268BF0087CDCB /* ThomasButtonClickBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67E62CE268BB0087CDCB /* ThomasButtonClickBehavior.swift */; };
6EED67EB2CE269970087CDCB /* ThomasDirection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67EA2CE269930087CDCB /* ThomasDirection.swift */; };
6EED67F02CE26CA40087CDCB /* ThomasSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67EF2CE26CA10087CDCB /* ThomasSize.swift */; };
6EED67F62CE26CB80087CDCB /* ThomasConstrainedSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67F32CE26CB50087CDCB /* ThomasConstrainedSize.swift */; };
6EED67F82CE26CE40087CDCB /* ThomasSizeConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67F72CE26CE20087CDCB /* ThomasSizeConstraint.swift */; };
6EED67FC2CE26DB60087CDCB /* ThomasAttributeName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67FB2CE26DAF0087CDCB /* ThomasAttributeName.swift */; };
6EED68012CE26DCD0087CDCB /* ThomasAttributeValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED67FF2CE26DCA0087CDCB /* ThomasAttributeValue.swift */; };
6EED68042CE26E1A0087CDCB /* ThomasMargin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED68032CE26E180087CDCB /* ThomasMargin.swift */; };
6EED680A2CE26E550087CDCB /* ThomasAutomatedAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED68072CE26E510087CDCB /* ThomasAutomatedAction.swift */; };
6EED680D2CE2707F0087CDCB /* ThomasStateAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED680C2CE2707E0087CDCB /* ThomasStateAction.swift */; };
6EED68122CE271E50087CDCB /* ThomasEnableBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED68102CE271E10087CDCB /* ThomasEnableBehavior.swift */; };
6EED68162CE271F80087CDCB /* ThomasFormSubmitBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED68142CE271F30087CDCB /* ThomasFormSubmitBehavior.swift */; };
6EED68192CE272790087CDCB /* ThomasAutomatedAccessibilityAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED68182CE272710087CDCB /* ThomasAutomatedAccessibilityAction.swift */; };
6EED681D2CE274300087CDCB /* ThomasAccessibilityAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED681C2CE274290087CDCB /* ThomasAccessibilityAction.swift */; };
6EED68222CE2806D0087CDCB /* ThomasAccessibleInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED68202CE2806B0087CDCB /* ThomasAccessibleInfo.swift */; };
6EED68292CE28C9A0087CDCB /* ThomasVisibilityInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED68282CE28C960087CDCB /* ThomasVisibilityInfo.swift */; };
6EED682D2CE28CC10087CDCB /* ThomasValidationInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED682C2CE28CBF0087CDCB /* ThomasValidationInfo.swift */; };
6EED68332CE28FAC0087CDCB /* ThomasConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED68302CE28FA70087CDCB /* ThomasConstants.swift */; };
6EED68E72CE3ECCB0087CDCB /* ThomasPropertyOverride.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED68E42CE3ECC50087CDCB /* ThomasPropertyOverride.swift */; };
6EEE8BA2290B3EDE00230528 /* AirshipKeychainAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EEE8BA1290B3EDE00230528 /* AirshipKeychainAccess.swift */; };
6EF02DF02714EB500008B6C9 /* Thomas.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF02DEF2714EB500008B6C9 /* Thomas.swift */; };
6EF13FFD2A16F390009A125D /* AirshipBaseTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3299EF212949EC3E00251E70 /* AirshipBaseTest.swift */; };
6EF13FFE2A16F391009A125D /* AirshipBaseTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3299EF212949EC3E00251E70 /* AirshipBaseTest.swift */; };
6EF1401B2A2671ED009A125D /* AirshipDeviceID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF1401A2A2671ED009A125D /* AirshipDeviceID.swift */; };
6EF1401F2A268CE6009A125D /* TestKeychainAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF1401E2A268CE6009A125D /* TestKeychainAccess.swift */; };
6EF140212A269074009A125D /* AirshipDeviceIDTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF140202A269074009A125D /* AirshipDeviceIDTest.swift */; };
6EF1E9282CD005E4005EAA07 /* PagerUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF1E9252CD005E2005EAA07 /* PagerUtils.swift */; };
6EF1E92A2CD0069B005EAA07 /* PagerSwipeDirection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF1E9292CD00698005EAA07 /* PagerSwipeDirection.swift */; };
6EF27DD927306C9100548DA3 /* AirshipToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF27DD827306C9100548DA3 /* AirshipToggle.swift */; };
6EF27DE32730E6F900548DA3 /* RadioInputController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF27DE22730E6F900548DA3 /* RadioInputController.swift */; };
6EF27DE62730E77300548DA3 /* RadioInputState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF27DE52730E77300548DA3 /* RadioInputState.swift */; };
6EF27DE92730E85700548DA3 /* RadioInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF27DE82730E85700548DA3 /* RadioInput.swift */; };
6EF553E32B7EE40B00901A22 /* AirshipLocalizationUtilsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF553E22B7EE40B00901A22 /* AirshipLocalizationUtilsTest.swift */; };
6EF66D8D276461DA00ABCB76 /* UrlInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF66D8C276461DA00ABCB76 /* UrlInfo.swift */; };
6EF66D912769B69C00ABCB76 /* RootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF66D902769B69C00ABCB76 /* RootView.swift */; };
6EFAFB78295525C3008AD187 /* ChannelAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFAFB77295525C3008AD187 /* ChannelAPIClientTest.swift */; };
6EFAFB7A295525CD008AD187 /* ChannelCaptureTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFAFB79295525CD008AD187 /* ChannelCaptureTest.swift */; };
6EFAFB7C295525DF008AD187 /* ChannelRegistrationPayloadTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFAFB7B295525DF008AD187 /* ChannelRegistrationPayloadTest.swift */; };
6EFAFB8229555174008AD187 /* FetchDeviceInfoActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFAFB8129555174008AD187 /* FetchDeviceInfoActionTest.swift */; };
6EFAFB8429561F23008AD187 /* ModifyAttributesActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFAFB8329561F23008AD187 /* ModifyAttributesActionTest.swift */; };
6EFAFB8A29562474008AD187 /* AddTagsActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFAFB8929562474008AD187 /* AddTagsActionTest.swift */; };
6EFAFB8C29562866008AD187 /* RemoveTagsActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFAFB8B29562866008AD187 /* RemoveTagsActionTest.swift */; };
6EFB7B342A14A0F400133115 /* RemoteDataProviderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFB7B322A14A0EC00133115 /* RemoteDataProviderTest.swift */; };
6EFD6D4B27272333005B26F1 /* EmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFD6D4A27272333005B26F1 /* EmptyView.swift */; };
6EFD6D5C27273257005B26F1 /* Shapes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFD6D5B27273257005B26F1 /* Shapes.swift */; };
6EFD6D6E27290C0B005B26F1 /* FormController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFD6D6D27290C0B005B26F1 /* FormController.swift */; };
6EFD6D7127290C16005B26F1 /* TextInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFD6D7027290C16005B26F1 /* TextInput.swift */; };
6EFD6D82272A53AE005B26F1 /* PagerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFD6D81272A53AE005B26F1 /* PagerState.swift */; };
6EFD6D8B272A53FB005B26F1 /* PagerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFD6D86272A53FB005B26F1 /* PagerController.swift */; };
6EFE7E3F2A97ED660064AC31 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6EFE7E3E2A97ED600064AC31 /* PrivacyInfo.xcprivacy */; };
8401769426C5671100373AF7 /* JSONMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8401769326C5671100373AF7 /* JSONMatcher.swift */; };
8401769826C5722400373AF7 /* JSONPredicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8401769726C5722400373AF7 /* JSONPredicate.swift */; };
8401769A26C5725800373AF7 /* AirshipJSONUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8401769926C5725800373AF7 /* AirshipJSONUtils.swift */; };
8401769C26C5729E00373AF7 /* JSONValueMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8401769B26C5729E00373AF7 /* JSONValueMatcher.swift */; };
841E7D12268617C800EA0317 /* PreferenceCenterResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841E7D11268617C800EA0317 /* PreferenceCenterResponse.swift */; };
84483A68267CF0C000D0DA7D /* PreferenceCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84483A67267CF0C000D0DA7D /* PreferenceCenter.swift */; };
847B000B267CD85E007CD249 /* AirshipCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 494DD9571B0EB677009C134E /* AirshipCore.framework */; };
847B0013267CE558007CD249 /* PreferenceCenterSDKModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0012267CE558007CD249 /* PreferenceCenterSDKModule.swift */; };
847BFFFD267CD73A007CD249 /* AirshipPreferenceCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 847BFFF4267CD739007CD249 /* AirshipPreferenceCenter.framework */; };
9908E60E2B000DBA00DB3E2E /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9908E60D2B000DBA00DB3E2E /* CustomView.swift */; };
9908E6122B0189F800DB3E2E /* ArishipCustomViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9908E6112B0189F800DB3E2E /* ArishipCustomViewManager.swift */; };
990A09592B5C677C00244D90 /* InAppMessageWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990A09582B5C677C00244D90 /* InAppMessageWebView.swift */; };
990A09942B5CA5B700244D90 /* InAppMessageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990A09932B5CA5B700244D90 /* InAppMessageExtensions.swift */; };
990A09AF2B5DBD0400244D90 /* InAppMessageViewUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990A09AE2B5DBD0400244D90 /* InAppMessageViewUtils.swift */; };
990EB3B12BF59A1500315EAC /* ContactChannelsProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990EB3B02BF59A1500315EAC /* ContactChannelsProvider.swift */; };
99104DF32BA6689A0040C0FD /* PreferenceCloseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99104DF22BA6689A0040C0FD /* PreferenceCloseButton.swift */; };
99303B062BD97F89002174CA /* ChannelListViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99303B052BD97F89002174CA /* ChannelListViewCell.swift */; };
993AFDFE2C1B2D9A00AA875B /* PreferenceCenterConfig+ContactManagement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993AFDFD2C1B2D9A00AA875B /* PreferenceCenterConfig+ContactManagement.swift */; };
993F91FB2CA37874001B1C2E /* FooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993F91FA2CA37874001B1C2E /* FooterView.swift */; };
99560C1E2BAE2FFA00F28BDC /* ChannelTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99560C1D2BAE2FFA00F28BDC /* ChannelTextField.swift */; };
99560C282BB3843600F28BDC /* PreferenceCenterUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99560C272BB3843600F28BDC /* PreferenceCenterUtils.swift */; };
99560C2B2BB384A700F28BDC /* BackgroundShape.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99560C2A2BB384A700F28BDC /* BackgroundShape.swift */; };
99560C2D2BB3855800F28BDC /* EmptySectionLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99560C2C2BB3855800F28BDC /* EmptySectionLabel.swift */; };
99560C372BB38A5F00F28BDC /* ErrorLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99560C362BB38A5F00F28BDC /* ErrorLabel.swift */; };
9971A8852C125C0200092ED1 /* ContactChannelsProviderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9971A8842C125C0200092ED1 /* ContactChannelsProviderTest.swift */; };
998572BF2B3CF95D0091E9C9 /* DefaultAssetDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998572BE2B3CF95D0091E9C9 /* DefaultAssetDownloader.swift */; };
998572C12B3CF97B0091E9C9 /* DefaultAssetFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998572C02B3CF97B0091E9C9 /* DefaultAssetFileManager.swift */; };
999DC85E2B5B721D0048C6AF /* HTMLView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999DC85D2B5B721D0048C6AF /* HTMLView.swift */; };
99C3CC792BCF3E5B00B5BED5 /* SMSValidatorAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C3CC772BCF3DF700B5BED5 /* SMSValidatorAPIClientTest.swift */; };
99C3CC7E2BCF40B200B5BED5 /* CachingSMSValidatorAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C3CC7C2BCF401B00B5BED5 /* CachingSMSValidatorAPIClientTest.swift */; };
99CC0D952BC87868001D93D0 /* AddChannelPromptViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99CC0D942BC87868001D93D0 /* AddChannelPromptViewModel.swift */; };
99CF46182B3217C300B6FD9B /* AirshipCachedAssets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99CF46172B3217C300B6FD9B /* AirshipCachedAssets.swift */; };
99CF461A2B3217DE00B6FD9B /* AssetCacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99CF46192B3217DE00B6FD9B /* AssetCacheManager.swift */; };
99E0BD0D2B4DD4AB00465B37 /* FullscreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E0BD0C2B4DD4AB00465B37 /* FullscreenView.swift */; };
99E0BD0F2B4DD71A00465B37 /* InAppMessageHostingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E0BD0E2B4DD71A00465B37 /* InAppMessageHostingController.swift */; };
99E433932C9A0362006436B9 /* PagerIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFD6D85272A53FA005B26F1 /* PagerIndicator.swift */; };
99E433942C9A03D9006436B9 /* Pager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFD6D84272A53FA005B26F1 /* Pager.swift */; };
99E433982C9A044C006436B9 /* AirshipResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E433972C9A044C006436B9 /* AirshipResources.swift */; };
99E6EF6A2B8E36BA0006326A /* InAppMessageValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E6EF692B8E36BA0006326A /* InAppMessageValidation.swift */; };
99E6EF6D2B8E3C250006326A /* InAppMessageContentValidationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E6EF6B2B8E3AF60006326A /* InAppMessageContentValidationTest.swift */; };
99E8D7972B4F17260099B6F3 /* CloseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7962B4F17260099B6F3 /* CloseButton.swift */; };
99E8D7992B4F19BA0099B6F3 /* TextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7982B4F19BA0099B6F3 /* TextView.swift */; };
99E8D79B2B4F2FCE0099B6F3 /* InAppMessageTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D79A2B4F2FCE0099B6F3 /* InAppMessageTheme.swift */; };
99E8D7BB2B50A7C20099B6F3 /* InAppMessageViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7BA2B50A7C20099B6F3 /* InAppMessageViewDelegate.swift */; };
99E8D7BD2B50AA060099B6F3 /* InAppMessageEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7BC2B50AA060099B6F3 /* InAppMessageEnvironment.swift */; };
99E8D7BF2B50C2C10099B6F3 /* ButtonGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7BE2B50C2C10099B6F3 /* ButtonGroup.swift */; };
99E8D7C12B50E5F40099B6F3 /* InAppMessageRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7C02B50E5F40099B6F3 /* InAppMessageRootView.swift */; };
99E8D7C52B5192D40099B6F3 /* MediaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7C42B5192D40099B6F3 /* MediaView.swift */; };
99E8D7C92B54A5CB0099B6F3 /* InAppMessageThemeModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7C82B54A5CB0099B6F3 /* InAppMessageThemeModal.swift */; };
99E8D7CB2B54A6340099B6F3 /* InAppMessageThemeFullscreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7CA2B54A6340099B6F3 /* InAppMessageThemeFullscreen.swift */; };
99E8D7CE2B54A66E0099B6F3 /* InAppMessageThemeBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7CD2B54A66E0099B6F3 /* InAppMessageThemeBanner.swift */; };
99E8D7D02B54A68F0099B6F3 /* InAppMessageThemeHTML.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7CF2B54A68F0099B6F3 /* InAppMessageThemeHTML.swift */; };
99E8D7D52B55B0300099B6F3 /* InAppMessageThemeAdditionalPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7D42B55B0300099B6F3 /* InAppMessageThemeAdditionalPadding.swift */; };
99E8D7D82B55B0440099B6F3 /* InAppMessageThemeButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7D72B55B0440099B6F3 /* InAppMessageThemeButton.swift */; };
99E8D7DA2B55B05D0099B6F3 /* InAppMessageThemeText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7D92B55B05D0099B6F3 /* InAppMessageThemeText.swift */; };
99E8D7DC2B55C4C20099B6F3 /* InAppMessageThemeMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7DB2B55C4C20099B6F3 /* InAppMessageThemeMedia.swift */; };
99E8D7DE2B55C73B0099B6F3 /* ThemeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E8D7DD2B55C73B0099B6F3 /* ThemeExtensions.swift */; };
99F4FE5B2BC36A6700754F0F /* PreferenceCenterContentStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F4FE5A2BC36A6700754F0F /* PreferenceCenterContentStyle.swift */; };
99F662B02B5DDC2900696098 /* BeveledLoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F662AF2B5DDC2900696098 /* BeveledLoadingView.swift */; };
99F662B22B60425E00696098 /* InAppMessageModalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F662B12B60425E00696098 /* InAppMessageModalView.swift */; };
99F662D22B63047300696098 /* InAppMessageBannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F662D12B63047300696098 /* InAppMessageBannerView.swift */; };
99FD20A52DEFC35900242551 /* MessageCenterUIKitAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99FD20A42DEFC35900242551 /* MessageCenterUIKitAppearance.swift */; };
A1B2C3D4E5F60002VIDEOST /* VideoState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D4E5F60001VIDEOST /* VideoState.swift */; };
A1B2C3D4E5F60004VIDEOCR /* VideoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D4E5F60003VIDEOCR /* VideoController.swift */; };
A61517B226A9C4C3008A41C4 /* SubscriptionListEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61517B126A9C4C3008A41C4 /* SubscriptionListEditor.swift */; };
A61517B526AEEAAB008A41C4 /* SubscriptionListUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61517B426AEEAAB008A41C4 /* SubscriptionListUpdate.swift */; };
A61517C426B009D6008A41C4 /* SubscriptionListAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61517C026B009D6008A41C4 /* SubscriptionListAPIClient.swift */; };
A61F3A752A5DA58500EE94CC /* FeatureFlagManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61F3A732A5D9D6800EE94CC /* FeatureFlagManagerTest.swift */; };
A61F3A782A5DBA1800EE94CC /* AirshipCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 494DD9571B0EB677009C134E /* AirshipCore.framework */; platformFilters = (ios, maccatalyst, macos, tvos, xros, ); };
A62058712A5841330041FBF9 /* AirshipFeatureFlags.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A62058692A5841330041FBF9 /* AirshipFeatureFlags.framework */; };
A62058812A5842200041FBF9 /* AirshipFeatureFlagsSDKModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = A62058802A5842200041FBF9 /* AirshipFeatureFlagsSDKModule.swift */; };
A629F7DA295B514C00671647 /* PasteboardActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A629F7D9295B514C00671647 /* PasteboardActionTest.swift */; };
A62C3354299FD509004DB0DA /* ShareActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A62C3353299FD509004DB0DA /* ShareActionTest.swift */; };
A63A567628F449D8004B8951 /* TestWorkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A63A567528F449D8004B8951 /* TestWorkManager.swift */; };
A63A567828F457FE004B8951 /* TestWorkRateLimiterActor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A63A567728F457FE004B8951 /* TestWorkRateLimiterActor.swift */; };
A658DE0C2727020200007672 /* ImageButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = A658DE0A2727020100007672 /* ImageButton.swift */; };
A658DE192728498900007672 /* AirshipWebview.swift in Sources */ = {isa = PBXBuildFile; fileRef = A658DE182728498900007672 /* AirshipWebview.swift */; };
A658DE2B272AFB0400007672 /* AirshipImageLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = A658DE2A272AFB0400007672 /* AirshipImageLoader.swift */; };
A67EC249279B1A40009089E1 /* ScopedSubscriptionListEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A67EC248279B1A40009089E1 /* ScopedSubscriptionListEditor.swift */; };
A67EC24B279B1C34009089E1 /* ScopedSubscriptionListUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A67EC24A279B1C34009089E1 /* ScopedSubscriptionListUpdate.swift */; };
A67F87D2268DECCE00EF5F43 /* ContactAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = A67F87D1268DECCE00EF5F43 /* ContactAPIClient.swift */; };
A6849387273290520021675E /* Score.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6849386273290520021675E /* Score.swift */; };
A684939D273436370021675E /* FontViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = A684939C273436370021675E /* FontViewModifier.swift */; };
A69C987F27E247B20063A101 /* SubscriptionListAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A69C987E27E247B20063A101 /* SubscriptionListAction.swift */; };
A6A5530A26D548AF002B20F6 /* NativeBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A5530926D548AF002B20F6 /* NativeBridge.swift */; };
A6A5531026D548D6002B20F6 /* JavaScriptEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A5530F26D548D6002B20F6 /* JavaScriptEnvironment.swift */; };
A6A5531326D548FF002B20F6 /* NativeBridgeActionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A5531226D548FF002B20F6 /* NativeBridgeActionHandler.swift */; };
A6AC44832B923ACB00769ED2 /* TestInAppMessageAutomationExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6AC44822B923ACB00769ED2 /* TestInAppMessageAutomationExecutor.swift */; };
A6AF8D2D27E8D4910068C7EE /* SubscriptionListActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6AF8D2C27E8D4910068C7EE /* SubscriptionListActionTest.swift */; };
A6CDD8D0269491BE0040A673 /* ContactAPIClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6CDD8CF269491BE0040A673 /* ContactAPIClientTest.swift */; };
A6D6D48F2A0253AA0072A5CA /* ActionArguments.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6D6D48E2A0253AA0072A5CA /* ActionArguments.swift */; };
A6D6D49D2A0260780072A5CA /* AirshipAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6D6D49C2A02607800
gitextract_2xh8r30o/
├── .github/
│ ├── CODEOWNERS
│ ├── CONTRIBUTING.md
│ ├── ISSUE_TEMPLATE.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows/
│ ├── check-cert.yml
│ ├── check_framework_size.yml
│ ├── ci.yml
│ ├── deploy_docC.yml
│ ├── merge.yml
│ ├── pr-review.yml
│ └── release.yml
├── .gitignore
├── .gitmodules
├── .ruby-version
├── .swift-format.json
├── .swiftpm/
│ └── xcode/
│ └── package.xcworkspace/
│ └── contents.xcworkspacedata
├── .whitesource
├── Airship/
│ ├── Airship.xcodeproj/
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata/
│ │ └── xcschemes/
│ │ ├── AirshipAutomation.xcscheme
│ │ ├── AirshipBasement.xcscheme
│ │ ├── AirshipCore.xcscheme
│ │ ├── AirshipDebug.xcscheme
│ │ ├── AirshipFeatureFlags.xcscheme
│ │ ├── AirshipMessageCenter.xcscheme
│ │ ├── AirshipObjectiveC.xcscheme
│ │ └── AirshipPreferenceCenter.xcscheme
│ ├── AirshipAutomation/
│ │ ├── Info.plist
│ │ ├── Resources/
│ │ │ ├── AirshipAutomation.xcdatamodeld/
│ │ │ │ ├── .xccurrentversion
│ │ │ │ ├── AirshipAutomation 2.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── AirshipAutomation 3.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ └── AirshipAutomation.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── UAAutomation.xcdatamodeld/
│ │ │ │ ├── .xccurrentversion
│ │ │ │ ├── UAAutomation 10.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 11.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 12.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 13.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 2.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 3.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 4.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 5.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 6.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 7.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 8.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAAutomation 9.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ └── UAAutomation.xcdatamodel/
│ │ │ │ └── contents
│ │ │ └── UAFrequencyLimits.xcdatamodeld/
│ │ │ └── UAFrequencyLimits.xcdatamodel/
│ │ │ └── contents
│ │ ├── Source/
│ │ │ ├── ActionAutomation/
│ │ │ │ ├── ActionAutomationExecutor.swift
│ │ │ │ └── ActionAutomationPreparer.swift
│ │ │ ├── Actions/
│ │ │ │ ├── CancelSchedulesAction.swift
│ │ │ │ ├── LandingPageAction.swift
│ │ │ │ └── ScheduleAction.swift
│ │ │ ├── AirshipAutomationResources.swift
│ │ │ ├── AudienceCheck/
│ │ │ │ ├── AdditionalAudienceCheckerApiClient.swift
│ │ │ │ └── AdditionalAudienceCheckerResolver.swift
│ │ │ ├── Automation/
│ │ │ │ ├── ApplicationMetrics.swift
│ │ │ │ ├── AutomationAudience.swift
│ │ │ │ ├── AutomationCompoundAudience.swift
│ │ │ │ ├── AutomationDelay.swift
│ │ │ │ ├── AutomationSchedule.swift
│ │ │ │ ├── AutomationTrigger.swift
│ │ │ │ ├── DeferredAutomationData.swift
│ │ │ │ ├── Engine/
│ │ │ │ │ ├── AutomationDelayProcessor.swift
│ │ │ │ │ ├── AutomationEngine.swift
│ │ │ │ │ ├── AutomationEventFeed.swift
│ │ │ │ │ ├── AutomationEventsHistory.swift
│ │ │ │ │ ├── AutomationExecutor.swift
│ │ │ │ │ ├── AutomationPreparer.swift
│ │ │ │ │ ├── AutomationScheduleData.swift
│ │ │ │ │ ├── AutomationScheduleState.swift
│ │ │ │ │ ├── AutomationStore.swift
│ │ │ │ │ ├── ExecutionWindowProcessor.swift
│ │ │ │ │ ├── LegacyAutomationStore.swift
│ │ │ │ │ ├── PreparedSchedule.swift
│ │ │ │ │ ├── ScheduleExecuteResult.swift
│ │ │ │ │ ├── SchedulePrepareResult.swift
│ │ │ │ │ ├── ScheduleReadyResult.swift
│ │ │ │ │ ├── TriggerProcessor/
│ │ │ │ │ │ ├── AutomationTriggerProcessor.swift
│ │ │ │ │ │ ├── PreparedTrigger.swift
│ │ │ │ │ │ └── TriggerData.swift
│ │ │ │ │ └── TriggeringInfo.swift
│ │ │ │ └── ExecutionWindow.swift
│ │ │ ├── AutomationSDKModule.swift
│ │ │ ├── InAppAutomation.swift
│ │ │ ├── InAppAutomationComponent.swift
│ │ │ ├── InAppAutomationUpdateStatus.swift
│ │ │ ├── InAppMessage/
│ │ │ │ ├── Analytics/
│ │ │ │ │ ├── InAppDisplayImpressionRuleProvider.swift
│ │ │ │ │ ├── InAppMessageAnalytics.swift
│ │ │ │ │ └── InAppMessageAnalyticsFactory.swift
│ │ │ │ ├── Assets/
│ │ │ │ │ ├── AirshipCachedAssets.swift
│ │ │ │ │ ├── AssetCacheManager.swift
│ │ │ │ │ ├── DefaultAssetDownloader.swift
│ │ │ │ │ └── DefaultAssetFileManager.swift
│ │ │ │ ├── Display Adapter/
│ │ │ │ │ ├── AirshipLayoutDisplayAdapter.swift
│ │ │ │ │ ├── CustomDisplayAdapter.swift
│ │ │ │ │ ├── CustomDisplayAdapterWrapper.swift
│ │ │ │ │ ├── DisplayAdapter.swift
│ │ │ │ │ ├── DisplayAdapterFactory.swift
│ │ │ │ │ └── InAppMessageDisplayListener.swift
│ │ │ │ ├── Display Coordinators/
│ │ │ │ │ ├── DefaultDisplayCoordinator.swift
│ │ │ │ │ ├── DisplayCoordinator.swift
│ │ │ │ │ ├── DisplayCoordinatorManager.swift
│ │ │ │ │ └── ImmediateDisplayCoordinator.swift
│ │ │ │ ├── InAppActionRunner.swift
│ │ │ │ ├── InAppMessage.swift
│ │ │ │ ├── InAppMessageAutomationExecutor.swift
│ │ │ │ ├── InAppMessageAutomationPreparer.swift
│ │ │ │ ├── InAppMessageColor.swift
│ │ │ │ ├── InAppMessageDisplayContent.swift
│ │ │ │ ├── InAppMessageDisplayDelegate.swift
│ │ │ │ ├── InAppMessageEnvironment.swift
│ │ │ │ ├── InAppMessageSceneDelegate.swift
│ │ │ │ ├── InAppMessageSceneManager.swift
│ │ │ │ ├── InAppMessageValidation.swift
│ │ │ │ ├── InAppMessageViewDelegate.swift
│ │ │ │ ├── InAppMessaging.swift
│ │ │ │ ├── Info/
│ │ │ │ │ ├── InAppMessageButtonInfo.swift
│ │ │ │ │ ├── InAppMessageButtonLayoutType.swift
│ │ │ │ │ ├── InAppMessageMediaInfo.swift
│ │ │ │ │ └── InAppMessageTextInfo.swift
│ │ │ │ ├── Legacy/
│ │ │ │ │ ├── LegacyInAppAnalytics.swift
│ │ │ │ │ ├── LegacyInAppMessage.swift
│ │ │ │ │ └── LegacyInAppMessaging.swift
│ │ │ │ └── View/
│ │ │ │ ├── BeveledLoadingView.swift
│ │ │ │ ├── ButtonGroup.swift
│ │ │ │ ├── CloseButton.swift
│ │ │ │ ├── FullscreenView.swift
│ │ │ │ ├── HTMLView.swift
│ │ │ │ ├── InAppMessageBannerView.swift
│ │ │ │ ├── InAppMessageExtensions.swift
│ │ │ │ ├── InAppMessageHostingController.swift
│ │ │ │ ├── InAppMessageModalView.swift
│ │ │ │ ├── InAppMessageNativeBridgeExtension.swift
│ │ │ │ ├── InAppMessageRootView.swift
│ │ │ │ ├── InAppMessageViewUtils.swift
│ │ │ │ ├── InAppMessageWebView.swift
│ │ │ │ ├── MediaView.swift
│ │ │ │ ├── TextView.swift
│ │ │ │ └── Theme/
│ │ │ │ ├── InAppMessageTheme.swift
│ │ │ │ ├── InAppMessageThemeAdditionalPadding.swift
│ │ │ │ ├── InAppMessageThemeBanner.swift
│ │ │ │ ├── InAppMessageThemeButton.swift
│ │ │ │ ├── InAppMessageThemeFullscreen.swift
│ │ │ │ ├── InAppMessageThemeHTML.swift
│ │ │ │ ├── InAppMessageThemeManager.swift
│ │ │ │ ├── InAppMessageThemeMedia.swift
│ │ │ │ ├── InAppMessageThemeModal.swift
│ │ │ │ ├── InAppMessageThemeShadow.swift
│ │ │ │ ├── InAppMessageThemeText.swift
│ │ │ │ └── ThemeExtensions.swift
│ │ │ ├── Limits/
│ │ │ │ ├── FrequencyChecker.swift
│ │ │ │ ├── FrequencyConstraint.swift
│ │ │ │ ├── FrequencyLimitManager.swift
│ │ │ │ ├── FrequencyLimitStore.swift
│ │ │ │ └── Occurrence.swift
│ │ │ ├── RemoteData/
│ │ │ │ ├── AutomationRemoteDataAccess.swift
│ │ │ │ ├── AutomationRemoteDataSubscriber.swift
│ │ │ │ ├── AutomationSourceInfoStore.swift
│ │ │ │ └── DeferredScheduleResult.swift
│ │ │ └── Utils/
│ │ │ ├── ActiveTimer.swift
│ │ │ ├── AirshipAsyncSemaphore.swift
│ │ │ ├── AutomationActionRunner.swift
│ │ │ ├── RetryingQueue.swift
│ │ │ └── ScheduleConditionsChangedNotifier.swift
│ │ └── Tests/
│ │ ├── Action Automation/
│ │ │ ├── ActionAutomationExecutorTest.swift
│ │ │ └── ActionAutomationPreparerTest.swift
│ │ ├── Actions/
│ │ │ ├── CancelSchedulesActionTest.swift
│ │ │ ├── LandingPageActionTest.swift
│ │ │ └── ScheduleActionTest.swift
│ │ ├── Automation/
│ │ │ ├── ApplicationMetricsTest.swift
│ │ │ ├── AudienceCheck/
│ │ │ │ └── AdditionalAudienceCheckerResolverTest.swift
│ │ │ ├── AutomationScheduleDataTest.swift
│ │ │ ├── AutomationScheduleTest.swift
│ │ │ └── Engine/
│ │ │ ├── AutomationDelayProcessorTest.swift
│ │ │ ├── AutomationEngineTest.swift
│ │ │ ├── AutomationEventFeedTest.swift
│ │ │ ├── AutomationEventsHistoryTest.swift
│ │ │ ├── AutomationExecutorTest.swift
│ │ │ ├── AutomationPreparerTest.swift
│ │ │ ├── AutomationStoreTest.swift
│ │ │ ├── AutomationTriggerProcessorTest.swift
│ │ │ ├── ExecutionWindowProcessorTest.swift
│ │ │ ├── PreparedScheduleInfoTest.swift
│ │ │ └── PreparedTriggerTest.swift
│ │ ├── ExecutionWindowTest.swift
│ │ ├── InAppMessage/
│ │ │ ├── Analytics/
│ │ │ │ ├── DefaultInAppDisplayImpressionRuleProviderTest.swift
│ │ │ │ └── InAppMessageAnalyticsTest.swift
│ │ │ ├── Assets/
│ │ │ │ ├── AssetCacheManagerTest.swift
│ │ │ │ ├── DefaultAssetDownloaderTest.swift
│ │ │ │ └── DefaultAssetFileManagerTest.swift
│ │ │ ├── DefaultInAppActionRunnerTest.swift
│ │ │ ├── Display Adapter/
│ │ │ │ ├── AirshipLayoutDisplayAdapterTest.swift
│ │ │ │ ├── CustomDisplayAdapterWrapperTest.swift
│ │ │ │ ├── DisplayAdapterFactoryTest.swift
│ │ │ │ └── InAppMessageDisplayListenerTest.swift
│ │ │ ├── Display Coordinators/
│ │ │ │ ├── DefaultDisplayCoordinatorTest.swift
│ │ │ │ ├── DisplayCoordinatorManagerTest.swift
│ │ │ │ └── ImmediateDisplayCoordinatorTest.swift
│ │ │ ├── InAppMessageAutomationExecutorTest.swift
│ │ │ ├── InAppMessageAutomationPreparerTest.swift
│ │ │ ├── InAppMessageContentValidationTest.swift
│ │ │ ├── InAppMessageTest.swift
│ │ │ ├── InAppMessageThemeTest.swift
│ │ │ └── View/
│ │ │ └── InAppMessageNativeBridgeExtensionTest.swift
│ │ ├── InAppMessaging/
│ │ │ ├── Invalid-UAInAppMessageBannerStyle.plist
│ │ │ ├── Invalid-UAInAppMessageFullScreenStyle.plist
│ │ │ ├── Invalid-UAInAppMessageModalStyle.plist
│ │ │ ├── Valid-UAInAppMessageBannerStyle.plist
│ │ │ ├── Valid-UAInAppMessageFullScreenStyle.plist
│ │ │ ├── Valid-UAInAppMessageHTMLStyle.plist
│ │ │ └── Valid-UAInAppMessageModalStyle.plist
│ │ ├── Legacy/
│ │ │ ├── LegacyInAppAnalyticsTest.swift
│ │ │ ├── LegacyInAppMessageTest.swift
│ │ │ └── LegacyInAppMessagingTest.swift
│ │ ├── Limits/
│ │ │ └── FrequencyLimitManagerTest.swift
│ │ ├── RemoteData/
│ │ │ ├── AutomationRemoteDataAccessTest.swift
│ │ │ ├── AutomationRemoteDataSubscriberTest.swift
│ │ │ └── AutomationSourceInfoStoreTest.swift
│ │ ├── Test Utils/
│ │ │ ├── TestActionRunner.swift
│ │ │ ├── TestActiveTimer.swift
│ │ │ ├── TestAutomationEngine.swift
│ │ │ ├── TestCachedAssets.swift
│ │ │ ├── TestDisplayAdapter.swift
│ │ │ ├── TestDisplayCoordinator.swift
│ │ │ ├── TestFrequencyLimitsManager.swift
│ │ │ ├── TestInAppMessageAnalytics.swift
│ │ │ ├── TestInAppMessageAutomationExecutor.swift
│ │ │ └── TestRemoteDataAccess.swift
│ │ └── Utils/
│ │ ├── ActiveTimerTest.swift
│ │ ├── AirshipAsyncSemaphoreTest.swift
│ │ └── RetryingQueueTests.swift
│ ├── AirshipBasement/
│ │ ├── Info.plist
│ │ └── Source/
│ │ ├── AirshipLogHandler.swift
│ │ ├── AirshipLogPrivacyLevel.swift
│ │ ├── AirshipLogger.swift
│ │ ├── DefaultLogHandler.swift
│ │ └── LogLevel.swift
│ ├── AirshipConfig.xcconfig
│ ├── AirshipCore/
│ │ ├── Info.plist
│ │ ├── Resources/
│ │ │ ├── PrivacyInfo.xcprivacy
│ │ │ ├── UAEvents.xcdatamodeld/
│ │ │ │ └── UAEvents.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── UAMeteredUsage.xcdatamodeld/
│ │ │ │ └── UAMeteredUsage.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── UANativeBridge
│ │ │ ├── UANotificationCategories.plist
│ │ │ ├── UARemoteData.xcdatamodeld/
│ │ │ │ ├── .xccurrentversion
│ │ │ │ ├── UARemoteData 2.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UARemoteData 3.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UARemoteData 4.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ └── UARemoteData.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── UARemoteDataMappingV1toV4.xcmappingmodel/
│ │ │ │ └── xcmapping.xml
│ │ │ ├── UARemoteDataMappingV2toV4.xcmappingmodel/
│ │ │ │ └── xcmapping.xml
│ │ │ ├── UARemoteDataMappingV3toV4.xcmappingmodel/
│ │ │ │ └── xcmapping.xml
│ │ │ ├── UAirshipCache.xcdatamodeld/
│ │ │ │ └── UAAirshipCache.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── af.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── am.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ar.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── bg.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ca.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── cs.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── da.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── de.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── el.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── en.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── es-419.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── es.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── et.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── fa.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── fi.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── fr-CA.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── fr.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── hi.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── hr.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── hu.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── id.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── it.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── iw.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ja.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ko.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── lt.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── lv.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ms.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── nl.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── no.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── pl.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── pt-PT.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── pt.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ro.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── ru.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── sk.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── sl.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── sr.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── sv.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── sw.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── th.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── tr.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── uk.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── vi.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── zh-HK.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── zh-Hans.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ ├── zh-Hant.lproj/
│ │ │ │ └── UrbanAirship.strings
│ │ │ └── zu.lproj/
│ │ │ └── UrbanAirship.strings
│ │ ├── Source/
│ │ │ ├── APNSEnvironment.swift
│ │ │ ├── APNSRegistrar.swift
│ │ │ ├── APNSRegistrationResult.swift
│ │ │ ├── AccountEventTemplate.swift
│ │ │ ├── ActionArguments.swift
│ │ │ ├── ActionRegistry.swift
│ │ │ ├── ActionResult.swift
│ │ │ ├── ActionRunner.swift
│ │ │ ├── ActivityViewController.swift
│ │ │ ├── AddCustomEventAction.swift
│ │ │ ├── AddTagsAction.swift
│ │ │ ├── Airship.swift
│ │ │ ├── AirshipAction.swift
│ │ │ ├── AirshipActorValue.swift
│ │ │ ├── AirshipAnalytics.swift
│ │ │ ├── AirshipAnalyticsFeed.swift
│ │ │ ├── AirshipAppCredentials.swift
│ │ │ ├── AirshipApptimizeIntegration.swift
│ │ │ ├── AirshipAsyncChannel.swift
│ │ │ ├── AirshipAsyncImage.swift
│ │ │ ├── AirshipAuthorizedNotificationSettings.swift
│ │ │ ├── AirshipBase64.swift
│ │ │ ├── AirshipButton.swift
│ │ │ ├── AirshipCache.swift
│ │ │ ├── AirshipCancellable.swift
│ │ │ ├── AirshipChannel.swift
│ │ │ ├── AirshipCheckboxToggleStyle.swift
│ │ │ ├── AirshipColor.swift
│ │ │ ├── AirshipComponent.swift
│ │ │ ├── AirshipConfig.swift
│ │ │ ├── AirshipContact.swift
│ │ │ ├── AirshipCoreDataPredicate.swift
│ │ │ ├── AirshipCoreResources.swift
│ │ │ ├── AirshipDate.swift
│ │ │ ├── AirshipDateFormatter.swift
│ │ │ ├── AirshipDevice.swift
│ │ │ ├── AirshipDeviceAudienceResult.swift
│ │ │ ├── AirshipDeviceID.swift
│ │ │ ├── AirshipDisplayTarget.swift
│ │ │ ├── AirshipEmbeddedInfo.swift
│ │ │ ├── AirshipEmbeddedObserver.swift
│ │ │ ├── AirshipEmbeddedSize.swift
│ │ │ ├── AirshipEmbeddedView.swift
│ │ │ ├── AirshipEmbeddedViewManager.swift
│ │ │ ├── AirshipErrors.swift
│ │ │ ├── AirshipEvent.swift
│ │ │ ├── AirshipEventData.swift
│ │ │ ├── AirshipEventType.swift
│ │ │ ├── AirshipEvents.swift
│ │ │ ├── AirshipFont.swift
│ │ │ ├── AirshipImageLoader.swift
│ │ │ ├── AirshipImageProvider.swift
│ │ │ ├── AirshipInputValidator.swift
│ │ │ ├── AirshipInstance.swift
│ │ │ ├── AirshipIvyVersionMatcher.swift
│ │ │ ├── AirshipJSON.swift
│ │ │ ├── AirshipJSONUtils.swift
│ │ │ ├── AirshipKeychainAccess.swift
│ │ │ ├── AirshipLayout.swift
│ │ │ ├── AirshipLocalizationUtils.swift
│ │ │ ├── AirshipLock.swift
│ │ │ ├── AirshipMeteredUsage.swift
│ │ │ ├── AirshipMeteredUsageEvent.swift
│ │ │ ├── AirshipNativePlatform.swift
│ │ │ ├── AirshipNetworkChecker.swift
│ │ │ ├── AirshipNotificationCenter.swift
│ │ │ ├── AirshipNotificationStatus.swift
│ │ │ ├── AirshipPasteboard.swift
│ │ │ ├── AirshipPrivacyManager.swift
│ │ │ ├── AirshipProgressView.swift
│ │ │ ├── AirshipPush.swift
│ │ │ ├── AirshipPushableComponent.swift
│ │ │ ├── AirshipRequest.swift
│ │ │ ├── AirshipRequestSession.swift
│ │ │ ├── AirshipResources.swift
│ │ │ ├── AirshipResponse.swift
│ │ │ ├── AirshipSDKExtension.swift
│ │ │ ├── AirshipSDKModule.swift
│ │ │ ├── AirshipSceneController.swift
│ │ │ ├── AirshipSceneManager.swift
│ │ │ ├── AirshipSimpleLayoutView.swift
│ │ │ ├── AirshipSimpleLayoutViewModel.swift
│ │ │ ├── AirshipStateOverrides.swift
│ │ │ ├── AirshipSwitchToggleStyle.swift
│ │ │ ├── AirshipSwizzler.swift
│ │ │ ├── AirshipTaskSleeper.swift
│ │ │ ├── AirshipTimeCriteria.swift
│ │ │ ├── AirshipTimerProtocol.swift
│ │ │ ├── AirshipToggle.swift
│ │ │ ├── AirshipUnsafeSendableWrapper.swift
│ │ │ ├── AirshipUtils.swift
│ │ │ ├── AirshipVersion.swift
│ │ │ ├── AirshipViewSizeReader.swift
│ │ │ ├── AirshipViewUtils.swift
│ │ │ ├── AirshipWeakValueHolder.swift
│ │ │ ├── AirshipWebview.swift
│ │ │ ├── AirshipWindowFactory.swift
│ │ │ ├── AirshipWorkManager.swift
│ │ │ ├── AirshipWorkManagerProtocol.swift
│ │ │ ├── AirshipWorkRequest.swift
│ │ │ ├── AirshipWorkResult.swift
│ │ │ ├── AirsihpTriggerContext.swift
│ │ │ ├── AnonContactData.swift
│ │ │ ├── AppIntegration.swift
│ │ │ ├── AppRemoteDataProviderDelegate.swift
│ │ │ ├── AppStateTracker.swift
│ │ │ ├── AppStateTrackerAdapter.swift
│ │ │ ├── ApplicationState.swift
│ │ │ ├── ArishipCustomViewManager.swift
│ │ │ ├── AssociatedIdentifiers.swift
│ │ │ ├── AsyncSerialQueue.swift
│ │ │ ├── AsyncStream.swift
│ │ │ ├── Atomic.swift
│ │ │ ├── AttributePendingMutations.swift
│ │ │ ├── AttributeUpdate.swift
│ │ │ ├── Attributes.swift
│ │ │ ├── AttributesEditor.swift
│ │ │ ├── AudienceDeviceInfoProvider.swift
│ │ │ ├── AudienceHashSelector.swift
│ │ │ ├── AudienceOverridesProvider.swift
│ │ │ ├── AudienceUtils.swift
│ │ │ ├── AuthToken.swift
│ │ │ ├── AutoIntegration.swift
│ │ │ ├── BackgroundColorViewModifier.swift
│ │ │ ├── Badger.swift
│ │ │ ├── BannerView.swift
│ │ │ ├── BaseCachingRemoteDataProvider.swift
│ │ │ ├── BasementImport.swift
│ │ │ ├── BasicToggleLayout.swift
│ │ │ ├── BlockAction.swift
│ │ │ ├── BundleExtensions.swift
│ │ │ ├── ButtonLayout.swift
│ │ │ ├── ButtonState.swift
│ │ │ ├── CachedList.swift
│ │ │ ├── CachedValue.swift
│ │ │ ├── CachingSMSValidatorAPIClient.swift
│ │ │ ├── CancellableValueHolder.swift
│ │ │ ├── ChallengeResolver.swift
│ │ │ ├── ChannelAPIClient.swift
│ │ │ ├── ChannelAudienceManager.swift
│ │ │ ├── ChannelAuthTokenAPIClient.swift
│ │ │ ├── ChannelAuthTokenProvider.swift
│ │ │ ├── ChannelBulkUpdateAPIClient.swift
│ │ │ ├── ChannelCapture.swift
│ │ │ ├── ChannelRegistrar.swift
│ │ │ ├── ChannelRegistrationPayload.swift
│ │ │ ├── ChannelScope.swift
│ │ │ ├── ChannelSubscriptionListProvider.swift
│ │ │ ├── ChannelType.swift
│ │ │ ├── Checkbox.swift
│ │ │ ├── CheckboxController.swift
│ │ │ ├── CheckboxState.swift
│ │ │ ├── CheckboxToggleLayout.swift
│ │ │ ├── CircularRegion.swift
│ │ │ ├── CloudSite.swift
│ │ │ ├── CompoundDeviceAudienceSelector.swift
│ │ │ ├── ContactAPIClient.swift
│ │ │ ├── ContactChannel.swift
│ │ │ ├── ContactChannelsAPIClient.swift
│ │ │ ├── ContactChannelsProvider.swift
│ │ │ ├── ContactConflictEvent.swift
│ │ │ ├── ContactManager.swift
│ │ │ ├── ContactManagerProtocol.swift
│ │ │ ├── ContactOperation.swift
│ │ │ ├── ContactRemoteDataProviderDelegate.swift
│ │ │ ├── ContactSubscriptionListClient.swift
│ │ │ ├── Container.swift
│ │ │ ├── CustomEvent.swift
│ │ │ ├── CustomView.swift
│ │ │ ├── DeepLinkAction.swift
│ │ │ ├── DeepLinkDelegate.swift
│ │ │ ├── DefaultAirshipAnalytics.swift
│ │ │ ├── DefaultAirshipChannel.swift
│ │ │ ├── DefaultAirshipContact.swift
│ │ │ ├── DefaultAirshipPush.swift
│ │ │ ├── DefaultAppIntegrationDelegate.swift
│ │ │ ├── DeferredAPIClient.swift
│ │ │ ├── DeferredResolver.swift
│ │ │ ├── DeviceAudienceChecker.swift
│ │ │ ├── DeviceAudienceSelector.swift
│ │ │ ├── DeviceTagSelector.swift
│ │ │ ├── Dispatcher.swift
│ │ │ ├── EmailRegistrationOptions.swift
│ │ │ ├── EmbeddedView.swift
│ │ │ ├── EmbeddedViewSelector.swift
│ │ │ ├── EmptyAction.swift
│ │ │ ├── EmptyView.swift
│ │ │ ├── EnableBehaviorModifiers.swift
│ │ │ ├── EnableFeatureAction.swift
│ │ │ ├── EnvironmentValues.swift
│ │ │ ├── EventAPIClient.swift
│ │ │ ├── EventHandlerViewModifier.swift
│ │ │ ├── EventManager.swift
│ │ │ ├── EventStore.swift
│ │ │ ├── EventUploadScheduler.swift
│ │ │ ├── EventUploadTuningInfo.swift
│ │ │ ├── EventUtils.swift
│ │ │ ├── Experiment.swift
│ │ │ ├── ExperimentDataProvider.swift
│ │ │ ├── ExperimentManager.swift
│ │ │ ├── ExternalURLProcessor.swift
│ │ │ ├── FarmHashFingerprint64.swift
│ │ │ ├── FetchDeviceInfoAction.swift
│ │ │ ├── FontViewModifier.swift
│ │ │ ├── FormController.swift
│ │ │ ├── FormInputViewModifier.swift
│ │ │ ├── HashChecker.swift
│ │ │ ├── IconView.swift
│ │ │ ├── Icons.swift
│ │ │ ├── Image.swift
│ │ │ ├── ImageButton.swift
│ │ │ ├── JSONMatcher.swift
│ │ │ ├── JSONPredicate.swift
│ │ │ ├── JSONValueMatcher.swift
│ │ │ ├── JSONValueMatcherPredicates.swift
│ │ │ ├── JSONValueTransformer.swift
│ │ │ ├── JavaScriptCommand.swift
│ │ │ ├── JavaScriptCommandDelegate.swift
│ │ │ ├── JavaScriptEnvironment.swift
│ │ │ ├── Label.swift
│ │ │ ├── LabelButton.swift
│ │ │ ├── LayoutState.swift
│ │ │ ├── LinearLayout.swift
│ │ │ ├── LiveActivity.swift
│ │ │ ├── LiveActivityRegistrationStatus.swift
│ │ │ ├── LiveActivityRegistrationStatusUpdates.swift
│ │ │ ├── LiveActivityRegistry.swift
│ │ │ ├── LiveActivityRestorer.swift
│ │ │ ├── LiveActivityUpdate.swift
│ │ │ ├── LocaleManager.swift
│ │ │ ├── Media.swift
│ │ │ ├── MediaEventTemplate.swift
│ │ │ ├── MessageCriteria.swift
│ │ │ ├── MessageDisplayHistory.swift
│ │ │ ├── MeteredUsageAPIClient.swift
│ │ │ ├── MeteredUsageStore.swift
│ │ │ ├── ModalView.swift
│ │ │ ├── ModifyAttributesAction.swift
│ │ │ ├── ModifyTagsAction.swift
│ │ │ ├── ModuleLoader.swift
│ │ │ ├── NativeBridge.swift
│ │ │ ├── NativeBridgeActionHandler.swift
│ │ │ ├── NativeBridgeActionRunner.swift
│ │ │ ├── NativeBridgeDelegate.swift
│ │ │ ├── NativeBridgeExtensionDelegate.swift
│ │ │ ├── NativeVideoPlayer.swift
│ │ │ ├── NotificationCategories.swift
│ │ │ ├── NotificationPermissionDelegate.swift
│ │ │ ├── NotificationRegistrar.swift
│ │ │ ├── NotificationRegistrationResult.swift
│ │ │ ├── OpenExternalURLAction.swift
│ │ │ ├── OpenRegistrationOptions.swift
│ │ │ ├── Pager.swift
│ │ │ ├── PagerController.swift
│ │ │ ├── PagerGestureMap.swift
│ │ │ ├── PagerIndicator.swift
│ │ │ ├── PagerState.swift
│ │ │ ├── PagerSwipeDirection.swift
│ │ │ ├── PagerUtils.swift
│ │ │ ├── PasteboardAction.swift
│ │ │ ├── Permission.swift
│ │ │ ├── PermissionDelegate.swift
│ │ │ ├── PermissionPrompter.swift
│ │ │ ├── PermissionStatus.swift
│ │ │ ├── PermissionsManager.swift
│ │ │ ├── PreferenceDataStore.swift
│ │ │ ├── PromptPermissionAction.swift
│ │ │ ├── ProximityRegion.swift
│ │ │ ├── PushNotificationDelegate.swift
│ │ │ ├── RadioInput.swift
│ │ │ ├── RadioInputController.swift
│ │ │ ├── RadioInputState.swift
│ │ │ ├── RadioInputToggleLayout.swift
│ │ │ ├── RateAppAction.swift
│ │ │ ├── RegionEvent.swift
│ │ │ ├── RegistrationDelegate.swift
│ │ │ ├── RemoteConfig.swift
│ │ │ ├── RemoteConfigCache.swift
│ │ │ ├── RemoteConfigManager.swift
│ │ │ ├── RemoteData.swift
│ │ │ ├── RemoteDataAPIClient.swift
│ │ │ ├── RemoteDataInfo.swift
│ │ │ ├── RemoteDataPayload.swift
│ │ │ ├── RemoteDataProtocol.swift
│ │ │ ├── RemoteDataProvider.swift
│ │ │ ├── RemoteDataProviderDelegate.swift
│ │ │ ├── RemoteDataProviderProtocol.swift
│ │ │ ├── RemoteDataSource.swift
│ │ │ ├── RemoteDataSourceStatus.swift
│ │ │ ├── RemoteDataStore.swift
│ │ │ ├── RemoteDataStorePayload.swift
│ │ │ ├── RemoteDataURLFactory.swift
│ │ │ ├── RemoveTagsAction.swift
│ │ │ ├── RetailEventTemplate.swift
│ │ │ ├── RootView.swift
│ │ │ ├── RuntimeConfig.swift
│ │ │ ├── SMSRegistrationOptions.swift
│ │ │ ├── SMSValidatorAPIClient.swift
│ │ │ ├── ScopedSubscriptionListEdit.swift
│ │ │ ├── ScopedSubscriptionListEditor.swift
│ │ │ ├── ScopedSubscriptionListUpdate.swift
│ │ │ ├── Score.swift
│ │ │ ├── ScoreController.swift
│ │ │ ├── ScoreState.swift
│ │ │ ├── ScoreToggleLayout.swift
│ │ │ ├── ScrollLayout.swift
│ │ │ ├── SearchEventTemplate.swift
│ │ │ ├── SerialQueue.swift
│ │ │ ├── SessionEvent.swift
│ │ │ ├── SessionEventFactory.swift
│ │ │ ├── SessionState.swift
│ │ │ ├── SessionTracker.swift
│ │ │ ├── Shapes.swift
│ │ │ ├── ShareAction.swift
│ │ │ ├── SmsLocalePicker.swift
│ │ │ ├── StackImageButton.swift
│ │ │ ├── StateController.swift
│ │ │ ├── StateSubscriptionsModifier.swift
│ │ │ ├── StoryIndicator.swift
│ │ │ ├── SubjectExtension.swift
│ │ │ ├── SubscriptionListAPIClient.swift
│ │ │ ├── SubscriptionListAction.swift
│ │ │ ├── SubscriptionListEdit.swift
│ │ │ ├── SubscriptionListEditor.swift
│ │ │ ├── SubscriptionListProvider.swift
│ │ │ ├── SubscriptionListUpdate.swift
│ │ │ ├── TagActionMutation.swift
│ │ │ ├── TagEditor.swift
│ │ │ ├── TagGroupMutations.swift
│ │ │ ├── TagGroupUpdate.swift
│ │ │ ├── TagGroupsEditor.swift
│ │ │ ├── TagsActionArgs.swift
│ │ │ ├── TextInput.swift
│ │ │ ├── Thomas.swift
│ │ │ ├── ThomasAccessibilityAction.swift
│ │ │ ├── ThomasAccessibleInfo.swift
│ │ │ ├── ThomasActionsPayload.swift
│ │ │ ├── ThomasAssociatedLabelResolver.swift
│ │ │ ├── ThomasAsyncImage.swift
│ │ │ ├── ThomasAttributeName.swift
│ │ │ ├── ThomasAttributeValue.swift
│ │ │ ├── ThomasAutomatedAccessibilityAction.swift
│ │ │ ├── ThomasAutomatedAction.swift
│ │ │ ├── ThomasBorder.swift
│ │ │ ├── ThomasButtonClickBehavior.swift
│ │ │ ├── ThomasButtonTapEffect.swift
│ │ │ ├── ThomasColor.swift
│ │ │ ├── ThomasConstants.swift
│ │ │ ├── ThomasConstrainedSize.swift
│ │ │ ├── ThomasDelegate.swift
│ │ │ ├── ThomasDirection.swift
│ │ │ ├── ThomasDisplayListener.swift
│ │ │ ├── ThomasEmailRegistrationOptions.swift
│ │ │ ├── ThomasEnableBehavior.swift
│ │ │ ├── ThomasEnvironment.swift
│ │ │ ├── ThomasEvent.swift
│ │ │ ├── ThomasEventHandler.swift
│ │ │ ├── ThomasFormDataCollector.swift
│ │ │ ├── ThomasFormField.swift
│ │ │ ├── ThomasFormFieldProcessor.swift
│ │ │ ├── ThomasFormPayloadGenerator.swift
│ │ │ ├── ThomasFormResult.swift
│ │ │ ├── ThomasFormState.swift
│ │ │ ├── ThomasFormStatus.swift
│ │ │ ├── ThomasFormSubmitBehavior.swift
│ │ │ ├── ThomasFormValidationMode.swift
│ │ │ ├── ThomasIcon.swift
│ │ │ ├── ThomasLayoutButtonTapEvent.swift
│ │ │ ├── ThomasLayoutContext.swift
│ │ │ ├── ThomasLayoutDisplayEvent.swift
│ │ │ ├── ThomasLayoutEvent.swift
│ │ │ ├── ThomasLayoutEventContext.swift
│ │ │ ├── ThomasLayoutEventMessageID.swift
│ │ │ ├── ThomasLayoutEventRecorder.swift
│ │ │ ├── ThomasLayoutEventSource.swift
│ │ │ ├── ThomasLayoutFormDisplayEvent.swift
│ │ │ ├── ThomasLayoutFormResultEvent.swift
│ │ │ ├── ThomasLayoutGestureEvent.swift
│ │ │ ├── ThomasLayoutPageActionEvent.swift
│ │ │ ├── ThomasLayoutPageSwipeEvent.swift
│ │ │ ├── ThomasLayoutPageViewEvent.swift
│ │ │ ├── ThomasLayoutPagerCompletedEvent.swift
│ │ │ ├── ThomasLayoutPagerSummaryEvent.swift
│ │ │ ├── ThomasLayoutPermissionResultEvent.swift
│ │ │ ├── ThomasLayoutResolutionEvent.swift
│ │ │ ├── ThomasMargin.swift
│ │ │ ├── ThomasMarkdownOptions.swift
│ │ │ ├── ThomasMediaFit.swift
│ │ │ ├── ThomasOrientation.swift
│ │ │ ├── ThomasPagerControllerBranching.swift
│ │ │ ├── ThomasPagerTracker.swift
│ │ │ ├── ThomasPlatform.swift
│ │ │ ├── ThomasPosition.swift
│ │ │ ├── ThomasPresentationInfo.swift
│ │ │ ├── ThomasPropertyOverride.swift
│ │ │ ├── ThomasSerializable.swift
│ │ │ ├── ThomasShadow.swift
│ │ │ ├── ThomasShapeInfo.swift
│ │ │ ├── ThomasSize.swift
│ │ │ ├── ThomasSizeConstraint.swift
│ │ │ ├── ThomasSmsLocale.swift
│ │ │ ├── ThomasState.swift
│ │ │ ├── ThomasStateAction.swift
│ │ │ ├── ThomasStateStorage.swift
│ │ │ ├── ThomasStateTrigger.swift
│ │ │ ├── ThomasTextAppearance.swift
│ │ │ ├── ThomasToggleStyleInfo.swift
│ │ │ ├── ThomasValidationInfo.swift
│ │ │ ├── ThomasViewController.swift
│ │ │ ├── ThomasViewInfo.swift
│ │ │ ├── ThomasViewedPageInfo.swift
│ │ │ ├── ThomasVisibilityInfo.swift
│ │ │ ├── ThomasWindowSize.swift
│ │ │ ├── ToggleLayout.swift
│ │ │ ├── TouchViewModifier.swift
│ │ │ ├── UAAppIntegrationDelegate.swift
│ │ │ ├── UACoreData.swift
│ │ │ ├── UARemoteDataMapping.swift
│ │ │ ├── UNNotificationRegistrar.swift
│ │ │ ├── URLAllowList.swift
│ │ │ ├── UrlInfo.swift
│ │ │ ├── ValidatableHelper.swift
│ │ │ ├── VideoController.swift
│ │ │ ├── VideoGroupState.swift
│ │ │ ├── VideoMediaNativeView.swift
│ │ │ ├── VideoMediaWebView.swift
│ │ │ ├── VideoState.swift
│ │ │ ├── ViewConstraints.swift
│ │ │ ├── ViewExtensions.swift
│ │ │ ├── ViewFactory.swift
│ │ │ ├── VisibilityViewModifier.swift
│ │ │ ├── WorkBackgroundTasks.swift
│ │ │ ├── WorkConditionsMonitor.swift
│ │ │ ├── WorkRateLimiterActor.swift
│ │ │ ├── Worker.swift
│ │ │ └── WrappingLayout.swift
│ │ └── Tests/
│ │ ├── APNSEnvironmentTest.swift
│ │ ├── AccountEventTemplateTest.swift
│ │ ├── ActionArgumentsTest.swift
│ │ ├── ActionRegistryTest.swift
│ │ ├── AddCustomEventActionTest.swift
│ │ ├── AddTagsActionTest.swift
│ │ ├── AirshipAnalyticFeedTest.swift
│ │ ├── AirshipAsyncChannelTest.swift
│ │ ├── AirshipBase64Test.swift
│ │ ├── AirshipBaseTest.swift
│ │ ├── AirshipCacheTest.swift
│ │ ├── AirshipColorTests.swift
│ │ ├── AirshipConfigTest.swift
│ │ ├── AirshipContactTest.swift
│ │ ├── AirshipDateFormatterTest.swift
│ │ ├── AirshipDeviceIDTest.swift
│ │ ├── AirshipEventsTest.swift
│ │ ├── AirshipHTTPResponseTest.swift
│ │ ├── AirshipIvyVersionMatcherTest.swift
│ │ ├── AirshipJSONTest.swift
│ │ ├── AirshipJSONUtilsTest.swift
│ │ ├── AirshipLocaleManagerTest.swift
│ │ ├── AirshipLocalizationUtilsTest.swift
│ │ ├── AirshipMeteredUsageTest.swift
│ │ ├── AirshipPrivacyManagerTest.swift
│ │ ├── AirshipPushTest.swift
│ │ ├── AirshipTest.swift
│ │ ├── AirshipURLAllowListTest.swift
│ │ ├── AirshipUtilsTest.swift
│ │ ├── AishipFontTests.swift
│ │ ├── Analytics/
│ │ │ ├── Events/
│ │ │ │ ├── ThomasLayoutButtonTapEventTest.swift
│ │ │ │ ├── ThomasLayoutDisplayEventTest.swift
│ │ │ │ ├── ThomasLayoutEventTestUtils.swift
│ │ │ │ ├── ThomasLayoutFormDisplayEventTest.swift
│ │ │ │ ├── ThomasLayoutFormResultEventTest.swift
│ │ │ │ ├── ThomasLayoutGestureEventTest.swift
│ │ │ │ ├── ThomasLayoutPageActionEventTest.swift
│ │ │ │ ├── ThomasLayoutPageSwipeEventAction.swift
│ │ │ │ ├── ThomasLayoutPageViewEventTest.swift
│ │ │ │ ├── ThomasLayoutPagerCompletedEventTest.swift
│ │ │ │ ├── ThomasLayoutPagerSummaryEventTest.swift
│ │ │ │ ├── ThomasLayoutPermissionResultEventTest.swift
│ │ │ │ └── ThomasLayoutResolutionEventTest.swift
│ │ │ ├── ThomasDisplayListenerTest.swift
│ │ │ ├── ThomasLayoutEventContextTest.swift
│ │ │ ├── ThomasLayoutEventMessageIDTest.swift
│ │ │ └── ThomasLayoutEventRecorderTest.swift
│ │ ├── AnalyticsTest.swift
│ │ ├── AppIntegrationTests.swift
│ │ ├── AppRemoteDataProviderDelegateTest.swift
│ │ ├── AppStateTrackerTest.swift
│ │ ├── AssociatedIdentifiersTest.swift
│ │ ├── AttributeEditorTest.swift
│ │ ├── AttributeUpdateTest.swift
│ │ ├── AudienceHashSelectorTest.swift
│ │ ├── AudienceUtilsTest.swift
│ │ ├── CachedListTest.swift
│ │ ├── CachedValueTest.swift
│ │ ├── ChallengeResolverTest.swift
│ │ ├── ChannelAPIClientTest.swift
│ │ ├── ChannelAudienceManagerTest.swift
│ │ ├── ChannelAuthTokenAPIClientTest.swift
│ │ ├── ChannelAuthTokenProviderTest.swift
│ │ ├── ChannelBulkUpdateAPIClientTest.swift
│ │ ├── ChannelCaptureTest.swift
│ │ ├── ChannelRegistrarTest.swift
│ │ ├── ChannelRegistrationPayloadTest.swift
│ │ ├── ChannelTest.swift
│ │ ├── CircularRegionTest.swift
│ │ ├── CompoundDeviceAudienceSelectorTest.swift
│ │ ├── ContactAPIClientTest.swift
│ │ ├── ContactChannelsProviderTest.swift
│ │ ├── ContactManagerTest.swift
│ │ ├── ContactOperationTest.swift
│ │ ├── ContactRemoteDataProviderTest.swift
│ │ ├── ContactSubscriptionListAPIClientTest.swift
│ │ ├── CustomEventTest.swift
│ │ ├── CustomNotificationCategories.plist
│ │ ├── DeepLinkActionTest.swift
│ │ ├── DeepLinkHandlerTest.swift
│ │ ├── DefaultAirshipRequestSessionTest.swift
│ │ ├── DefaultAppIntegrationDelegateTest.swift
│ │ ├── DefaultTaskSleeperTest.swift
│ │ ├── DeferredAPIClientTest.swift
│ │ ├── DeferredResolverTest.swift
│ │ ├── DeviceAudienceSelectorTest.swift
│ │ ├── DeviceTagSelectorTest.swift
│ │ ├── EnableFeatureActionTest.swift
│ │ ├── Environment/
│ │ │ ├── ThomasEnvironmentTest.swift
│ │ │ ├── ThomasFormDataCollectorTest.swift
│ │ │ ├── ThomasFormFieldProcessorTest.swift
│ │ │ ├── ThomasFormFieldTest.swift
│ │ │ ├── ThomasFormPayloadGeneratorTest.swift
│ │ │ ├── ThomasFormStateTest.swift
│ │ │ ├── ThomasPagerTrackerTest.swift
│ │ │ └── ThomasStateTest.swift
│ │ ├── EventAPIClientTest.swift
│ │ ├── EventManagerTest.swift
│ │ ├── EventSchedulerTest.swift
│ │ ├── EventStoreTest.swift
│ │ ├── EventTestUtils.swift
│ │ ├── ExperimentManagerTest.swift
│ │ ├── ExperimentTest.swift
│ │ ├── FarmHashFingerprint64Test.swift
│ │ ├── FetchDeviceInfoActionTest.swift
│ │ ├── HashCheckerTest.swift
│ │ ├── Info.plist
│ │ ├── Input Validation/
│ │ │ ├── AirshipInputValidationTest.swift
│ │ │ ├── CachingSMSValidatorAPIClientTest.swift
│ │ │ ├── SMSValidatorAPIClientTest.swift
│ │ │ └── TestSMSValidatorAPIClient.swift
│ │ ├── JSONPredicateTest.swift
│ │ ├── JavaScriptCommandTest.swift
│ │ ├── JsonMatcherTest.swift
│ │ ├── JsonValueMatcherTest.swift
│ │ ├── LayoutModelsTest.swift
│ │ ├── LiveActivityRegistryTest.swift
│ │ ├── MediaEventTemplateTest.swift
│ │ ├── MeteredUsageApiClientTest.swift
│ │ ├── ModifyAttributesActionTest.swift
│ │ ├── ModifyTagsActionTest.swift
│ │ ├── NativeBridgeActionHandlerTest.swift
│ │ ├── NotificationCategoriesTest.swift
│ │ ├── OpenExternalURLActionTest.swift
│ │ ├── PagerControllerTest.swift
│ │ ├── PasteboardActionTest.swift
│ │ ├── PermissionsManagerTests.swift
│ │ ├── PreferenceDataStoreTest.swift
│ │ ├── PromptPermissionActionTest.swift
│ │ ├── ProximityRegionTest.swift
│ │ ├── RateAppActionTest.swift
│ │ ├── RegionEventTest.swift
│ │ ├── RemoteConfigManagerTest.swift
│ │ ├── RemoteConfigTest.swift
│ │ ├── RemoteDataAPIClientTest.swift
│ │ ├── RemoteDataProviderTest.swift
│ │ ├── RemoteDataStoreTest.swift
│ │ ├── RemoteDataTest.swift
│ │ ├── RemoteDataTestUtils.swift
│ │ ├── RemoteDataURLFactoryTest.swift
│ │ ├── RemoveTagsActionTest.swift
│ │ ├── RetailEventTemplateTest.swift
│ │ ├── RuntimeConfig.swift
│ │ ├── RuntimeConfigTest.swift
│ │ ├── SearchEventTemplateTest.swift
│ │ ├── SessionTrackerTest.swift
│ │ ├── ShareActionTest.swift
│ │ ├── SubscriptionListAPIClientTest.swift
│ │ ├── SubscriptionListActionTest.swift
│ │ ├── Support/
│ │ │ ├── AirshipConfig-Valid-Legacy.plist
│ │ │ ├── AirshipConfig-Valid.plist
│ │ │ ├── TestAppStateTracker.swift
│ │ │ ├── airship.der
│ │ │ ├── development-embedded.mobileprovision
│ │ │ ├── production-embedded.mobileprovision
│ │ │ └── testMCColorsCatalog.xcassets/
│ │ │ ├── Contents.json
│ │ │ └── seapunkTestColor.colorset/
│ │ │ └── Contents.json
│ │ ├── TagEditorTest.swift
│ │ ├── TagGroupsEditorTest.swift
│ │ ├── TestAirshipInstance.swift
│ │ ├── TestAirshipRequestSession.swift
│ │ ├── TestAnalytics.swift
│ │ ├── TestAudienceChecker.swift
│ │ ├── TestCache.swift
│ │ ├── TestChannel.swift
│ │ ├── TestChannelAudienceManager.swift
│ │ ├── TestChannelAuthTokenAPIClient.swift
│ │ ├── TestChannelBulkUpdateAPIClient.swift
│ │ ├── TestChannelRegistrar.swift
│ │ ├── TestContact.swift
│ │ ├── TestContactAPIClient.swift
│ │ ├── TestContactSubscriptionListAPIClient.swift
│ │ ├── TestDate.swift
│ │ ├── TestDeferredResolver.swift
│ │ ├── TestDispatcher.swift
│ │ ├── TestExperimentDataProvider.swift
│ │ ├── TestKeychainAccess.swift
│ │ ├── TestLocaleManager.swift
│ │ ├── TestNetworkMonitor.swift
│ │ ├── TestPermissionPrompter.swift
│ │ ├── TestPrivacyManager.swift
│ │ ├── TestPush.swift
│ │ ├── TestRemoteData.swift
│ │ ├── TestRemoteDataAPIClient.swift
│ │ ├── TestSubscriptionListAPIClient.swift
│ │ ├── TestThomasLayoutEvent.swift
│ │ ├── TestURLAllowList.swift
│ │ ├── TestURLOpener.swift
│ │ ├── TestWorkManager.swift
│ │ ├── TestWorkRateLimiterActor.swift
│ │ ├── ThomasPresentationModelCodingTest.swift
│ │ ├── ThomasValidationTests.swift
│ │ ├── ThomasViewModelTest.swift
│ │ ├── Types/
│ │ │ ├── PagerDisableSwipeSelectorTest.swift
│ │ │ └── ThomasEmailRegistrationOptionsTest.swift
│ │ ├── VideoMediaWebViewTests.swift
│ │ └── WorkManager/
│ │ └── WorkRateLimiterTests.swift
│ ├── AirshipDebug/
│ │ ├── Info.plist
│ │ ├── Resources/
│ │ │ ├── AirshipDebugEventData.xcdatamodeld/
│ │ │ │ └── AirshipEventData.xcdatamodel/
│ │ │ │ └── contents
│ │ │ └── AirshipDebugPushData.xcdatamodeld/
│ │ │ └── AirshipDebugPushData.xcdatamodel/
│ │ │ └── contents
│ │ └── Source/
│ │ ├── AirshipDebugManager.swift
│ │ ├── AirshipDebugResources.swift
│ │ ├── DebugComponent.swift
│ │ ├── DebugSDKModule.swift
│ │ ├── Events/
│ │ │ ├── AirshipEvent.swift
│ │ │ ├── EventData.swift
│ │ │ └── EventDataManager.swift
│ │ ├── Push/
│ │ │ ├── PushData+CoreDataClass.swift
│ │ │ ├── PushData+CoreDataProperties.swift
│ │ │ ├── PushDataManager.swift
│ │ │ └── PushNotification.swift
│ │ ├── ShakeUtils.swift
│ │ └── View/
│ │ ├── AirshipDebugContentView.swift
│ │ ├── AirshipDebugRoute.swift
│ │ ├── AirshipDebugView.swift
│ │ ├── AirshipoDebugTriggers.swift
│ │ ├── Analytics/
│ │ │ ├── AirshipDebugAddEventView.swift
│ │ │ ├── AirshipDebugAnalyticIdentifierEditorView.swift
│ │ │ ├── AirshipDebugAnalyticsView.swift
│ │ │ ├── AirshipDebugEventDetailsView.swift
│ │ │ └── AirshipDebugEventsView.swift
│ │ ├── AppInfo/
│ │ │ └── AirshipDebugAppInfoView.swift
│ │ ├── Automations/
│ │ │ ├── AirshipDebugAutomationsView.swift
│ │ │ ├── AirshipDebugExperimentsView.swift
│ │ │ └── AirshipDebugInAppExperiencesView.swift
│ │ ├── Channel/
│ │ │ ├── AirshipDebugChannelSubscriptionsView.swift
│ │ │ ├── AirshipDebugChannelTagView.swift
│ │ │ └── AirshipDebugChannelView.swift
│ │ ├── Common/
│ │ │ ├── AirshipDebugAddPropertyView.swift
│ │ │ ├── AirshipDebugAddStringPropertyView.swift
│ │ │ ├── AirshipDebugAttributesEditorView.swift
│ │ │ ├── AirshipDebugAudienceSubject.swift
│ │ │ ├── AirshipDebugExtensions.swift
│ │ │ ├── AirshipDebugTagGroupsEditorView.swift
│ │ │ ├── AirshipJSONDetailsView.swift
│ │ │ ├── AirshipJSONView.swift
│ │ │ ├── AirshipToast.swift
│ │ │ └── Extensions.swift
│ │ ├── Contact/
│ │ │ ├── AirshipDebugAddEmailChannelView.swift
│ │ │ ├── AirshipDebugAddOpenChannelView.swift
│ │ │ ├── AirshipDebugAddSMSChannelView.swift
│ │ │ ├── AirshipDebugContactSubscriptionEditorView.swift
│ │ │ ├── AirshipDebugContactView.swift
│ │ │ └── AirshipDebugNamedUserView.swift
│ │ ├── FeatureFlags/
│ │ │ ├── AirshipDebugFeatureFlagDetailsView.swift
│ │ │ └── AirshipDebugFeatureFlagView.swift
│ │ ├── PreferenceCenter/
│ │ │ ├── AirshipDebugPreferencCenterItemView.swift
│ │ │ └── AirshipDebugPreferenceCenterView.swift
│ │ ├── PrivacyManager/
│ │ │ └── AirshipDebugPrivacyManagerView.swift
│ │ ├── Push/
│ │ │ ├── AirshipDebugPushDetailsView.swift
│ │ │ ├── AirshipDebugPushView.swift
│ │ │ └── AirshipDebugReceivedPushView.swift
│ │ └── TvOSComponents/
│ │ ├── TVDatePicker.swift
│ │ └── TVSlider.swift
│ ├── AirshipFeatureFlags/
│ │ ├── Info.plist
│ │ ├── Source/
│ │ │ ├── AirshipFeatureFlagsSDKModule.swift
│ │ │ ├── DeferredFlagResolver.swift
│ │ │ ├── FeatureFlag.swift
│ │ │ ├── FeatureFlagAnalytics.swift
│ │ │ ├── FeatureFlagComponent.swift
│ │ │ ├── FeatureFlagManager.swift
│ │ │ ├── FeatureFlagManagerProtocol.swift
│ │ │ ├── FeatureFlagPayload.swift
│ │ │ ├── FeatureFlagResultCache.swift
│ │ │ ├── FeatureFlagUpdateStatus.swift
│ │ │ └── FeatureFlagsRemoteDataAccess.swift
│ │ └── Tests/
│ │ ├── FeatureFlagAnalyticsTest.swift
│ │ ├── FeatureFlagDeferredResolverTest.swift
│ │ ├── FeatureFlagInfoTest.swift
│ │ ├── FeatureFlagManagerTest.swift
│ │ ├── FeatureFlagRemoteDataAccessTest.swift
│ │ ├── FeatureFlagResultCacheTest.swift
│ │ └── FeatureFlagVariablesTest.swift
│ ├── AirshipMessageCenter/
│ │ ├── Info.plist
│ │ ├── Resources/
│ │ │ ├── TestAssets.xcassets/
│ │ │ │ ├── Contents.json
│ │ │ │ └── testNamedColor.colorset/
│ │ │ │ └── Contents.json
│ │ │ ├── UAInbox.xcdatamodeld/
│ │ │ │ ├── .xccurrentversion
│ │ │ │ ├── UAInbox 2.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAInbox 3.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ ├── UAInbox 4.xcdatamodel/
│ │ │ │ │ └── contents
│ │ │ │ └── UAInbox.xcdatamodel/
│ │ │ │ └── contents
│ │ │ ├── UAInboxDataMappingV1toV4.xcmappingmodel/
│ │ │ │ └── xcmapping.xml
│ │ │ ├── UAInboxDataMappingV2toV4.xcmappingmodel/
│ │ │ │ └── xcmapping.xml
│ │ │ └── UAInboxDataMappingV3toV4.xcmappingmodel/
│ │ │ └── xcmapping.xml
│ │ ├── Source/
│ │ │ ├── AirshipMessageCenterResources.swift
│ │ │ ├── MessageCenter.swift
│ │ │ ├── MessageCenterAPIClient.swift
│ │ │ ├── MessageCenterAction.swift
│ │ │ ├── MessageCenterComponent.swift
│ │ │ ├── MessageCenterList.swift
│ │ │ ├── MessageCenterNativeBridgeExtension.swift
│ │ │ ├── MessageCenterPredicate.swift
│ │ │ ├── MessageCenterSDKModule.swift
│ │ │ ├── MessageCenterStore.swift
│ │ │ ├── MessageViewAnalytics.swift
│ │ │ ├── Model/
│ │ │ │ ├── InboxMessageData.swift
│ │ │ │ ├── MessageCenterMessage.swift
│ │ │ │ ├── MessageCenterUser.swift
│ │ │ │ └── UAInboxDataMapping.swift
│ │ │ ├── StateStore/
│ │ │ │ └── NativeLayoutPersistentDataStore.swift
│ │ │ ├── Theme/
│ │ │ │ ├── MessageCenterNavigationAppearance.swift
│ │ │ │ ├── MessageCenterTheme.swift
│ │ │ │ └── MessageCenterThemeLoader.swift
│ │ │ ├── ViewModel/
│ │ │ │ └── MessageCenterListItemViewModel.swift
│ │ │ └── Views/
│ │ │ ├── MessageCenter/
│ │ │ │ ├── MessageCenterContent.swift
│ │ │ │ ├── MessageCenterController.swift
│ │ │ │ ├── MessageCenterNavigationStack.swift
│ │ │ │ ├── MessageCenterSplitNavigationView.swift
│ │ │ │ ├── MessageCenterUIKitAppearance.swift
│ │ │ │ └── MessageCenterView.swift
│ │ │ ├── MessageCenterViewController.swift
│ │ │ ├── MessageList/
│ │ │ │ ├── MessageCenterListItemView.swift
│ │ │ │ ├── MessageCenterListView.swift
│ │ │ │ ├── MessageCenterListViewModel.swift
│ │ │ │ └── MessageCenterListViewWithNavigation.swift
│ │ │ ├── MessageView/
│ │ │ │ ├── MessageCenterMessageError.swift
│ │ │ │ ├── MessageCenterMessageView.swift
│ │ │ │ ├── MessageCenterMessageViewModel.swift
│ │ │ │ ├── MessageCenterMessageViewWithNavigation.swift
│ │ │ │ ├── MessageCenterThomasView.swift
│ │ │ │ └── MessageCenterWebView.swift
│ │ │ └── Shared/
│ │ │ └── MessageCenterBackButton.swift
│ │ └── Tests/
│ │ ├── MessageCenterAPIClientTest.swift
│ │ ├── MessageCenterListTests.swift
│ │ ├── MessageCenterMessageTest.swift
│ │ ├── MessageCenterStoreTest.swift
│ │ ├── MessageCenterThemeLoaderTest.swift
│ │ └── MessageViewAnalyticsTest.swift
│ ├── AirshipObjectiveC/
│ │ └── Source/
│ │ ├── Analytics/
│ │ │ ├── Events/
│ │ │ │ ├── Templates/
│ │ │ │ │ ├── UAAccountEventTemplate.swift
│ │ │ │ │ ├── UAMediaEventTemplate.swift
│ │ │ │ │ ├── UARetailEventTemplate.swift
│ │ │ │ │ └── UASearchEventTemplate.swift
│ │ │ │ └── UACustomEvent.swift
│ │ │ ├── UAAnalytics.swift
│ │ │ └── UAAssociatedIdentifiers.swift
│ │ ├── Automation/
│ │ │ ├── UAInAppAutomation.swift
│ │ │ └── UAInAppMessaging.swift
│ │ ├── Channel/
│ │ │ ├── UAAttributesEditor.swift
│ │ │ ├── UAChannel.swift
│ │ │ ├── UATagEditor.swift
│ │ │ └── UATagGroupsEditor.swift
│ │ ├── Contact/
│ │ │ └── UAContact.swift
│ │ ├── Embedded/
│ │ │ └── UAEmbeddedViewController.swift
│ │ ├── MessageCenter/
│ │ │ ├── UAMessageCenter.swift
│ │ │ ├── UAMessageCenterList.swift
│ │ │ ├── UAMessageCenterMessage.swift
│ │ │ ├── UAMessageCenterNativeBridge.swift
│ │ │ ├── UAMessageCenterTheme.swift
│ │ │ ├── UAMessageCenterUser.swift
│ │ │ └── UAMessageCenterViewController.swift
│ │ ├── PreferenceCenter/
│ │ │ ├── UAPreferenceCenter.swift
│ │ │ └── UAPreferenceCenterViewController.swift
│ │ ├── PrivacyManager/
│ │ │ └── UAPrivacyManager.swift
│ │ ├── Push/
│ │ │ ├── UAAuthorizedNotificationSettings.swift
│ │ │ ├── UANotificationCategories.swift
│ │ │ ├── UAPush.swift
│ │ │ ├── UAPushNotificationDelegate.swift
│ │ │ ├── UAPushNotificationStatus.swift
│ │ │ └── UARegistrationDelegate.swift
│ │ ├── Subscription Lists/
│ │ │ ├── UAScopedSubscriptionListEditor.swift
│ │ │ └── UASubscriptionListEditor.swift
│ │ ├── UAAppIntegration.swift
│ │ ├── UAConfig.swift
│ │ ├── UADeepLinkDelegate.swift
│ │ ├── UAFeature.swift
│ │ ├── UAPermission.swift
│ │ ├── UAPermissionsManager.swift
│ │ └── UAirship.swift
│ └── AirshipPreferenceCenter/
│ ├── Info.plist
│ ├── Source/
│ │ ├── AirshipPreferenceCenterResources.swift
│ │ ├── PreferenceCenter.swift
│ │ ├── PreferenceCenterComponent.swift
│ │ ├── PreferenceCenterSDKModule.swift
│ │ ├── data/
│ │ │ ├── PreferenceCenterConfig+ContactManagement.swift
│ │ │ ├── PreferenceCenterConfig.swift
│ │ │ ├── PreferenceCenterDecoder.swift
│ │ │ └── PreferenceCenterResponse.swift
│ │ ├── theme/
│ │ │ ├── PreferenceCenterTheme.swift
│ │ │ └── PreferenceCenterThemeLoader.swift
│ │ └── view/
│ │ ├── ChannelSubscriptionView.swift
│ │ ├── CommonSectionView.swift
│ │ ├── ConditionsMonitor.swift
│ │ ├── ConditionsViewModifier.swift
│ │ ├── Contact management/
│ │ │ ├── AddChannelPromptView.swift
│ │ │ ├── AddChannelPromptViewModel.swift
│ │ │ ├── ChannelListView.swift
│ │ │ ├── ChannelListViewCell.swift
│ │ │ ├── Component Views/
│ │ │ │ ├── BackgroundShape.swift
│ │ │ │ ├── ChannelTextField.swift
│ │ │ │ ├── EmptySectionLabel.swift
│ │ │ │ ├── ErrorLabel.swift
│ │ │ │ └── PreferenceCloseButton.swift
│ │ │ ├── ContactManagementView.swift
│ │ │ └── FooterView.swift
│ │ ├── ContactSubscriptionGroupView.swift
│ │ ├── ContactSubscriptionView.swift
│ │ ├── LabeledSectionBreakView.swift
│ │ ├── PreferenceCenterAlertView.swift
│ │ ├── PreferenceCenterContent.swift
│ │ ├── PreferenceCenterContentLoader.swift
│ │ ├── PreferenceCenterContentStyle.swift
│ │ ├── PreferenceCenterState.swift
│ │ ├── PreferenceCenterUtils.swift
│ │ ├── PreferenceCenterView.swift
│ │ ├── PreferenceCenterViewControllerFactory.swift
│ │ └── PreferenceCenterViewExtensions.swift
│ └── Tests/
│ ├── Info.plist
│ ├── PreferenceCenterTest.swift
│ ├── data/
│ │ └── PreferenceCenterConfigTest.swift
│ ├── test data/
│ │ ├── TestLegacyTheme.plist
│ │ ├── TestTheme.plist
│ │ ├── TestThemeEmpty.plist
│ │ └── TestThemeInvalid.plist
│ ├── theme/
│ │ └── PreferenceThemeLoaderTest.swift
│ └── view/
│ └── PreferenceCenterStateTest.swift
├── Airship.podspec
├── Airship.xcworkspace/
│ ├── contents.xcworkspacedata
│ └── xcshareddata/
│ ├── IDEWorkspaceChecks.plist
│ ├── WorkspaceSettings.xcsettings
│ └── swiftpm/
│ └── Package.resolved
├── AirshipExtensions/
│ ├── AirshipExtensions.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── xcshareddata/
│ │ └── xcschemes/
│ │ └── AirshipNotificationServiceExtension.xcscheme
│ └── AirshipNotificationServiceExtension/
│ ├── Info.plist
│ ├── Source/
│ │ ├── AirshipExtensionConfig.swift
│ │ ├── AirshipExtensionLogger.swift
│ │ ├── AirshipNotificationMutationProvider.swift
│ │ ├── ChallengeResolver.swift
│ │ ├── MediaAttachmentPayload.swift
│ │ └── UANotificationServiceExtension.swift
│ └── Tests/
│ ├── Info.plist
│ ├── MediaAttachmentPayloadTest.swift
│ └── UANotificationServiceExtensionTests.swift
├── AirshipServiceExtension.podspec
├── CHANGELOG.md
├── DevApp/
│ ├── AirshipConfig.plist.sample
│ ├── Dev App/
│ │ ├── AirshipConfig.plist.sample
│ │ ├── AppRouter.swift
│ │ ├── Assets.xcassets/
│ │ │ ├── AccentColor.colorset/
│ │ │ │ └── Contents.json
│ │ │ ├── AppIcon.appiconset/
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ └── HomeHeroImage.imageset/
│ │ │ └── Contents.json
│ │ ├── DevApp.entitlements
│ │ ├── MainApp.swift
│ │ ├── Setup/
│ │ │ ├── AirshipInitializer.swift
│ │ │ ├── DeepLinkHandler.swift
│ │ │ ├── LiveActivityHandler.swift
│ │ │ └── PushNotificationHandler.swift
│ │ ├── Thomas/
│ │ │ ├── CustomView/
│ │ │ │ └── Examples/
│ │ │ │ ├── AdView.swift
│ │ │ │ ├── BiometricLoginView.swift
│ │ │ │ ├── CameraView.swift
│ │ │ │ ├── MapRouteView.swift
│ │ │ │ └── Weather/
│ │ │ │ ├── WeatherView.swift
│ │ │ │ └── WeatherViewModel.swift
│ │ │ ├── Embedded Playground View/
│ │ │ │ ├── EmbeddedPlaygroundMenuView.swift
│ │ │ │ ├── EmbeddedPlaygroundPicker.swift
│ │ │ │ ├── EmbeddedPlaygroundView.swift
│ │ │ │ ├── KeyView.swift
│ │ │ │ └── PlaceholderToggleView.swift
│ │ │ ├── JurassicPark.otf
│ │ │ ├── Layouts.swift
│ │ │ ├── LayoutsList.swift
│ │ │ ├── Resources/
│ │ │ │ ├── Messages/
│ │ │ │ │ ├── Banner/
│ │ │ │ │ │ ├── media-left-jurassic-park-bottom.json
│ │ │ │ │ │ ├── media-left.json
│ │ │ │ │ │ ├── media-right-jurassic-park-bottom.json
│ │ │ │ │ │ ├── media-right-jurassic-park-text-alignment-1.json
│ │ │ │ │ │ ├── media-right-jurassic-park-text-alignment-2.json
│ │ │ │ │ │ ├── media-right-jurassic-park-top.json
│ │ │ │ │ │ ├── media-right.json
│ │ │ │ │ │ └── small-banner.json
│ │ │ │ │ ├── Fullscreen/
│ │ │ │ │ │ ├── header-body-media-joined.json
│ │ │ │ │ │ ├── header-body-separate.json
│ │ │ │ │ │ └── media-header-body-stacked.json
│ │ │ │ │ ├── HTML/
│ │ │ │ │ │ ├── fullscreen-airship.json
│ │ │ │ │ │ ├── sized-airship.json
│ │ │ │ │ │ ├── sized-too-tall-airship.json
│ │ │ │ │ │ └── sized-too-wide-airship.json
│ │ │ │ │ └── Modal/
│ │ │ │ │ ├── a11y-test.json
│ │ │ │ │ ├── accessibility-modal.json
│ │ │ │ │ ├── header-body-media-joined.json
│ │ │ │ │ ├── header-body-media-stacked.json
│ │ │ │ │ ├── header-media-body-joined.json
│ │ │ │ │ ├── header-media-body-stacked.json
│ │ │ │ │ ├── media-header-body-joined.json
│ │ │ │ │ ├── media-header-body-separate-tall-image.json
│ │ │ │ │ ├── media-header-body-separate-wide-image.json
│ │ │ │ │ ├── media-header-body-separate.json
│ │ │ │ │ ├── media-header-body-stacked.json
│ │ │ │ │ ├── swipe-gesture-test.json
│ │ │ │ │ └── youtube-video-modal.json
│ │ │ │ ├── Scenes/
│ │ │ │ │ ├── Banner/
│ │ │ │ │ │ ├── banner-bottom.yml
│ │ │ │ │ │ ├── banner-safe-area-bottom.yml
│ │ │ │ │ │ ├── banner-safe-area-top.yml
│ │ │ │ │ │ ├── banner-top-old.yml
│ │ │ │ │ │ └── banner-top.yml
│ │ │ │ │ ├── Embedded/
│ │ │ │ │ │ ├── 100pct x 100pct.yml
│ │ │ │ │ │ ├── 100pct x auto.yml
│ │ │ │ │ │ ├── 50pct x 50pct.yml
│ │ │ │ │ │ ├── 75pct x 200pt.yml
│ │ │ │ │ │ ├── auto x 200.yml
│ │ │ │ │ │ ├── gif_and_vid.yml
│ │ │ │ │ │ ├── home_image.yml
│ │ │ │ │ │ ├── home_rating.yml
│ │ │ │ │ │ └── home_special_offer.yml
│ │ │ │ │ └── Modal/
│ │ │ │ │ ├── 1-pager-different-path.yml
│ │ │ │ │ ├── 1-pager-pranching-test.yml
│ │ │ │ │ ├── 1qa.yml
│ │ │ │ │ ├── MOBILE_4621.yml
│ │ │ │ │ ├── _a11y_focus.json
│ │ │ │ │ ├── _vimeo.ml
│ │ │ │ │ ├── a-gif-and-youtube.yml
│ │ │ │ │ ├── a-landscape-video.yml
│ │ │ │ │ ├── aaa-modal-bg-image.yaml
│ │ │ │ │ ├── aaa-modal.json
│ │ │ │ │ ├── accessibility-action-story.yml
│ │ │ │ │ ├── accessibility-actions-modal-pager-fullsize.yml
│ │ │ │ │ ├── accessibility-test-modal.json
│ │ │ │ │ ├── airship-quiz-1.yml
│ │ │ │ │ ├── async_view.yaml
│ │ │ │ │ ├── auto_height_modal.yml
│ │ │ │ │ ├── button_layout.yml
│ │ │ │ │ ├── container.yml
│ │ │ │ │ ├── containerception.yml
│ │ │ │ │ ├── custom-fonts.yml
│ │ │ │ │ ├── form-input-branching-child-form.yaml
│ │ │ │ │ ├── form-input-branching-on-demand.yml
│ │ │ │ │ ├── form_immediate_phone.yaml
│ │ │ │ │ ├── form_immediate_validation_email.yaml
│ │ │ │ │ ├── form_on_demand_validation_email.yaml
│ │ │ │ │ ├── form_single_page_on_demand.yml
│ │ │ │ │ ├── forms.yml
│ │ │ │ │ ├── image-pager-test.yml
│ │ │ │ │ ├── image_cropping.yml
│ │ │ │ │ ├── image_resizing.yml
│ │ │ │ │ ├── image_scaling.yml
│ │ │ │ │ ├── is-accessibility-alert-form.yml
│ │ │ │ │ ├── linear_layout_scroll.yml
│ │ │ │ │ ├── markdown.yml
│ │ │ │ │ ├── martin.json
│ │ │ │ │ ├── mobile-4599.yml
│ │ │ │ │ ├── mobile-5409-2.json
│ │ │ │ │ ├── mobile-5409.json
│ │ │ │ │ ├── mobile-5553-shape-corners.yml
│ │ │ │ │ ├── modal-buttons.yml
│ │ │ │ │ ├── modal-checkboxes-radios.yml
│ │ │ │ │ ├── modal-constrained.yml
│ │ │ │ │ ├── modal-custom-biometric-login.yml
│ │ │ │ │ ├── modal-custom-interstitial-banner-ad.yaml
│ │ │ │ │ ├── modal-custom-weather-and-map.yaml
│ │ │ │ │ ├── modal-day-night-colors.yml
│ │ │ │ │ ├── modal-disable-back-button.yml
│ │ │ │ │ ├── modal-labels.yml
│ │ │ │ │ ├── modal-linear-layout-horizontal.yml
│ │ │ │ │ ├── modal-linear-layout-vertical.yml
│ │ │ │ │ ├── modal-linear-layout-webview-emoji.yml
│ │ │ │ │ ├── modal-linear-layout.yml
│ │ │ │ │ ├── modal-media-header-body-stacked-buttons.yml
│ │ │ │ │ ├── modal-pager-fullsize.yml
│ │ │ │ │ ├── modal-pager-with-title-and-button.yml
│ │ │ │ │ ├── modal-placement-selectors.yml
│ │ │ │ │ ├── modal-responsive.yml
│ │ │ │ │ ├── modal-score.yml
│ │ │ │ │ ├── modal-transparancy.yml
│ │ │ │ │ ├── modal-video-cropping.yml
│ │ │ │ │ ├── modal-webview-full-size.yml
│ │ │ │ │ ├── modal-webview-with-buttons.yml
│ │ │ │ │ ├── model-custom-camera-view.yml
│ │ │ │ │ ├── multi-video-players.yml
│ │ │ │ │ ├── nps.yml
│ │ │ │ │ ├── pager-behaviors.yml
│ │ │ │ │ ├── portrait-video.yml
│ │ │ │ │ ├── qa-advseg-2998.yml
│ │ │ │ │ ├── qa-advseg-2999.yml
│ │ │ │ │ ├── safe-areas-linear-layout.yml
│ │ │ │ │ ├── safe-areas-pager.yml
│ │ │ │ │ ├── scene-scroll.yml
│ │ │ │ │ ├── story-one-screen.yml
│ │ │ │ │ ├── story-video-and-gif.yml
│ │ │ │ │ ├── story.yml
│ │ │ │ │ ├── tap-handler-visibility.yml
│ │ │ │ │ ├── textInput
│ │ │ │ │ ├── toggle-branching-simple-quiz.yml
│ │ │ │ │ ├── toggle-layout-types.yml
│ │ │ │ │ ├── toggle-rating-numbers.yaml
│ │ │ │ │ ├── toggle-rating-stars-small.yaml
│ │ │ │ │ ├── toggleLayout.yml
│ │ │ │ │ ├── tour-example.yml
│ │ │ │ │ ├── tour-no-safe-areas.yml
│ │ │ │ │ ├── tour-safe-areas.yml
│ │ │ │ │ ├── unsafe_areas.yml
│ │ │ │ │ ├── video-controls.yml
│ │ │ │ │ ├── video-qa.yaml
│ │ │ │ │ ├── video-story-multipage.yml
│ │ │ │ │ ├── video-story.yml
│ │ │ │ │ ├── video-test.yml
│ │ │ │ │ ├── video-youtube.yml
│ │ │ │ │ ├── video_cropping.yml
│ │ │ │ │ ├── view_overrides.yml
│ │ │ │ │ ├── wide-image-pager-test.yml
│ │ │ │ │ ├── wrapping-modal-score.yml
│ │ │ │ │ ├── wrapping-multi-page.yml
│ │ │ │ │ ├── wrapping-nps-test-2.yml
│ │ │ │ │ ├── wrapping-nps-test-3.yml
│ │ │ │ │ ├── wrapping-nps-test-4.yml
│ │ │ │ │ ├── wrapping-nps-test-5.yml
│ │ │ │ │ └── wrapping-nps-test.yml
│ │ │ │ └── SharedAssets.xcassets/
│ │ │ │ ├── 23GrandeAccentColor.colorset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── 23GrandeAllFashion.imageset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── 23GrandeAppIcon.appiconset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── 23GrandeArrival1.imageset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── 23GrandeArrival2.imageset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── 23GrandeHomeBanner.imageset/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── ThomasLayoutListView.swift
│ │ │ └── ThomasLayoutViewModel.swift
│ │ ├── Toast.swift
│ │ └── View/
│ │ ├── AppView.swift
│ │ ├── HomeView.swift
│ │ ├── NamedUserView.swift
│ │ └── ToastView.swift
│ ├── Dev-App-Info.plist
│ ├── DevApp App Clip/
│ │ ├── Airship_Sample_App_Clip.entitlements
│ │ └── Info.plist
│ ├── DevApp Service Extension/
│ │ ├── Info.plist
│ │ └── NotificationService.swift
│ ├── DevApp.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace/
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata/
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── swiftpm/
│ │ └── Package.resolved
│ ├── LiveActivity/
│ │ ├── Assets.xcassets/
│ │ │ ├── 23Grande.imageset/
│ │ │ │ └── Contents.json
│ │ │ ├── AccentColor.colorset/
│ │ │ │ └── Contents.json
│ │ │ ├── AppIcon.appiconset/
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ └── WidgetBackground.colorset/
│ │ │ └── Contents.json
│ │ ├── DeliveryActivityWidget.swift
│ │ ├── DeliveryAttributes.swift
│ │ ├── Info.plist
│ │ ├── LiveActivity.intentdefinition
│ │ └── Widgets.swift
│ └── Sample Plist/
│ └── AirshipConfig.plist.sample
├── DevApp watchOS/
│ ├── DevApp watchOS/
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets/
│ │ │ ├── AccentColor.colorset/
│ │ │ │ └── Contents.json
│ │ │ ├── AppIcon.appiconset/
│ │ │ │ └── Contents.json
│ │ │ └── Contents.json
│ │ ├── HomeView.swift
│ │ ├── MainApp.swift
│ │ ├── NamedUserView.swift
│ │ ├── Preview Content/
│ │ │ └── Preview Assets.xcassets/
│ │ │ ├── AccentColor.colorset/
│ │ │ │ └── Contents.json
│ │ │ ├── AppIcon.appiconset/
│ │ │ │ └── Contents.json
│ │ │ └── Contents.json
│ │ └── PushNotificationPayload.apns
│ └── DevApp watchOS.xcodeproj/
│ ├── project.pbxproj
│ └── project.xcworkspace/
│ └── contents.xcworkspacedata
├── Documentation/
│ ├── .jazzy.json
│ ├── Migration/
│ │ ├── README.md
│ │ ├── migration-guide-16-17.md
│ │ ├── migration-guide-17-18.md
│ │ ├── migration-guide-18-19.md
│ │ └── migration-guide-19-20.md
│ ├── abstracts/
│ │ └── Guides.md
│ └── readme-for-jazzy.md
├── Gemfile
├── LICENSE
├── Makefile
├── Package.swift
├── README.md
└── scripts/
├── airship_version.sh
├── build_docCs.sh
├── build_sample.sh
├── build_sample_watchos.sh
├── build_xcframeworks.sh
├── check_size.sh
├── check_version.sh
├── check_xcbeautify.sh
├── gemini-review-prompt.md
├── get_xcode_path.sh
├── package.sh
├── package_xcframeworks.sh
├── pr-review.mjs
├── run_xcodebuild.sh
└── update_version.sh
SYMBOL INDEX (4 symbols across 1 files) FILE: scripts/pr-review.mjs constant MAX_DIFF_BYTES (line 6) | const MAX_DIFF_BYTES = 400_000; constant MODEL_ID_FROM_ENV (line 7) | const MODEL_ID_FROM_ENV = process.env.MODEL_ID; constant MODEL_ID (line 8) | const MODEL_ID = MODEL_ID_FROM_ENV || 'gemini-pro'; constant DEBUG (line 12) | const DEBUG = process.env.DEBUG === 'true';
Copy disabled (too large)
Download .json
Condensed preview — 1418 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (11,745K chars).
[
{
"path": ".github/CODEOWNERS",
"chars": 86,
"preview": "\n# https://help.github.com/en/articles/about-code-owners\n* @urbanairship/mobile\n"
},
{
"path": ".github/CONTRIBUTING.md",
"chars": 351,
"preview": "## Contributing Code\n\nWe accept pull requests! If you would like to submit a pull request, please fill out and submit ou"
},
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 1183,
"preview": "\n\n❗For how-to inquiries involving Airship functionality or use cases, please\ncontact (support)[https://support.airship.c"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 880,
"preview": "\n<!--\n\nPlease fill out this template when submitting an pull request.\n\nAll lines beginning with an ℹ symbol indicate inf"
},
{
"path": ".github/workflows/check-cert.yml",
"chars": 919,
"preview": "name: Check Certificate Expiration\n\non:\n workflow_dispatch:\n\njobs:\n check-cert:\n runs-on: macos-latest\n steps:\n "
},
{
"path": ".github/workflows/check_framework_size.yml",
"chars": 879,
"preview": "name: Check Framework Size\n\non:\n workflow_dispatch:\n\nenv:\n BUNDLE_PATH: vendor/bundle\n\njobs:\n \n framework-size:\n r"
},
{
"path": ".github/workflows/ci.yml",
"chars": 3585,
"preview": "name: CI Pull Request\n\non: [pull_request]\n\nenv:\n BUNDLE_PATH: vendor/bundle\n\nconcurrency:\n group: ${{ github.ref }}\n "
},
{
"path": ".github/workflows/deploy_docC.yml",
"chars": 1940,
"preview": "name: Deploy docC to Pages\n\non:\n push:\n tags:\n - \"[0-9]+.[0-9]+.[0-9]+**\"\n \n # Allows you to run this wor"
},
{
"path": ".github/workflows/merge.yml",
"chars": 875,
"preview": "name: CI Merge\n\non:\n push:\n branches:\n - main\n - next\n\nenv:\n BUNDLE_PATH: vendor/bundle\n\nconcurre"
},
{
"path": ".github/workflows/pr-review.yml",
"chars": 1014,
"preview": "name: Gemini PR Review\n\non:\n pull_request:\n types: [opened, edited, synchronize]\n\nconcurrency: pr-${{ github.event.p"
},
{
"path": ".github/workflows/release.yml",
"chars": 7984,
"preview": "name: Release\n\non:\n push:\n tags:\n - \"[0-9]+.[0-9]+.[0-9]+**\"\nenv:\n BUNDLE_PATH: vendor/bundle\n\njobs:\n check-v"
},
{
"path": ".gitignore",
"chars": 456,
"preview": ".DS_Store\n*.orig\n.hg*\n*.mode1v3\n*.pbxuser\n*.perspective*\ndistribution_binaries/\ndistribution_package/\ndocs/html/\ndocs/do"
},
{
"path": ".gitmodules",
"chars": 0,
"preview": ""
},
{
"path": ".ruby-version",
"chars": 5,
"preview": "3.2.0"
},
{
"path": ".swift-format.json",
"chars": 1981,
"preview": "{\n \"fileScopedDeclarationPrivacy\" : {\n \"accessLevel\" : \"private\"\n },\n \"indentation\" : {\n \"spaces\" : 4\n },\n \"i"
},
{
"path": ".swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": ".whitesource",
"chars": 293,
"preview": "{\n \"scanSettings\": {\n \"configMode\": \"AUTO\",\n \"configExternalURL\": \"\",\n \"projectToken\": \"\",\n \"baseBranches\":"
},
{
"path": "Airship/Airship.xcodeproj/project.pbxproj",
"chars": 662671,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 70;\n\tobjects = {\n\n/* Begin PBXAggregateTarget sec"
},
{
"path": "Airship/Airship.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "Airship/Airship.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Airship/Airship.xcodeproj/xcshareddata/xcschemes/AirshipAutomation.xcscheme",
"chars": 2871,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"1600\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Airship/Airship.xcodeproj/xcshareddata/xcschemes/AirshipBasement.xcscheme",
"chars": 2413,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"1600\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Airship/Airship.xcodeproj/xcshareddata/xcschemes/AirshipCore.xcscheme",
"chars": 2827,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"1600\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Airship/Airship.xcodeproj/xcshareddata/xcschemes/AirshipDebug.xcscheme",
"chars": 2401,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"1600\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Airship/Airship.xcodeproj/xcshareddata/xcschemes/AirshipFeatureFlags.xcscheme",
"chars": 2883,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"1600\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Airship/Airship.xcodeproj/xcshareddata/xcschemes/AirshipMessageCenter.xcscheme",
"chars": 2889,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"1600\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Airship/Airship.xcodeproj/xcshareddata/xcschemes/AirshipObjectiveC.xcscheme",
"chars": 2462,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"1600\"\n version = \"1.7\">\n <BuildAction\n "
},
{
"path": "Airship/Airship.xcodeproj/xcshareddata/xcschemes/AirshipPreferenceCenter.xcscheme",
"chars": 3522,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"1600\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Airship/AirshipAutomation/Info.plist",
"chars": 752,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Airship/AirshipAutomation/Resources/AirshipAutomation.xcdatamodeld/.xccurrentversion",
"chars": 272,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Airship/AirshipAutomation/Resources/AirshipAutomation.xcdatamodeld/AirshipAutomation 2.xcdatamodel/contents",
"chars": 1524,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/AirshipAutomation.xcdatamodeld/AirshipAutomation 3.xcdatamodel/contents",
"chars": 1675,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/AirshipAutomation.xcdatamodeld/AirshipAutomation.xcdatamodel/contents",
"chars": 1361,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/.xccurrentversion",
"chars": 268,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 10.xcdatamodel/contents",
"chars": 5506,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 11.xcdatamodel/contents",
"chars": 5811,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 12.xcdatamodel/contents",
"chars": 5911,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 13.xcdatamodel/contents",
"chars": 5763,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 2.xcdatamodel/contents",
"chars": 4381,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 3.xcdatamodel/contents",
"chars": 5003,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 4.xcdatamodel/contents",
"chars": 5151,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 5.xcdatamodel/contents",
"chars": 4788,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 6.xcdatamodel/contents",
"chars": 5317,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 7.xcdatamodel/contents",
"chars": 5456,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 8.xcdatamodel/contents",
"chars": 5599,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation 9.xcdatamodel/contents",
"chars": 5743,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAAutomation.xcdatamodeld/UAAutomation.xcdatamodel/contents",
"chars": 2592,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Resources/UAFrequencyLimits.xcdatamodeld/UAFrequencyLimits.xcdatamodel/contents",
"chars": 1534,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVer"
},
{
"path": "Airship/AirshipAutomation/Source/ActionAutomation/ActionAutomationExecutor.swift",
"chars": 1137,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nstruc"
},
{
"path": "Airship/AirshipAutomation/Source/ActionAutomation/ActionAutomationPreparer.swift",
"chars": 472,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nstruc"
},
{
"path": "Airship/AirshipAutomation/Source/Actions/CancelSchedulesAction.swift",
"chars": 4153,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\npublic import AirshipCore\n#endif"
},
{
"path": "Airship/AirshipAutomation/Source/Actions/LandingPageAction.swift",
"chars": 5953,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\npublic import AirshipCore\n#endif"
},
{
"path": "Airship/AirshipAutomation/Source/Actions/ScheduleAction.swift",
"chars": 1626,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\npublic import AirshipCore\n#endif"
},
{
"path": "Airship/AirshipAutomation/Source/AirshipAutomationResources.swift",
"chars": 900,
"preview": "/* Copyright Airship and Contributors */\n\npublic import Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif"
},
{
"path": "Airship/AirshipAutomation/Source/AudienceCheck/AdditionalAudienceCheckerApiClient.swift",
"chars": 3292,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nprotoc"
},
{
"path": "Airship/AirshipAutomation/Source/AudienceCheck/AdditionalAudienceCheckerResolver.swift",
"chars": 4665,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nprotoc"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/ApplicationMetrics.swift",
"chars": 3215,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nproto"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/AutomationAudience.swift",
"chars": 2132,
"preview": "import Foundation\n\n#if canImport(AirshipCore)\npublic import AirshipCore\n#endif\n\n/// Automation device audience\npublic st"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/AutomationCompoundAudience.swift",
"chars": 832,
"preview": "import Foundation\n\n#if canImport(AirshipCore)\npublic import AirshipCore\n#endif\n\n/// Automation compound audience\npublic "
},
{
"path": "Airship/AirshipAutomation/Source/Automation/AutomationDelay.swift",
"chars": 1210,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// A"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/AutomationSchedule.swift",
"chars": 15277,
"preview": "/* Copyright Airship and Contributors */\n\npublic import Foundation\n\n#if canImport(AirshipCore)\npublic import AirshipCore"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/AutomationTrigger.swift",
"chars": 9173,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\npublic import AirshipCore\n#endif"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/DeferredAutomationData.swift",
"chars": 557,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// N"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/AutomationDelayProcessor.swift",
"chars": 5612,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nproto"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/AutomationEngine.swift",
"chars": 29218,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nactor"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/AutomationEventFeed.swift",
"chars": 6910,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nproto"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/AutomationEventsHistory.swift",
"chars": 1223,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nproto"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/AutomationExecutor.swift",
"chars": 4153,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nproto"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/AutomationPreparer.swift",
"chars": 15016,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nproto"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/AutomationScheduleData.swift",
"chars": 6392,
"preview": "/* Copyright Airship and Contributors */\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nimport Foundation\n\nstruc"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/AutomationScheduleState.swift",
"chars": 297,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\nenum AutomationScheduleState: String, Equatable, Sendable {"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/AutomationStore.swift",
"chars": 19967,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport CoreData\n\n#if canImport(AirshipCore)\nimport AirshipCo"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/ExecutionWindowProcessor.swift",
"chars": 2551,
"preview": "/* Copyright Airship and Contributors */\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nimport Foundation\n\n\nprot"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/LegacyAutomationStore.swift",
"chars": 15303,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport CoreData\n\n#if canImport(AirshipCore)\nimport AirshipCo"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/PreparedSchedule.swift",
"chars": 3222,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// A"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/ScheduleExecuteResult.swift",
"chars": 179,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n/// Schedule execute result\nenum ScheduleExecuteResult: Sen"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/SchedulePrepareResult.swift",
"chars": 496,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n/// Schedule prepare result\nenum SchedulePrepareResult: Sen"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/ScheduleReadyResult.swift",
"chars": 193,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n/// Schedule ready result\nenum ScheduleReadyResult: Sendabl"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/TriggerProcessor/AutomationTriggerProcessor.swift",
"chars": 11966,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nproto"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/TriggerProcessor/PreparedTrigger.swift",
"chars": 13129,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n// Th"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/TriggerProcessor/TriggerData.swift",
"chars": 755,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\nstruct TriggerData: Sendable, Equatable, Codable {\n var "
},
{
"path": "Airship/AirshipAutomation/Source/Automation/Engine/TriggeringInfo.swift",
"chars": 230,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nstruc"
},
{
"path": "Airship/AirshipAutomation/Source/Automation/ExecutionWindow.swift",
"chars": 24096,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// D"
},
{
"path": "Airship/AirshipAutomation/Source/AutomationSDKModule.swift",
"chars": 6295,
"preview": "/* Copyright Airship and Contributors */\n\n#if canImport(AirshipCore)\npublic import AirshipCore\n#endif\n\npublic import Fou"
},
{
"path": "Airship/AirshipAutomation/Source/InAppAutomation.swift",
"chars": 10013,
"preview": "/* Copyright Airship and Contributors */\n\npublic import Foundation\nimport UserNotifications\n\n#if canImport(UIKit)\nimport"
},
{
"path": "Airship/AirshipAutomation/Source/InAppAutomationComponent.swift",
"chars": 1008,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n@preconcurrency\nimport UserNotifications\n\n#if canImport(UIKi"
},
{
"path": "Airship/AirshipAutomation/Source/InAppAutomationUpdateStatus.swift",
"chars": 360,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n/// In-app automation remote data status.\npublic enum InApp"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Analytics/InAppDisplayImpressionRuleProvider.swift",
"chars": 792,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nenum "
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Analytics/InAppMessageAnalytics.swift",
"chars": 8249,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nstruc"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Analytics/InAppMessageAnalyticsFactory.swift",
"chars": 1674,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nproto"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Assets/AirshipCachedAssets.swift",
"chars": 2337,
"preview": "/* Copyright Airship and Contributors */\n\npublic import Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Assets/AssetCacheManager.swift",
"chars": 6287,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// W"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Assets/DefaultAssetDownloader.swift",
"chars": 2432,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// D"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Assets/DefaultAssetFileManager.swift",
"chars": 4039,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nstruct"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Display Adapter/AirshipLayoutDisplayAdapter.swift",
"chars": 13188,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport SwiftUI\n\n#if canImport(AirshipCore)\nimport AirshipCor"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Display Adapter/CustomDisplayAdapter.swift",
"chars": 1467,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(UIKit)\npublic import UIKit\n#endif\n\n#if canImp"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Display Adapter/CustomDisplayAdapterWrapper.swift",
"chars": 2127,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// W"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Display Adapter/DisplayAdapter.swift",
"chars": 504,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n// In"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Display Adapter/DisplayAdapterFactory.swift",
"chars": 2815,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// A"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Display Adapter/InAppMessageDisplayListener.swift",
"chars": 2455,
"preview": "import Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n@MainActor\nfinal class InAppMessageDisplayListe"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Display Coordinators/DefaultDisplayCoordinator.swift",
"chars": 2501,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// D"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Display Coordinators/DisplayCoordinator.swift",
"chars": 398,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// C"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Display Coordinators/DisplayCoordinatorManager.swift",
"chars": 1909,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nproto"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Display Coordinators/ImmediateDisplayCoordinator.swift",
"chars": 940,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n\n/// "
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppActionRunner.swift",
"chars": 4374,
"preview": "#if canImport(AirshipCore)\npublic import AirshipCore\n#endif\n\nimport Foundation\n\n/// Action runner for in-app experiences"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessage.swift",
"chars": 11200,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport SwiftUI\n\n#if canImport(AirshipCore)\npublic import Air"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessageAutomationExecutor.swift",
"chars": 7725,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nfinal"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessageAutomationPreparer.swift",
"chars": 4579,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// A"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessageColor.swift",
"chars": 1025,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\npublic import SwiftUI\n\n#if canImport(AirshipCore)\nimport Air"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessageDisplayContent.swift",
"chars": 14824,
"preview": "/* Copyright Airship and Contributors */\n\npublic import Foundation\n\n#if canImport(AirshipCore)\npublic import AirshipCore"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessageDisplayDelegate.swift",
"chars": 1242,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n/// Message display delegate\npublic protocol InAppMessageDi"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessageEnvironment.swift",
"chars": 3178,
"preview": "/* Copyright Airship and Contributors */\n\nimport Combine\nimport Foundation\nimport SwiftUI\n\n#if canImport(AirshipCore)\nim"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessageSceneDelegate.swift",
"chars": 474,
"preview": "/* Copyright Airship and Contributors */\n\n#if !os(macOS)\n\nimport Foundation\npublic import UIKit\n\n/// Scene delegate\npubl"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessageSceneManager.swift",
"chars": 1152,
"preview": "/* Copyright Airship and Contributors */\n#if !os(macOS)\n\nimport Foundation\nimport UIKit\n\n#if canImport(AirshipCore)\nimpo"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessageValidation.swift",
"chars": 2664,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nexten"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessageViewDelegate.swift",
"chars": 849,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n\n/// Delegate for receiving callback pertaining to in-app m"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/InAppMessaging.swift",
"chars": 3765,
"preview": "/* Copyright Airship and Contributors */\n\npublic import Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Info/InAppMessageButtonInfo.swift",
"chars": 2137,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\npublic import AirshipCore\n#endif"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Info/InAppMessageButtonLayoutType.swift",
"chars": 306,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n/// Button layout type\npublic enum InAppMessageButtonLayout"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Info/InAppMessageMediaInfo.swift",
"chars": 1145,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// M"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Info/InAppMessageTextInfo.swift",
"chars": 1746,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// I"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Legacy/LegacyInAppAnalytics.swift",
"chars": 2239,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n\nprot"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Legacy/LegacyInAppMessage.swift",
"chars": 8478,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\npublic import UserNotifications\n\n#if canImport(AirshipCore)\n"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/Legacy/LegacyInAppMessaging.swift",
"chars": 10737,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport UserNotifications\n\n#if canImport(UIKit)\nimport UIKit\n"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/BeveledLoadingView.swift",
"chars": 536,
"preview": "/* Copyright Airship and Contributors */\n\nimport SwiftUI\n\nstruct BeveledLoadingView: View {\n let opacity = 0.7\n\n v"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/ButtonGroup.swift",
"chars": 8557,
"preview": "/* Copyright Airship and Contributors */\n\nimport SwiftUI\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nprivate "
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/CloseButton.swift",
"chars": 1666,
"preview": "/* Copyright Airship and Contributors */\n\nimport SwiftUI\n\nstruct CloseButton: View {\n internal init(\n dismissI"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/FullscreenView.swift",
"chars": 4055,
"preview": "/* Copyright Airship and Contributors */\n\nimport SwiftUI\nimport Combine\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/HTMLView.swift",
"chars": 3617,
"preview": "/* Copyright Airship and Contributors */\n\n#if !os(tvOS)\n\nimport SwiftUI\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/InAppMessageBannerView.swift",
"chars": 11976,
"preview": "/* Copyright Airship and Contributors */\n\nimport SwiftUI\nimport Combine\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/InAppMessageExtensions.swift",
"chars": 426,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// A"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/InAppMessageHostingController.swift",
"chars": 6390,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport SwiftUI\n\n#if canImport(AirshipCore)\nimport AirshipCor"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/InAppMessageModalView.swift",
"chars": 6181,
"preview": "/* Copyright Airship and Contributors */\n\nimport SwiftUI\nimport Combine\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/InAppMessageNativeBridgeExtension.swift",
"chars": 997,
"preview": "/* Copyright Airship and Contributors */\n#if !os(tvOS)\nimport Foundation\npublic import WebKit\n\n#if canImport(AirshipCore"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/InAppMessageRootView.swift",
"chars": 644,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport SwiftUI\n\n#if canImport(AirshipCore)\nimport AirshipCor"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/InAppMessageViewUtils.swift",
"chars": 3532,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport SwiftUI\n\nextension View {\n\n @ViewBuilder\n func "
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/InAppMessageWebView.swift",
"chars": 5916,
"preview": "/* Copyright Airship and Contributors */\n\n#if !os(tvOS)\nimport Foundation\nimport SwiftUI\nimport WebKit\n#if canImport(Air"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/MediaView.swift",
"chars": 4837,
"preview": "/* Copyright Airship and Contributors */\n\n\nimport SwiftUI\n\n#if canImport(WebKit)\nimport WebKit\n#endif\n\n#if canImport(Air"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/TextView.swift",
"chars": 1526,
"preview": "/* Copyright Airship and Contributors */\n\nimport SwiftUI\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nstruct T"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageTheme.swift",
"chars": 1195,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport SwiftUI\n\n#if canImport(AirshipCore)\nimport AirshipCor"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageThemeAdditionalPadding.swift",
"chars": 714,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport SwiftUI\n\n\nextension InAppMessageTheme {\n struct Ad"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageThemeBanner.swift",
"chars": 5072,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\npublic import SwiftUI\n\n#if canImport(AirshipCore)\nimport Air"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageThemeButton.swift",
"chars": 2321,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\npublic import SwiftUI\n\n#if canImport(AirshipCore)\nimport Air"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageThemeFullscreen.swift",
"chars": 4961,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\npublic import SwiftUI\n\n#if canImport(AirshipCore)\nimport Air"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageThemeHTML.swift",
"chars": 3427,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\npublic import SwiftUI\n\n\n#if canImport(AirshipCore)\nimport Ai"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageThemeManager.swift",
"chars": 1694,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport SwiftUI\n\n\n#if canImport(AirshipCore)\nimport AirshipCo"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageThemeMedia.swift",
"chars": 740,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\npublic import SwiftUI\n\npublic extension InAppMessageTheme {\n"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageThemeModal.swift",
"chars": 5413,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\npublic import SwiftUI\n\n#if canImport(AirshipCore)\nimport Air"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageThemeShadow.swift",
"chars": 1829,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\npublic import SwiftUI\n\n/// For color utils\n#if canImport(Air"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/InAppMessageThemeText.swift",
"chars": 1179,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\npublic import SwiftUI\n\npublic extension InAppMessageTheme {\n"
},
{
"path": "Airship/AirshipAutomation/Source/InAppMessage/View/Theme/ThemeExtensions.swift",
"chars": 338,
"preview": "/* Copyright Airship and Contributors */\n\n\nimport Foundation\nimport SwiftUI\n\nextension View {\n @ViewBuilder\n func "
},
{
"path": "Airship/AirshipAutomation/Source/Limits/FrequencyChecker.swift",
"chars": 1242,
"preview": "/* Copyright Airship and Contributors */\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// Protocol for checkin"
},
{
"path": "Airship/AirshipAutomation/Source/Limits/FrequencyConstraint.swift",
"chars": 1993,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n/// Represents a constraint on occurrences within a given t"
},
{
"path": "Airship/AirshipAutomation/Source/Limits/FrequencyLimitManager.swift",
"chars": 7417,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// M"
},
{
"path": "Airship/AirshipAutomation/Source/Limits/FrequencyLimitStore.swift",
"chars": 7405,
"preview": "/* Copyright Airship and Contributors */\n\nimport CoreData\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCo"
},
{
"path": "Airship/AirshipAutomation/Source/Limits/Occurrence.swift",
"chars": 167,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\nstruct Occurrence: Sendable, Equatable, Hashable {\n let "
},
{
"path": "Airship/AirshipAutomation/Source/RemoteData/AutomationRemoteDataAccess.swift",
"chars": 12207,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\nimport Combine\n\n#if canImport(AirshipCore)\nimport AirshipCor"
},
{
"path": "Airship/AirshipAutomation/Source/RemoteData/AutomationRemoteDataSubscriber.swift",
"chars": 8270,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n@preconcurrency\nimport Combine\n\n#if canImport(AirshipCore)\n"
},
{
"path": "Airship/AirshipAutomation/Source/RemoteData/AutomationSourceInfoStore.swift",
"chars": 5431,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n/// S"
},
{
"path": "Airship/AirshipAutomation/Source/RemoteData/DeferredScheduleResult.swift",
"chars": 366,
"preview": "import Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nstruct DeferredScheduleResult: Sendable, Codabl"
},
{
"path": "Airship/AirshipAutomation/Source/Utils/ActiveTimer.swift",
"chars": 2393,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n@MainA"
},
{
"path": "Airship/AirshipAutomation/Source/Utils/AirshipAsyncSemaphore.swift",
"chars": 838,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\nactor AirshipAsyncSemaphore {\n private var value: Int\n "
},
{
"path": "Airship/AirshipAutomation/Source/Utils/AutomationActionRunner.swift",
"chars": 610,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n\n/// A"
},
{
"path": "Airship/AirshipAutomation/Source/Utils/RetryingQueue.swift",
"chars": 14971,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\n\n/// "
},
{
"path": "Airship/AirshipAutomation/Source/Utils/ScheduleConditionsChangedNotifier.swift",
"chars": 789,
"preview": "/* Copyright Airship and Contributors */\n\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore\n#endif\n\nproto"
},
{
"path": "Airship/AirshipAutomation/Tests/Action Automation/ActionAutomationExecutorTest.swift",
"chars": 1182,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nclass Ac"
},
{
"path": "Airship/AirshipAutomation/Tests/Action Automation/ActionAutomationPreparerTest.swift",
"chars": 649,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/Actions/CancelSchedulesActionTest.swift",
"chars": 9715,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/Actions/LandingPageActionTest.swift",
"chars": 11480,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/Actions/ScheduleActionTest.swift",
"chars": 3933,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/ApplicationMetricsTest.swift",
"chars": 2451,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable import AirshipAutomation\n@testable import AirshipCore"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/AudienceCheck/AdditionalAudienceCheckerResolverTest.swift",
"chars": 9858,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nclass Ad"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/AutomationScheduleDataTest.swift",
"chars": 21314,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable import AirshipAutomation\n@testable import AirshipCore"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/AutomationScheduleTest.swift",
"chars": 10773,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nclass Au"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/AutomationDelayProcessorTest.swift",
"chars": 9214,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\n\nfinal c"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/AutomationEngineTest.swift",
"chars": 8546,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\n@MainAct"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/AutomationEventFeedTest.swift",
"chars": 8307,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\n@testable import AirshipCore"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/AutomationEventsHistoryTest.swift",
"chars": 2096,
"preview": "// Copyright Urban Airship and Contributors\n\n\nimport Foundation\nimport Testing\n\n@testable import AirshipAutomation\n@test"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/AutomationExecutorTest.swift",
"chars": 12660,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/AutomationPreparerTest.swift",
"chars": 41488,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/AutomationStoreTest.swift",
"chars": 11825,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/AutomationTriggerProcessorTest.swift",
"chars": 9857,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/ExecutionWindowProcessorTest.swift",
"chars": 4090,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/PreparedScheduleInfoTest.swift",
"chars": 550,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\n\nfinal class PreparedSchedul"
},
{
"path": "Airship/AirshipAutomation/Tests/Automation/Engine/PreparedTriggerTest.swift",
"chars": 24176,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/ExecutionWindowTest.swift",
"chars": 33927,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable import AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Analytics/DefaultInAppDisplayImpressionRuleProviderTest.swift",
"chars": 3831,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Analytics/InAppMessageAnalyticsTest.swift",
"chars": 18348,
"preview": "/* Copyright Airship and Contributors */\n\nimport Testing\n\n@testable import AirshipAutomation\n@testable import AirshipCor"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Assets/AssetCacheManagerTest.swift",
"chars": 14405,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\nimport AirshipCore\n\n@testable\nimport AirshipAutomation\n\nfinal c"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Assets/DefaultAssetDownloaderTest.swift",
"chars": 1967,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\nimport Foundation\n\n#if canImport(AirshipCore)\nimport AirshipCore"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Assets/DefaultAssetFileManagerTest.swift",
"chars": 4367,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable import AirshipAutomation\nfinal class DefaultAssetFile"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/DefaultInAppActionRunnerTest.swift",
"chars": 5070,
"preview": "/* Copyright Airship and Contributors */\n\nimport Testing\n\n@testable import AirshipCore\n@testable import AirshipAutomatio"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Display Adapter/AirshipLayoutDisplayAdapterTest.swift",
"chars": 3811,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n@testable import AirshipAutomation\nimport AirshipCore\n\nfinal cla"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Display Adapter/CustomDisplayAdapterWrapperTest.swift",
"chars": 1915,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n@testable import AirshipAutomation\nimport AirshipCore\n\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Display Adapter/DisplayAdapterFactoryTest.swift",
"chars": 5057,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n@testable import AirshipAutomation\nimport AirshipCore\n\nfinal cla"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Display Adapter/InAppMessageDisplayListenerTest.swift",
"chars": 3889,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n@testable import AirshipAutomation\nimport AirshipCore\n\n\nclass In"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Display Coordinators/DefaultDisplayCoordinatorTest.swift",
"chars": 1929,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Display Coordinators/DisplayCoordinatorManagerTest.swift",
"chars": 2253,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n@testable import AirshipAutomation\nimport AirshipCore\n\nfinal cla"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/Display Coordinators/ImmediateDisplayCoordinatorTest.swift",
"chars": 1921,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n\n@testable\nimport AirshipAutomation\nimport AirshipCore\n\nfinal cl"
},
{
"path": "Airship/AirshipAutomation/Tests/InAppMessage/InAppMessageAutomationExecutorTest.swift",
"chars": 12206,
"preview": "/* Copyright Airship and Contributors */\n\nimport XCTest\n@testable import AirshipAutomation\nimport AirshipCore\n\nfinal cla"
}
]
// ... and 1218 more files (download for full content)
About this extraction
This page contains the full source code of the urbanairship/ios-library GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1418 files (10.7 MB), approximately 2.9M tokens, and a symbol index with 4 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.