Build Information
Successful build of Mixpanel, reference 7.0.0 (dbd9cd), with Swift 6.1 for macOS (SPM) on 10 Oct 2026 11:57:14 UTC.
Swift 6 data race errors: 11
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCapturesBuild Log
544 | }
545 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:543:51: warning: capture of 'completion' with non-sendable type '((Bool) -> Void)?' in a '@Sendable' closure
541 | // Dispatch fetch trigger to allow caller to continue
542 | trackingQueue.async { [weak self] in
543 | self?._fetchFlagsIfNeeded(completion: completion)
| |- warning: capture of 'completion' with non-sendable type '((Bool) -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
544 | }
545 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:564:30: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
405 | // --- FeatureFlagManager Class ---
406 |
407 | class FeatureFlagManager: MixpanelFlags {
| `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
408 |
409 | weak var delegate: MixpanelFlagDelegate? {
:
562 | func reset(completion: (() -> Void)? = nil) {
563 | trackingQueue.async { [weak self] in
564 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
565 | completion?()
566 | return
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:565:17: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
563 | trackingQueue.async { [weak self] in
564 | guard let self = self else {
565 | completion?()
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
566 | return
567 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:605:13: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
405 | // --- FeatureFlagManager Class ---
406 |
407 | class FeatureFlagManager: MixpanelFlags {
| `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
408 |
409 | weak var delegate: MixpanelFlagDelegate? {
:
603 | }
604 | trackingQueue.async { [weak self] in
605 | self?._fetchFlagsIfNeeded { _ in
| `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
606 | completion()
607 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:606:17: warning: capture of 'completion' with non-sendable type '() -> Void' in a '@Sendable' closure
604 | trackingQueue.async { [weak self] in
605 | self?._fetchFlagsIfNeeded { _ in
606 | completion()
| |- warning: capture of 'completion' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
607 | }
608 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:606:17: warning: capture of 'completion' with non-sendable type '() -> Void' in an isolated closure; this is an error in the Swift 6 language mode
604 | trackingQueue.async { [weak self] in
605 | self?._fetchFlagsIfNeeded { _ in
606 | completion()
| |- warning: capture of 'completion' with non-sendable type '() -> Void' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
607 | }
608 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:690:30: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
405 | // --- FeatureFlagManager Class ---
406 |
407 | class FeatureFlagManager: MixpanelFlags {
| `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
408 |
409 | weak var delegate: MixpanelFlagDelegate? {
:
688 | ) {
689 | trackingQueue.async { [weak self] in
690 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
691 |
692 | var flagVariant: MixpanelFlagVariant?
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:731:45: warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
33 |
34 | // Represents the variant associated with a feature flag
35 | public struct MixpanelFlagVariant: Decodable {
| `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
36 | public let key: String // Corresponds to 'variant_key' from API
37 | public let value: Any? // Corresponds to 'variant_value' from API
:
729 | // the fallback as `.flagNotFound` — same treatment the sync impl applies
730 | // in _getVariantSyncImpl.
731 | let result = flagVariant ?? fallback.withSource(.fallback(reason: .flagNotFound))
| `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
732 | if flagVariant != nil, needsTrackingCheck {
733 | // Perform atomic check-and-track
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:736:44: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
734 | self._trackFlagIfNeeded(flagName: flagName, variant: result)
735 | }
736 | DispatchQueue.main.async { completion(result) }
| |- warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
737 |
738 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:731:45: warning: implicit capture of 'fallback' requires that 'MixpanelFlagVariant' conforms to 'Sendable'; this is an error in the Swift 6 language mode
33 |
34 | // Represents the variant associated with a feature flag
35 | public struct MixpanelFlagVariant: Decodable {
| `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
36 | public let key: String // Corresponds to 'variant_key' from API
37 | public let value: Any? // Corresponds to 'variant_value' from API
:
729 | // the fallback as `.flagNotFound` — same treatment the sync impl applies
730 | // in _getVariantSyncImpl.
731 | let result = flagVariant ?? fallback.withSource(.fallback(reason: .flagNotFound))
| `- warning: implicit capture of 'fallback' requires that 'MixpanelFlagVariant' conforms to 'Sendable'; this is an error in the Swift 6 language mode
732 | if flagVariant != nil, needsTrackingCheck {
733 | // Perform atomic check-and-track
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:756:42: warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in an isolated closure; this is an error in the Swift 6 language mode
33 |
34 | // Represents the variant associated with a feature flag
35 | public struct MixpanelFlagVariant: Decodable {
| `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
36 | public let key: String // Corresponds to 'variant_key' from API
37 | public let value: Any? // Corresponds to 'variant_value' from API
:
754 | // (e.g., the OpenFeature wrapper) can surface a backend/general error
755 | // rather than a not-ready state.
756 | let result = fallback.withSource(.fallback(reason: .backendError))
| `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in an isolated closure; this is an error in the Swift 6 language mode
757 | DispatchQueue.main.async { completion(result) }
758 | return
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:757:56: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
755 | // rather than a not-ready state.
756 | let result = fallback.withSource(.fallback(reason: .backendError))
757 | DispatchQueue.main.async { completion(result) }
| |- warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
758 | return
759 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:751:39: warning: capture of 'self' with non-sendable type 'FeatureFlagManager' in a '@Sendable' closure
405 | // --- FeatureFlagManager Class ---
406 |
407 | class FeatureFlagManager: MixpanelFlags {
| `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
408 |
409 | weak var delegate: MixpanelFlagDelegate? {
:
749 | // variant from `flags` if present (persisted or network) else the fallback.
750 | self.trackingQueue.async {
751 | if !fetchOk, !self.areFlagsReady() {
| `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager' in a '@Sendable' closure
752 | // Fetch failed and we have no cached/persisted flags to fall back on —
753 | // distinguish this from "flags never loaded" (.notReady) so callers
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:756:42: warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
33 |
34 | // Represents the variant associated with a feature flag
35 | public struct MixpanelFlagVariant: Decodable {
| `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
36 | public let key: String // Corresponds to 'variant_key' from API
37 | public let value: Any? // Corresponds to 'variant_value' from API
:
754 | // (e.g., the OpenFeature wrapper) can surface a backend/general error
755 | // rather than a not-ready state.
756 | let result = fallback.withSource(.fallback(reason: .backendError))
| `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
757 | DispatchQueue.main.async { completion(result) }
758 | return
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:757:56: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
755 | // rather than a not-ready state.
756 | let result = fallback.withSource(.fallback(reason: .backendError))
757 | DispatchQueue.main.async { completion(result) }
| |- warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
758 | return
759 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:826:30: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
405 | // --- FeatureFlagManager Class ---
406 |
407 | class FeatureFlagManager: MixpanelFlags {
| `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
408 |
409 | weak var delegate: MixpanelFlagDelegate? {
:
824 | func getAllVariants(completion: @escaping ([String: MixpanelFlagVariant]) -> Void) {
825 | trackingQueue.async { [weak self] in
826 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
827 | DispatchQueue.main.async { completion([:]) }
828 | return
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:827:44: warning: capture of 'completion' with non-sendable type '([String : MixpanelFlagVariant]) -> Void' in a '@Sendable' closure
825 | trackingQueue.async { [weak self] in
826 | guard let self = self else {
827 | DispatchQueue.main.async { completion([:]) }
| |- warning: capture of 'completion' with non-sendable type '([String : MixpanelFlagVariant]) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
828 | return
829 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:859:48: warning: capture of 'completion' with non-sendable type '([String : MixpanelFlagVariant]) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
857 | MixpanelLogger.debug(message: "Flags not yet servable, attempting fetch for getAllVariants...")
858 | self._fetchFlagsIfNeeded { _ in
859 | DispatchQueue.main.async { completion(self._getAllVariantsSyncImpl()) }
| |- warning: capture of 'completion' with non-sendable type '([String : MixpanelFlagVariant]) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
860 | }
861 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:1565:21: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
405 | // --- FeatureFlagManager Class ---
406 |
407 | class FeatureFlagManager: MixpanelFlags {
| `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
408 |
409 | weak var delegate: MixpanelFlagDelegate? {
:
1563 | DispatchQueue.global(qos: .userInitiated).async { [weak self] in
1564 | // Record to backend (fire-and-forget)
1565 | self?.recordFirstTimeEvent(
| `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
1566 | flagId: pendingEvent.flagId,
1567 | projectId: pendingEvent.projectId,
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:1566:33: warning: capture of 'pendingEvent' with non-sendable type 'PendingFirstTimeEvent' in a '@Sendable' closure
166 |
167 | /// Represents a pending first-time event definition from the flags endpoint
168 | struct PendingFirstTimeEvent: Decodable {
| `- note: consider making struct 'PendingFirstTimeEvent' conform to the 'Sendable' protocol
169 | let flagKey: String
170 | let flagId: String
:
1564 | // Record to backend (fire-and-forget)
1565 | self?.recordFirstTimeEvent(
1566 | flagId: pendingEvent.flagId,
| `- warning: capture of 'pendingEvent' with non-sendable type 'PendingFirstTimeEvent' in a '@Sendable' closure
1567 | projectId: pendingEvent.projectId,
1568 | firstTimeEventHash: pendingEvent.firstTimeEventHash,
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:1265:13: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
1263 |
1264 | DispatchQueue.main.async {
1265 | handlers.forEach { $0(success) }
| |- warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'handlers' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
1266 | }
1267 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:875:17: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
873 | // Dispatch completion to main queue to avoid potential deadlock
874 | DispatchQueue.main.async {
875 | completion?(false)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
876 | }
877 | return // Exit method
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:1420:13: warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
1418 | // Dispatch delegate call asynchronously to main thread for safety
1419 | DispatchQueue.main.async {
1420 | delegate.track(event: "$experiment_started", properties: properties)
| |- warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'delegate' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
1421 | MixpanelLogger.debug(message: "Tracked $experiment_started for \(flagName) (dispatched to main)")
1422 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:859:48: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
857 | MixpanelLogger.debug(message: "Flags not yet servable, attempting fetch for getAllVariants...")
858 | self._fetchFlagsIfNeeded { _ in
859 | DispatchQueue.main.async { completion(self._getAllVariantsSyncImpl()) }
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
860 | }
861 | }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:859:59: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
857 | MixpanelLogger.debug(message: "Flags not yet servable, attempting fetch for getAllVariants...")
858 | self._fetchFlagsIfNeeded { _ in
859 | DispatchQueue.main.async { completion(self._getAllVariantsSyncImpl()) }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
860 | }
861 | }
[44/50] Compiling Mixpanel MixpanelInstance.swift
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:390:43: warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
388 | flushInterval: options.flushInterval,
389 | name: options.instanceName ?? options.token,
390 | trackAutomaticEvents: options.trackAutomaticEvents,
| `- warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
391 | optOutTrackingByDefault: options.optOutTrackingByDefault,
392 | useUniqueDistinctId: options.useUniqueDistinctId,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:479:9: warning: 'trackAutomaticEventsEnabled' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
477 | self.apiToken = apiToken
478 | }
479 | trackAutomaticEventsEnabled = trackAutomaticEvents
| `- warning: 'trackAutomaticEventsEnabled' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
480 | // Capture UI properties (screen size) that require main thread access.
481 | // This is called here to ensure $ae_first_open event includes screen size.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:982:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
980 | if hasOptedOutTracking() {
981 | if let completion = completion {
982 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
983 | }
984 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:989:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
987 | MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
988 | if let completion = completion {
989 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
990 | }
991 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1045:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1043 | hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
1044 | if let completion = completion {
1045 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1046 | }
1047 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:994:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
992 | }
993 | trackingQueue.async { [weak self, distinctId, usePeople] in
994 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
995 |
996 | // If there's no anonymousId assigned yet, that means distinctId is stored in the storage. Assigning already stored
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1044:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1042 | alias: self.alias,
1043 | hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
1044 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1045 | DispatchQueue.main.async(execute: completion)
1046 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1083:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1081 | if hasOptedOutTracking() {
1082 | if let completion = completion {
1083 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1084 | }
1085 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1091:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1089 | MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
1090 | if let completion = completion {
1091 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1092 | }
1093 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1099:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1097 | MixpanelLogger.error(message: "\(self) create alias called with empty alias")
1098 | if let completion = completion {
1099 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1100 | }
1101 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1108:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1106 | guard let self = self else {
1107 | if let completion = completion {
1108 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1109 | }
1110 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1152:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1150 | message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
1151 | if let completion = completion {
1152 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1153 | }
1154 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1106:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1104 | if alias != distinctId {
1105 | trackingQueue.async { [weak self, alias] in
1106 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1107 | if let completion = completion {
1108 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1107:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1105 | trackingQueue.async { [weak self, alias] in
1106 | guard let self = self else {
1107 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1108 | DispatchQueue.main.async(execute: completion)
1109 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1202:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1200 | let fireUserCompletion: () -> Void = {
1201 | if let completion = completion {
1202 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1203 | }
1204 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1170:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1168 | flush()
1169 | trackingQueue.async { [weak self] in
1170 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1171 | return
1172 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1201:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1199 | let flagManager = self.flags as? FeatureFlagManager
1200 | let fireUserCompletion: () -> Void = {
1201 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1202 | DispatchQueue.main.async(execute: completion)
1203 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1201:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in an isolated closure; this is an error in the Swift 6 language mode
1199 | let flagManager = self.flags as? FeatureFlagManager
1200 | let fireUserCompletion: () -> Void = {
1201 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1202 | DispatchQueue.main.async(execute: completion)
1203 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1315:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1313 | if hasOptedOutTracking() {
1314 | if let completion = completion {
1315 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1316 | }
1317 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1322:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1320 | guard let self = self else {
1321 | if let completion = completion {
1322 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1323 | }
1324 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1320:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1318 | }
1319 | trackingQueue.async { [weak self, completion] in
1320 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1321 | if let completion = completion {
1322 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1321:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1319 | trackingQueue.async { [weak self, completion] in
1320 | guard let self = self else {
1321 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1322 | DispatchQueue.main.async(execute: completion)
1323 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1357:47: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1355 | isFlushing = false
1356 | if let completion = completion {
1357 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1358 | }
1359 | if hasPendingFlush {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1390:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1388 | guard let self = self else {
1389 | if let completion = completion {
1390 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1391 | }
1392 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1398:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1396 | guard let self = self else {
1397 | if let completion = completion {
1398 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1399 | }
1400 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1388:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1386 |
1387 | networkQueue.async { [weak self] in
1388 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1389 | if let completion = completion {
1390 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1389:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1387 | networkQueue.async { [weak self] in
1388 | guard let self = self else {
1389 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1390 | DispatchQueue.main.async(execute: completion)
1391 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1394:41: warning: capture of 'batch' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1392 | return
1393 | }
1394 | let result = self.sendBatch(batch, type: type)
| `- warning: capture of 'batch' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1395 | self.trackingQueue.async { [weak self] in
1396 | guard let self = self else {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1396:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1394 | let result = self.sendBatch(batch, type: type)
1395 | self.trackingQueue.async { [weak self] in
1396 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1397 | if let completion = completion {
1398 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1397:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1395 | self.trackingQueue.async { [weak self] in
1396 | guard let self = self else {
1397 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1398 | DispatchQueue.main.async(execute: completion)
1399 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1462:23: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1460 |
1461 | trackingQueue.async { [weak self, event, properties, epochInterval] in
1462 | guard let self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1463 | return
1464 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1485:29: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1483 | let timedEventsSnapshot = self.trackInstance.track(
1484 | event: event,
1485 | properties: properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1486 | timedEvents: shadowTimedEvents,
1487 | superProperties: shadowSuperProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1617:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1615 | let startTime = Date().timeIntervalSince1970
1616 | trackingQueue.async { [weak self, startTime, event] in
1617 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1618 | let timedEvents = self.trackInstance.time(
1619 | event: event, timedEvents: self.timedEvents, startTime: startTime)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1649:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1647 | public func clearTimedEvents() {
1648 | trackingQueue.async { [weak self] in
1649 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1650 | self.readWriteLock.write {
1651 | self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1665:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1663 | public func clearTimedEvent(event: String) {
1664 | trackingQueue.async { [weak self, event] in
1665 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1666 |
1667 | let updatedTimedEvents = self.trackInstance.clearTimedEvent(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1691:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1689 | public func clearSuperProperties() {
1690 | trackingQueue.async { [weak self] in
1691 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1692 | self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1693 | MixpanelPersistence.saveSuperProperties(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1711:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1709 | public func registerSuperProperties(_ properties: Properties) {
1710 | trackingQueue.async { [weak self] in
1711 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1712 | let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1713 | properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1713:17: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1711 | guard let self = self else { return }
1712 | let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1713 | properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1714 | superProperties: self.superProperties)
1715 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1740:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1738 | ) {
1739 | trackingQueue.async { [weak self] in
1740 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1741 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1742 | properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1742:17: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1740 | guard let self = self else { return }
1741 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1742 | properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1743 | superProperties: self.superProperties,
1744 | defaultValue: defaultValue)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1744:31: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1742 | properties,
1743 | superProperties: self.superProperties,
1744 | defaultValue: defaultValue)
| `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1745 | self.readWriteLock.write {
1746 | self.superProperties = updatedSuperProperties
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1770:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1768 | public func unregisterSuperProperty(_ propertyName: String) {
1769 | trackingQueue.async { [weak self] in
1770 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1771 | let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(
1772 | propertyName,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1793:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1791 | ) {
1792 | trackingQueue.async { [weak self] in
1793 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1794 | var superPropertiesShadow = self.superProperties
1795 | self.trackInstance.updateSuperProperty(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1796:17: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1794 | var superPropertiesShadow = self.superProperties
1795 | self.trackInstance.updateSuperProperty(
1796 | update,
| |- warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1797 | superProperties: &superPropertiesShadow)
1798 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1912:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1910 | public func optOutTracking() {
1911 | trackingQueue.async { [weak self] in
1912 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1913 | if self.people.distinctId != nil {
1914 | self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1971:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1969 | public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1970 | trackingQueue.async { [weak self] in
1971 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1972 | self.readWriteLock.write {
1973 | self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1981:54: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1979 | self.identify(distinctId: distinctId)
1980 | }
1981 | self.track(event: "$opt_in", properties: properties)
| `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1982 |
1983 | #if os(iOS) && !targetEnvironment(macCatalyst)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:24: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 |
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
| |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:24: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
| |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:24: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
| |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
63 |
64 | /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:73:23: warning: result of call to 'write(closure:)' is unused
71 | /// Enable log messages of a specific `LogLevel` to be added to the log
72 | class func enableLevel(_ level: MixpanelLogLevel) {
73 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
74 | enabledLevels.insert(level)
75 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:80:23: warning: result of call to 'write(closure:)' is unused
78 | /// Disable log messages of a specific `LogLevel` to prevent them from being logged
79 | class func disableLevel(_ level: MixpanelLogLevel) {
80 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
81 | enabledLevels.remove(level)
82 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelOptions.swift:303:14: warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
301 | self.flushInterval = flushInterval
302 | self.instanceName = instanceName
303 | self.trackAutomaticEvents = trackAutomaticEvents
| `- warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
304 | self.optOutTrackingByDefault = optOutTrackingByDefault
305 | self.useUniqueDistinctId = useUniqueDistinctId
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:620:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
618 | // See: https://github.com/mixpanel/mixpanel-swift/issues/522
619 | DispatchQueue.main.async { [weak self] in
620 | guard let self = self else { return }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
621 | self.automaticEvents.initializeEvents(instanceName: self.name)
622 | }
[45/50] Compiling Mixpanel MixpanelLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:390:43: warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
388 | flushInterval: options.flushInterval,
389 | name: options.instanceName ?? options.token,
390 | trackAutomaticEvents: options.trackAutomaticEvents,
| `- warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
391 | optOutTrackingByDefault: options.optOutTrackingByDefault,
392 | useUniqueDistinctId: options.useUniqueDistinctId,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:479:9: warning: 'trackAutomaticEventsEnabled' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
477 | self.apiToken = apiToken
478 | }
479 | trackAutomaticEventsEnabled = trackAutomaticEvents
| `- warning: 'trackAutomaticEventsEnabled' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
480 | // Capture UI properties (screen size) that require main thread access.
481 | // This is called here to ensure $ae_first_open event includes screen size.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:982:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
980 | if hasOptedOutTracking() {
981 | if let completion = completion {
982 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
983 | }
984 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:989:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
987 | MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
988 | if let completion = completion {
989 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
990 | }
991 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1045:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1043 | hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
1044 | if let completion = completion {
1045 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1046 | }
1047 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:994:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
992 | }
993 | trackingQueue.async { [weak self, distinctId, usePeople] in
994 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
995 |
996 | // If there's no anonymousId assigned yet, that means distinctId is stored in the storage. Assigning already stored
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1044:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1042 | alias: self.alias,
1043 | hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
1044 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1045 | DispatchQueue.main.async(execute: completion)
1046 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1083:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1081 | if hasOptedOutTracking() {
1082 | if let completion = completion {
1083 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1084 | }
1085 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1091:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1089 | MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
1090 | if let completion = completion {
1091 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1092 | }
1093 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1099:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1097 | MixpanelLogger.error(message: "\(self) create alias called with empty alias")
1098 | if let completion = completion {
1099 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1100 | }
1101 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1108:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1106 | guard let self = self else {
1107 | if let completion = completion {
1108 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1109 | }
1110 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1152:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1150 | message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
1151 | if let completion = completion {
1152 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1153 | }
1154 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1106:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1104 | if alias != distinctId {
1105 | trackingQueue.async { [weak self, alias] in
1106 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1107 | if let completion = completion {
1108 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1107:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1105 | trackingQueue.async { [weak self, alias] in
1106 | guard let self = self else {
1107 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1108 | DispatchQueue.main.async(execute: completion)
1109 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1202:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1200 | let fireUserCompletion: () -> Void = {
1201 | if let completion = completion {
1202 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1203 | }
1204 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1170:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1168 | flush()
1169 | trackingQueue.async { [weak self] in
1170 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1171 | return
1172 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1201:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1199 | let flagManager = self.flags as? FeatureFlagManager
1200 | let fireUserCompletion: () -> Void = {
1201 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1202 | DispatchQueue.main.async(execute: completion)
1203 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1201:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in an isolated closure; this is an error in the Swift 6 language mode
1199 | let flagManager = self.flags as? FeatureFlagManager
1200 | let fireUserCompletion: () -> Void = {
1201 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1202 | DispatchQueue.main.async(execute: completion)
1203 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1315:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1313 | if hasOptedOutTracking() {
1314 | if let completion = completion {
1315 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1316 | }
1317 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1322:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1320 | guard let self = self else {
1321 | if let completion = completion {
1322 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1323 | }
1324 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1320:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1318 | }
1319 | trackingQueue.async { [weak self, completion] in
1320 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1321 | if let completion = completion {
1322 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1321:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1319 | trackingQueue.async { [weak self, completion] in
1320 | guard let self = self else {
1321 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1322 | DispatchQueue.main.async(execute: completion)
1323 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1357:47: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1355 | isFlushing = false
1356 | if let completion = completion {
1357 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1358 | }
1359 | if hasPendingFlush {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1390:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1388 | guard let self = self else {
1389 | if let completion = completion {
1390 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1391 | }
1392 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1398:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1396 | guard let self = self else {
1397 | if let completion = completion {
1398 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1399 | }
1400 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1388:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1386 |
1387 | networkQueue.async { [weak self] in
1388 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1389 | if let completion = completion {
1390 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1389:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1387 | networkQueue.async { [weak self] in
1388 | guard let self = self else {
1389 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1390 | DispatchQueue.main.async(execute: completion)
1391 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1394:41: warning: capture of 'batch' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1392 | return
1393 | }
1394 | let result = self.sendBatch(batch, type: type)
| `- warning: capture of 'batch' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1395 | self.trackingQueue.async { [weak self] in
1396 | guard let self = self else {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1396:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1394 | let result = self.sendBatch(batch, type: type)
1395 | self.trackingQueue.async { [weak self] in
1396 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1397 | if let completion = completion {
1398 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1397:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1395 | self.trackingQueue.async { [weak self] in
1396 | guard let self = self else {
1397 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1398 | DispatchQueue.main.async(execute: completion)
1399 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1462:23: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1460 |
1461 | trackingQueue.async { [weak self, event, properties, epochInterval] in
1462 | guard let self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1463 | return
1464 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1485:29: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1483 | let timedEventsSnapshot = self.trackInstance.track(
1484 | event: event,
1485 | properties: properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1486 | timedEvents: shadowTimedEvents,
1487 | superProperties: shadowSuperProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1617:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1615 | let startTime = Date().timeIntervalSince1970
1616 | trackingQueue.async { [weak self, startTime, event] in
1617 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1618 | let timedEvents = self.trackInstance.time(
1619 | event: event, timedEvents: self.timedEvents, startTime: startTime)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1649:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1647 | public func clearTimedEvents() {
1648 | trackingQueue.async { [weak self] in
1649 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1650 | self.readWriteLock.write {
1651 | self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1665:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1663 | public func clearTimedEvent(event: String) {
1664 | trackingQueue.async { [weak self, event] in
1665 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1666 |
1667 | let updatedTimedEvents = self.trackInstance.clearTimedEvent(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1691:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1689 | public func clearSuperProperties() {
1690 | trackingQueue.async { [weak self] in
1691 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1692 | self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1693 | MixpanelPersistence.saveSuperProperties(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1711:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1709 | public func registerSuperProperties(_ properties: Properties) {
1710 | trackingQueue.async { [weak self] in
1711 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1712 | let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1713 | properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1713:17: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1711 | guard let self = self else { return }
1712 | let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1713 | properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1714 | superProperties: self.superProperties)
1715 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1740:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1738 | ) {
1739 | trackingQueue.async { [weak self] in
1740 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1741 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1742 | properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1742:17: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1740 | guard let self = self else { return }
1741 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1742 | properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1743 | superProperties: self.superProperties,
1744 | defaultValue: defaultValue)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1744:31: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1742 | properties,
1743 | superProperties: self.superProperties,
1744 | defaultValue: defaultValue)
| `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1745 | self.readWriteLock.write {
1746 | self.superProperties = updatedSuperProperties
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1770:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1768 | public func unregisterSuperProperty(_ propertyName: String) {
1769 | trackingQueue.async { [weak self] in
1770 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1771 | let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(
1772 | propertyName,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1793:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1791 | ) {
1792 | trackingQueue.async { [weak self] in
1793 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1794 | var superPropertiesShadow = self.superProperties
1795 | self.trackInstance.updateSuperProperty(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1796:17: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1794 | var superPropertiesShadow = self.superProperties
1795 | self.trackInstance.updateSuperProperty(
1796 | update,
| |- warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1797 | superProperties: &superPropertiesShadow)
1798 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1912:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1910 | public func optOutTracking() {
1911 | trackingQueue.async { [weak self] in
1912 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1913 | if self.people.distinctId != nil {
1914 | self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1971:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1969 | public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1970 | trackingQueue.async { [weak self] in
1971 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1972 | self.readWriteLock.write {
1973 | self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1981:54: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1979 | self.identify(distinctId: distinctId)
1980 | }
1981 | self.track(event: "$opt_in", properties: properties)
| `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1982 |
1983 | #if os(iOS) && !targetEnvironment(macCatalyst)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:24: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 |
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
| |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:24: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
| |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:24: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
| |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
63 |
64 | /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:73:23: warning: result of call to 'write(closure:)' is unused
71 | /// Enable log messages of a specific `LogLevel` to be added to the log
72 | class func enableLevel(_ level: MixpanelLogLevel) {
73 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
74 | enabledLevels.insert(level)
75 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:80:23: warning: result of call to 'write(closure:)' is unused
78 | /// Disable log messages of a specific `LogLevel` to prevent them from being logged
79 | class func disableLevel(_ level: MixpanelLogLevel) {
80 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
81 | enabledLevels.remove(level)
82 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelOptions.swift:303:14: warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
301 | self.flushInterval = flushInterval
302 | self.instanceName = instanceName
303 | self.trackAutomaticEvents = trackAutomaticEvents
| `- warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
304 | self.optOutTrackingByDefault = optOutTrackingByDefault
305 | self.useUniqueDistinctId = useUniqueDistinctId
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:620:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
618 | // See: https://github.com/mixpanel/mixpanel-swift/issues/522
619 | DispatchQueue.main.async { [weak self] in
620 | guard let self = self else { return }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
621 | self.automaticEvents.initializeEvents(instanceName: self.name)
622 | }
[46/50] Compiling Mixpanel MixpanelOptions.swift
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:390:43: warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
388 | flushInterval: options.flushInterval,
389 | name: options.instanceName ?? options.token,
390 | trackAutomaticEvents: options.trackAutomaticEvents,
| `- warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
391 | optOutTrackingByDefault: options.optOutTrackingByDefault,
392 | useUniqueDistinctId: options.useUniqueDistinctId,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:479:9: warning: 'trackAutomaticEventsEnabled' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
477 | self.apiToken = apiToken
478 | }
479 | trackAutomaticEventsEnabled = trackAutomaticEvents
| `- warning: 'trackAutomaticEventsEnabled' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
480 | // Capture UI properties (screen size) that require main thread access.
481 | // This is called here to ensure $ae_first_open event includes screen size.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:982:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
980 | if hasOptedOutTracking() {
981 | if let completion = completion {
982 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
983 | }
984 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:989:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
987 | MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
988 | if let completion = completion {
989 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
990 | }
991 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1045:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1043 | hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
1044 | if let completion = completion {
1045 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1046 | }
1047 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:994:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
992 | }
993 | trackingQueue.async { [weak self, distinctId, usePeople] in
994 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
995 |
996 | // If there's no anonymousId assigned yet, that means distinctId is stored in the storage. Assigning already stored
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1044:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1042 | alias: self.alias,
1043 | hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
1044 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1045 | DispatchQueue.main.async(execute: completion)
1046 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1083:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1081 | if hasOptedOutTracking() {
1082 | if let completion = completion {
1083 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1084 | }
1085 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1091:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1089 | MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
1090 | if let completion = completion {
1091 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1092 | }
1093 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1099:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1097 | MixpanelLogger.error(message: "\(self) create alias called with empty alias")
1098 | if let completion = completion {
1099 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1100 | }
1101 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1108:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1106 | guard let self = self else {
1107 | if let completion = completion {
1108 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1109 | }
1110 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1152:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1150 | message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
1151 | if let completion = completion {
1152 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1153 | }
1154 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1106:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1104 | if alias != distinctId {
1105 | trackingQueue.async { [weak self, alias] in
1106 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1107 | if let completion = completion {
1108 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1107:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1105 | trackingQueue.async { [weak self, alias] in
1106 | guard let self = self else {
1107 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1108 | DispatchQueue.main.async(execute: completion)
1109 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1202:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1200 | let fireUserCompletion: () -> Void = {
1201 | if let completion = completion {
1202 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1203 | }
1204 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1170:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1168 | flush()
1169 | trackingQueue.async { [weak self] in
1170 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1171 | return
1172 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1201:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1199 | let flagManager = self.flags as? FeatureFlagManager
1200 | let fireUserCompletion: () -> Void = {
1201 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1202 | DispatchQueue.main.async(execute: completion)
1203 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1201:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in an isolated closure; this is an error in the Swift 6 language mode
1199 | let flagManager = self.flags as? FeatureFlagManager
1200 | let fireUserCompletion: () -> Void = {
1201 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1202 | DispatchQueue.main.async(execute: completion)
1203 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1315:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1313 | if hasOptedOutTracking() {
1314 | if let completion = completion {
1315 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1316 | }
1317 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1322:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1320 | guard let self = self else {
1321 | if let completion = completion {
1322 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1323 | }
1324 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1320:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1318 | }
1319 | trackingQueue.async { [weak self, completion] in
1320 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1321 | if let completion = completion {
1322 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1321:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1319 | trackingQueue.async { [weak self, completion] in
1320 | guard let self = self else {
1321 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1322 | DispatchQueue.main.async(execute: completion)
1323 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1357:47: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1355 | isFlushing = false
1356 | if let completion = completion {
1357 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1358 | }
1359 | if hasPendingFlush {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1390:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1388 | guard let self = self else {
1389 | if let completion = completion {
1390 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1391 | }
1392 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1398:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1396 | guard let self = self else {
1397 | if let completion = completion {
1398 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1399 | }
1400 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1388:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1386 |
1387 | networkQueue.async { [weak self] in
1388 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1389 | if let completion = completion {
1390 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1389:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1387 | networkQueue.async { [weak self] in
1388 | guard let self = self else {
1389 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1390 | DispatchQueue.main.async(execute: completion)
1391 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1394:41: warning: capture of 'batch' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1392 | return
1393 | }
1394 | let result = self.sendBatch(batch, type: type)
| `- warning: capture of 'batch' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1395 | self.trackingQueue.async { [weak self] in
1396 | guard let self = self else {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1396:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1394 | let result = self.sendBatch(batch, type: type)
1395 | self.trackingQueue.async { [weak self] in
1396 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1397 | if let completion = completion {
1398 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1397:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1395 | self.trackingQueue.async { [weak self] in
1396 | guard let self = self else {
1397 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1398 | DispatchQueue.main.async(execute: completion)
1399 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1462:23: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1460 |
1461 | trackingQueue.async { [weak self, event, properties, epochInterval] in
1462 | guard let self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1463 | return
1464 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1485:29: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1483 | let timedEventsSnapshot = self.trackInstance.track(
1484 | event: event,
1485 | properties: properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1486 | timedEvents: shadowTimedEvents,
1487 | superProperties: shadowSuperProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1617:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1615 | let startTime = Date().timeIntervalSince1970
1616 | trackingQueue.async { [weak self, startTime, event] in
1617 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1618 | let timedEvents = self.trackInstance.time(
1619 | event: event, timedEvents: self.timedEvents, startTime: startTime)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1649:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1647 | public func clearTimedEvents() {
1648 | trackingQueue.async { [weak self] in
1649 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1650 | self.readWriteLock.write {
1651 | self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1665:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1663 | public func clearTimedEvent(event: String) {
1664 | trackingQueue.async { [weak self, event] in
1665 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1666 |
1667 | let updatedTimedEvents = self.trackInstance.clearTimedEvent(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1691:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1689 | public func clearSuperProperties() {
1690 | trackingQueue.async { [weak self] in
1691 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1692 | self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1693 | MixpanelPersistence.saveSuperProperties(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1711:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1709 | public func registerSuperProperties(_ properties: Properties) {
1710 | trackingQueue.async { [weak self] in
1711 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1712 | let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1713 | properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1713:17: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1711 | guard let self = self else { return }
1712 | let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1713 | properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1714 | superProperties: self.superProperties)
1715 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1740:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1738 | ) {
1739 | trackingQueue.async { [weak self] in
1740 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1741 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1742 | properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1742:17: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1740 | guard let self = self else { return }
1741 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1742 | properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1743 | superProperties: self.superProperties,
1744 | defaultValue: defaultValue)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1744:31: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1742 | properties,
1743 | superProperties: self.superProperties,
1744 | defaultValue: defaultValue)
| `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1745 | self.readWriteLock.write {
1746 | self.superProperties = updatedSuperProperties
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1770:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1768 | public func unregisterSuperProperty(_ propertyName: String) {
1769 | trackingQueue.async { [weak self] in
1770 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1771 | let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(
1772 | propertyName,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1793:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1791 | ) {
1792 | trackingQueue.async { [weak self] in
1793 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1794 | var superPropertiesShadow = self.superProperties
1795 | self.trackInstance.updateSuperProperty(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1796:17: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1794 | var superPropertiesShadow = self.superProperties
1795 | self.trackInstance.updateSuperProperty(
1796 | update,
| |- warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1797 | superProperties: &superPropertiesShadow)
1798 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1912:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1910 | public func optOutTracking() {
1911 | trackingQueue.async { [weak self] in
1912 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1913 | if self.people.distinctId != nil {
1914 | self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1971:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
73 |
74 | /// The class that represents the Mixpanel Instance
75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
76 | MixpanelFlagDelegate
77 | {
:
1969 | public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1970 | trackingQueue.async { [weak self] in
1971 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1972 | self.readWriteLock.write {
1973 | self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1981:54: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1979 | self.identify(distinctId: distinctId)
1980 | }
1981 | self.track(event: "$opt_in", properties: properties)
| `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1982 |
1983 | #if os(iOS) && !targetEnvironment(macCatalyst)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:24: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 |
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
| |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:24: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
| |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:24: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
| |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
63 |
64 | /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:73:23: warning: result of call to 'write(closure:)' is unused
71 | /// Enable log messages of a specific `LogLevel` to be added to the log
72 | class func enableLevel(_ level: MixpanelLogLevel) {
73 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
74 | enabledLevels.insert(level)
75 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:80:23: warning: result of call to 'write(closure:)' is unused
78 | /// Disable log messages of a specific `LogLevel` to prevent them from being logged
79 | class func disableLevel(_ level: MixpanelLogLevel) {
80 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
81 | enabledLevels.remove(level)
82 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelOptions.swift:303:14: warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
301 | self.flushInterval = flushInterval
302 | self.instanceName = instanceName
303 | self.trackAutomaticEvents = trackAutomaticEvents
| `- warning: 'trackAutomaticEvents' is deprecated: Automatic Events are deprecated and will be removed in a future major version. Use autocaptureOptions instead.
304 | self.optOutTrackingByDefault = optOutTrackingByDefault
305 | self.useUniqueDistinctId = useUniqueDistinctId
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:620:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
618 | // See: https://github.com/mixpanel/mixpanel-swift/issues/522
619 | DispatchQueue.main.async { [weak self] in
620 | guard let self = self else { return }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
621 | self.automaticEvents.initializeEvents(instanceName: self.name)
622 | }
[47/50] Compiling Mixpanel TouchInterceptor.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:143:29: warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
22 | #endif
23 |
24 | class AutomaticEvents: NSObject, SKPaymentTransactionObserver, SKProductsRequestDelegate {
| `- note: class 'AutomaticEvents' does not conform to the 'Sendable' protocol
25 |
26 | var _minimumSessionDuration: UInt64 = 10000
:
141 | case .purchased:
142 | productIdentifiers.insert(trans.payment.productIdentifier)
143 | awaitingTransactions[trans.payment.productIdentifier] = trans
| `- warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
144 | case .failed: break
145 | case .restored: break
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:17: warning: capture of 'productsRequest' with non-sendable type 'SKProductsRequest' in a '@Sendable' closure
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: capture of 'productsRequest' with non-sendable type 'SKProductsRequest' in a '@Sendable' closure
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductsRequest.h:28:12: note: class 'SKProductsRequest' does not conform to the 'Sendable' protocol
26 | API_DEPRECATED("Use Product.products(for:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
27 | NS_SWIFT_NONSENDABLE
28 | @interface SKProductsRequest : SKRequest {
| `- note: class 'SKProductsRequest' does not conform to the 'Sendable' protocol
29 | @private
30 | id _productsRequestInternal;
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:142:29: warning: mutation of captured var 'productIdentifiers' in concurrently-executing code
140 | switch trans.transactionState {
141 | case .purchased:
142 | productIdentifiers.insert(trans.payment.productIdentifier)
| `- warning: mutation of captured var 'productIdentifiers' in concurrently-executing code
143 | awaitingTransactions[trans.payment.productIdentifier] = trans
144 | case .failed: break
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:150:17: warning: reference to captured var 'productIdentifiers' in concurrently-executing code
148 | }
149 | }
150 | if !productIdentifiers.isEmpty {
| `- warning: reference to captured var 'productIdentifiers' in concurrently-executing code
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:17: warning: mutation of captured var 'productsRequest' in concurrently-executing code
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: mutation of captured var 'productsRequest' in concurrently-executing code
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:73: warning: reference to captured var 'productIdentifiers' in concurrently-executing code
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: reference to captured var 'productIdentifiers' in concurrently-executing code
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:152:17: warning: reference to captured var 'productsRequest' in concurrently-executing code
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
| `- warning: reference to captured var 'productsRequest' in concurrently-executing code
153 | productsRequest.start()
154 | }
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:153:17: warning: reference to captured var 'productsRequest' in concurrently-executing code
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
153 | productsRequest.start()
| `- warning: reference to captured var 'productsRequest' in concurrently-executing code
154 | }
155 | }
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:166:32: warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
22 | #endif
23 |
24 | class AutomaticEvents: NSObject, SKPaymentTransactionObserver, SKProductsRequestDelegate {
| `- note: class 'AutomaticEvents' does not conform to the 'Sendable' protocol
25 |
26 | var _minimumSessionDuration: UInt64 = 10000
:
164 | awaitingTransactionsWriteLock.async { [self] in
165 | for product in response.products {
166 | if let trans = awaitingTransactions[product.productIdentifier] {
| `- warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
167 | delegate?.track(
168 | event: "$ae_iap",
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | class AutomaticProperties {
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
| |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
21 |
22 | static var properties: InternalProperties = {
| |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | var p = InternalProperties()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:73:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 | }()
72 |
73 | static var peopleProperties: InternalProperties = {
| |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
74 | var p = InternalProperties()
75 | let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:16:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | struct QueueConstants {
16 | static var queueSize = 5000
| |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | }
18 |
[48/50] Compiling Mixpanel AutomaticEvents.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:143:29: warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
22 | #endif
23 |
24 | class AutomaticEvents: NSObject, SKPaymentTransactionObserver, SKProductsRequestDelegate {
| `- note: class 'AutomaticEvents' does not conform to the 'Sendable' protocol
25 |
26 | var _minimumSessionDuration: UInt64 = 10000
:
141 | case .purchased:
142 | productIdentifiers.insert(trans.payment.productIdentifier)
143 | awaitingTransactions[trans.payment.productIdentifier] = trans
| `- warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
144 | case .failed: break
145 | case .restored: break
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:17: warning: capture of 'productsRequest' with non-sendable type 'SKProductsRequest' in a '@Sendable' closure
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: capture of 'productsRequest' with non-sendable type 'SKProductsRequest' in a '@Sendable' closure
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductsRequest.h:28:12: note: class 'SKProductsRequest' does not conform to the 'Sendable' protocol
26 | API_DEPRECATED("Use Product.products(for:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
27 | NS_SWIFT_NONSENDABLE
28 | @interface SKProductsRequest : SKRequest {
| `- note: class 'SKProductsRequest' does not conform to the 'Sendable' protocol
29 | @private
30 | id _productsRequestInternal;
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:142:29: warning: mutation of captured var 'productIdentifiers' in concurrently-executing code
140 | switch trans.transactionState {
141 | case .purchased:
142 | productIdentifiers.insert(trans.payment.productIdentifier)
| `- warning: mutation of captured var 'productIdentifiers' in concurrently-executing code
143 | awaitingTransactions[trans.payment.productIdentifier] = trans
144 | case .failed: break
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:150:17: warning: reference to captured var 'productIdentifiers' in concurrently-executing code
148 | }
149 | }
150 | if !productIdentifiers.isEmpty {
| `- warning: reference to captured var 'productIdentifiers' in concurrently-executing code
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:17: warning: mutation of captured var 'productsRequest' in concurrently-executing code
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: mutation of captured var 'productsRequest' in concurrently-executing code
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:73: warning: reference to captured var 'productIdentifiers' in concurrently-executing code
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: reference to captured var 'productIdentifiers' in concurrently-executing code
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:152:17: warning: reference to captured var 'productsRequest' in concurrently-executing code
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
| `- warning: reference to captured var 'productsRequest' in concurrently-executing code
153 | productsRequest.start()
154 | }
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:153:17: warning: reference to captured var 'productsRequest' in concurrently-executing code
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
153 | productsRequest.start()
| `- warning: reference to captured var 'productsRequest' in concurrently-executing code
154 | }
155 | }
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:166:32: warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
22 | #endif
23 |
24 | class AutomaticEvents: NSObject, SKPaymentTransactionObserver, SKProductsRequestDelegate {
| `- note: class 'AutomaticEvents' does not conform to the 'Sendable' protocol
25 |
26 | var _minimumSessionDuration: UInt64 = 10000
:
164 | awaitingTransactionsWriteLock.async { [self] in
165 | for product in response.products {
166 | if let trans = awaitingTransactions[product.productIdentifier] {
| `- warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
167 | delegate?.track(
168 | event: "$ae_iap",
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | class AutomaticProperties {
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
| |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
21 |
22 | static var properties: InternalProperties = {
| |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | var p = InternalProperties()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:73:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 | }()
72 |
73 | static var peopleProperties: InternalProperties = {
| |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
74 | var p = InternalProperties()
75 | let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:16:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | struct QueueConstants {
16 | static var queueSize = 5000
| |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | }
18 |
[49/50] Compiling Mixpanel AutomaticProperties.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:143:29: warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
22 | #endif
23 |
24 | class AutomaticEvents: NSObject, SKPaymentTransactionObserver, SKProductsRequestDelegate {
| `- note: class 'AutomaticEvents' does not conform to the 'Sendable' protocol
25 |
26 | var _minimumSessionDuration: UInt64 = 10000
:
141 | case .purchased:
142 | productIdentifiers.insert(trans.payment.productIdentifier)
143 | awaitingTransactions[trans.payment.productIdentifier] = trans
| `- warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
144 | case .failed: break
145 | case .restored: break
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:17: warning: capture of 'productsRequest' with non-sendable type 'SKProductsRequest' in a '@Sendable' closure
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: capture of 'productsRequest' with non-sendable type 'SKProductsRequest' in a '@Sendable' closure
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductsRequest.h:28:12: note: class 'SKProductsRequest' does not conform to the 'Sendable' protocol
26 | API_DEPRECATED("Use Product.products(for:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
27 | NS_SWIFT_NONSENDABLE
28 | @interface SKProductsRequest : SKRequest {
| `- note: class 'SKProductsRequest' does not conform to the 'Sendable' protocol
29 | @private
30 | id _productsRequestInternal;
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:142:29: warning: mutation of captured var 'productIdentifiers' in concurrently-executing code
140 | switch trans.transactionState {
141 | case .purchased:
142 | productIdentifiers.insert(trans.payment.productIdentifier)
| `- warning: mutation of captured var 'productIdentifiers' in concurrently-executing code
143 | awaitingTransactions[trans.payment.productIdentifier] = trans
144 | case .failed: break
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:150:17: warning: reference to captured var 'productIdentifiers' in concurrently-executing code
148 | }
149 | }
150 | if !productIdentifiers.isEmpty {
| `- warning: reference to captured var 'productIdentifiers' in concurrently-executing code
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:17: warning: mutation of captured var 'productsRequest' in concurrently-executing code
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: mutation of captured var 'productsRequest' in concurrently-executing code
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:73: warning: reference to captured var 'productIdentifiers' in concurrently-executing code
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: reference to captured var 'productIdentifiers' in concurrently-executing code
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:152:17: warning: reference to captured var 'productsRequest' in concurrently-executing code
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
| `- warning: reference to captured var 'productsRequest' in concurrently-executing code
153 | productsRequest.start()
154 | }
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:153:17: warning: reference to captured var 'productsRequest' in concurrently-executing code
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
153 | productsRequest.start()
| `- warning: reference to captured var 'productsRequest' in concurrently-executing code
154 | }
155 | }
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:166:32: warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
22 | #endif
23 |
24 | class AutomaticEvents: NSObject, SKPaymentTransactionObserver, SKProductsRequestDelegate {
| `- note: class 'AutomaticEvents' does not conform to the 'Sendable' protocol
25 |
26 | var _minimumSessionDuration: UInt64 = 10000
:
164 | awaitingTransactionsWriteLock.async { [self] in
165 | for product in response.products {
166 | if let trans = awaitingTransactions[product.productIdentifier] {
| `- warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
167 | delegate?.track(
168 | event: "$ae_iap",
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | class AutomaticProperties {
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
| |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
21 |
22 | static var properties: InternalProperties = {
| |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | var p = InternalProperties()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:73:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 | }()
72 |
73 | static var peopleProperties: InternalProperties = {
| |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
74 | var p = InternalProperties()
75 | let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:16:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | struct QueueConstants {
16 | static var queueSize = 5000
| |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | }
18 |
[50/50] Compiling Mixpanel Constants.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:143:29: warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
22 | #endif
23 |
24 | class AutomaticEvents: NSObject, SKPaymentTransactionObserver, SKProductsRequestDelegate {
| `- note: class 'AutomaticEvents' does not conform to the 'Sendable' protocol
25 |
26 | var _minimumSessionDuration: UInt64 = 10000
:
141 | case .purchased:
142 | productIdentifiers.insert(trans.payment.productIdentifier)
143 | awaitingTransactions[trans.payment.productIdentifier] = trans
| `- warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
144 | case .failed: break
145 | case .restored: break
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:17: warning: capture of 'productsRequest' with non-sendable type 'SKProductsRequest' in a '@Sendable' closure
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: capture of 'productsRequest' with non-sendable type 'SKProductsRequest' in a '@Sendable' closure
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKProductsRequest.h:28:12: note: class 'SKProductsRequest' does not conform to the 'Sendable' protocol
26 | API_DEPRECATED("Use Product.products(for:)", ios(3.0, 18.0), macos(10.7, 15.0), watchos(6.2, 11.0), visionos(1.0, 2.0))
27 | NS_SWIFT_NONSENDABLE
28 | @interface SKProductsRequest : SKRequest {
| `- note: class 'SKProductsRequest' does not conform to the 'Sendable' protocol
29 | @private
30 | id _productsRequestInternal;
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:142:29: warning: mutation of captured var 'productIdentifiers' in concurrently-executing code
140 | switch trans.transactionState {
141 | case .purchased:
142 | productIdentifiers.insert(trans.payment.productIdentifier)
| `- warning: mutation of captured var 'productIdentifiers' in concurrently-executing code
143 | awaitingTransactions[trans.payment.productIdentifier] = trans
144 | case .failed: break
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:150:17: warning: reference to captured var 'productIdentifiers' in concurrently-executing code
148 | }
149 | }
150 | if !productIdentifiers.isEmpty {
| `- warning: reference to captured var 'productIdentifiers' in concurrently-executing code
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:17: warning: mutation of captured var 'productsRequest' in concurrently-executing code
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: mutation of captured var 'productsRequest' in concurrently-executing code
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:151:73: warning: reference to captured var 'productIdentifiers' in concurrently-executing code
149 | }
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
| `- warning: reference to captured var 'productIdentifiers' in concurrently-executing code
152 | productsRequest.delegate = self
153 | productsRequest.start()
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:152:17: warning: reference to captured var 'productsRequest' in concurrently-executing code
150 | if !productIdentifiers.isEmpty {
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
| `- warning: reference to captured var 'productsRequest' in concurrently-executing code
153 | productsRequest.start()
154 | }
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:153:17: warning: reference to captured var 'productsRequest' in concurrently-executing code
151 | productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
152 | productsRequest.delegate = self
153 | productsRequest.start()
| `- warning: reference to captured var 'productsRequest' in concurrently-executing code
154 | }
155 | }
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticEvents.swift:166:32: warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
22 | #endif
23 |
24 | class AutomaticEvents: NSObject, SKPaymentTransactionObserver, SKProductsRequestDelegate {
| `- note: class 'AutomaticEvents' does not conform to the 'Sendable' protocol
25 |
26 | var _minimumSessionDuration: UInt64 = 10000
:
164 | awaitingTransactionsWriteLock.async { [self] in
165 | for product in response.products {
166 | if let trans = awaitingTransactions[product.productIdentifier] {
| `- warning: capture of 'self' with non-sendable type 'AutomaticEvents' in a '@Sendable' closure
167 | delegate?.track(
168 | event: "$ae_iap",
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | class AutomaticProperties {
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
| |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
21 |
22 | static var properties: InternalProperties = {
| |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | var p = InternalProperties()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:73:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 | }()
72 |
73 | static var peopleProperties: InternalProperties = {
| |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
74 | var p = InternalProperties()
75 | let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:16:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | struct QueueConstants {
16 | static var queueSize = 5000
| |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | }
18 |
Build complete! (11.31s)
Fetching https://github.com/mixpanel/mixpanel-swift-common.git
[1/781] Fetching mixpanel-swift-common
Fetched https://github.com/mixpanel/mixpanel-swift-common.git from cache (0.95s)
Computing version for https://github.com/mixpanel/mixpanel-swift-common.git
Computed https://github.com/mixpanel/mixpanel-swift-common.git at 2.0.0 (1.55s)
Creating working copy for https://github.com/mixpanel/mixpanel-swift-common.git
Working copy of https://github.com/mixpanel/mixpanel-swift-common.git resolved at 2.0.0
Build complete.
{
"dependencies" : [
{
"identity" : "mixpanel-swift-common",
"requirement" : {
"range" : [
{
"lower_bound" : "2.0.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/mixpanel/mixpanel-swift-common.git"
}
],
"manifest_display_name" : "Mixpanel",
"name" : "Mixpanel",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "9.0"
}
],
"products" : [
{
"name" : "Mixpanel",
"targets" : [
"Mixpanel"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "Mixpanel",
"module_type" : "SwiftTarget",
"name" : "Mixpanel",
"path" : "Sources",
"product_dependencies" : [
"MixpanelSwiftCommon"
],
"product_memberships" : [
"Mixpanel"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"Autocapture.swift",
"Autocapture/AutocaptureManager.swift",
"Autocapture/AutocaptureOptions.swift",
"Autocapture/DeadClickDetector.swift",
"Autocapture/ElementIdExtractor.swift",
"Autocapture/Model/ClickEvent.swift",
"Autocapture/RageClickTracker.swift",
"Autocapture/SemanticExtractor.swift",
"Autocapture/TouchInterceptor.swift",
"AutomaticEvents.swift",
"AutomaticProperties.swift",
"Constants.swift",
"CustomOperators.swift",
"Data+Compression.swift",
"Error.swift",
"FeatureFlags.swift",
"FileLogging.swift",
"Flush.swift",
"FlushRequest.swift",
"Group.swift",
"JSONHandler.swift",
"MPDB.swift",
"Mixpanel.swift",
"MixpanelInstance.swift",
"MixpanelLogger.swift",
"MixpanelOptions.swift",
"MixpanelPersistence.swift",
"MixpanelType.swift",
"Network.swift",
"People.swift",
"PrintLogging.swift",
"ReadWriteLock.swift",
"SessionMetadata.swift",
"Track.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Done.