The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Revnix, reference main (1ef8e2), with Swift 6.4 for macOS (SPM) on 1 Nov 2026 05:23:48 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.4
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Oth-tech/RevnixSDK-iOS.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Oth-tech/RevnixSDK-iOS
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 1ef8e2a Merge pull request #71 from Oth-tech/docs-audit
Cloned https://github.com/Oth-tech/RevnixSDK-iOS.git
Revision (git rev-parse @):
1ef8e2aec6b695f6d1af3acbce89ea39d7ab4bff
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/Oth-tech/RevnixSDK-iOS.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "traits": [
    "default"
  ],
  "dependencies": [
    {
      "identity": "revnixsdk-ios",
      "name": "Revnix",
      "url": "https://github.com/Oth-tech/RevnixSDK-iOS.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/RevnixSDK-iOS",
      "traits": [
        "default"
      ],
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/Oth-tech/RevnixSDK-iOS.git
[1/758] Fetching revnixsdk-ios
Fetched https://github.com/Oth-tech/RevnixSDK-iOS.git (1.26s)
Creating working copy for https://github.com/Oth-tech/RevnixSDK-iOS.git
Working copy of https://github.com/Oth-tech/RevnixSDK-iOS.git resolved at main (1ef8e2a)
warning: '.resolve-product-dependencies': dependency 'revnixsdk-ios' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/Oth-tech/RevnixSDK-iOS.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0.app xcrun swift build --arch arm64
Building for debugging...
[Pre-planning 1 / 124]
[Planning deferred tasks]
[42 / 55] Revnix_Revnix
[46 / 55]
[47 / 56] Revnix
[57 / 150]
[61 / 150]
[69 / 150]
[71 / 150]
[72 / 150]
[77 / 150]
[79 / 150]
[81 / 150]
[85 / 150]
[90 / 150]
[93 / 150]
[95 / 150]
[96 / 150]
[108 / 150]
[116 / 150]
[117 / 150]
[122 / 150]
[127 / 150]
[128 / 150]
[141 / 150] Revnix
[142 / 150] Revnix
[147 / 150] Revnix
Build complete! (17.17 sec)
/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PaywallBlocks.swift:347:71: warning: conditional downcast from 'String?' to 'String' does nothing
345 |         let c = try decoder.container(keyedBy: CodingKeys.self)
346 |         icon = try? c.decodeIfPresent(String.self, forKey: .icon)
347 |         title = (try? c.decodeIfPresent(String.self, forKey: .title)) as? String ?? ""
    |                                                                       `- warning: conditional downcast from 'String?' to 'String' does nothing
348 |         description = try? c.decodeIfPresent(String.self, forKey: .description)
349 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PaywallBlocks.swift:544:69: warning: conditional downcast from 'String?' to 'String' does nothing
542 |             return
543 |         }
544 |         let id = (try? c.decodeIfPresent(String.self, forKey: .id)) as? String ?? ""
    |                                                                     `- warning: conditional downcast from 'String?' to 'String' does nothing
545 |         let style = try? c.decodeIfPresent(BlockStyle.self, forKey: .style)
546 |         func string(_ key: Keys) -> String? { (try? c.decodeIfPresent(String.self, forKey: key)) ?? nil }
/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PaywallBlocks.swift:573:83: warning: conditional downcast from '[ListItem]?' to '[ListItem]' does nothing
571 |             ))
572 |         case "list":
573 |             let items = (try? c.decodeIfPresent([ListItem].self, forKey: .items)) as? [ListItem] ?? []
    |                                                                                   `- warning: conditional downcast from '[ListItem]?' to '[ListItem]' does nothing
574 |             self = .list(ListBlock(
575 |                 id: id, items: items, iconColor: string(.iconColor), style: style,
/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PaywallBlocks.swift:606:93: warning: conditional downcast from '[PaywallBlock]?' to '[PaywallBlock]' does nothing
604 |             ))
605 |         case "card":
606 |             let children = (try? c.decodeIfPresent([PaywallBlock].self, forKey: .children)) as? [PaywallBlock] ?? []
    |                                                                                             `- warning: conditional downcast from '[PaywallBlock]?' to '[PaywallBlock]' does nothing
607 |             let columns = (try? c.decodeIfPresent(Int.self, forKey: .columns)) as? Int
608 |             let index = (try? c.decodeIfPresent(Int.self, forKey: .packageIndex)) as? Int
/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PaywallBlocks.swift:607:80: warning: conditional downcast from 'Int?' to 'Int' does nothing
605 |         case "card":
606 |             let children = (try? c.decodeIfPresent([PaywallBlock].self, forKey: .children)) as? [PaywallBlock] ?? []
607 |             let columns = (try? c.decodeIfPresent(Int.self, forKey: .columns)) as? Int
    |                                                                                `- warning: conditional downcast from 'Int?' to 'Int' does nothing
608 |             let index = (try? c.decodeIfPresent(Int.self, forKey: .packageIndex)) as? Int
609 |             self = .card(CardBlock(
/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PaywallBlocks.swift:608:83: warning: conditional downcast from 'Int?' to 'Int' does nothing
606 |             let children = (try? c.decodeIfPresent([PaywallBlock].self, forKey: .children)) as? [PaywallBlock] ?? []
607 |             let columns = (try? c.decodeIfPresent(Int.self, forKey: .columns)) as? Int
608 |             let index = (try? c.decodeIfPresent(Int.self, forKey: .packageIndex)) as? Int
    |                                                                                   `- warning: conditional downcast from 'Int?' to 'Int' does nothing
609 |             self = .card(CardBlock(
610 |                 id: id, layout: string(.layout), autoAdvance: int(.autoAdvance), repeatMode: string(.repeat),
/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PaywallBlocks.swift:817:73: warning: conditional downcast from 'Int?' to 'Int' does nothing
815 |         }
816 |         self.screens = screens
817 |         version = ((try? c.decodeIfPresent(Int.self, forKey: .version)) as? Int) ?? 1
    |                                                                         `- warning: conditional downcast from 'Int?' to 'Int' does nothing
818 |         layout = try? c.decodeIfPresent(String.self, forKey: .layout)
819 |         // `background` is a plain string in the original form and an object in
/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PaywallBlocks.swift:826:80: warning: conditional downcast from 'String?' to 'String' does nothing
824 |         backgroundSpec = spec
825 |         background = revnixBackgroundGround(spec) ?? "#000000"
826 |         textColor = ((try? c.decodeIfPresent(String.self, forKey: .textColor)) as? String) ?? "#FFFFFF"
    |                                                                                `- warning: conditional downcast from 'String?' to 'String' does nothing
827 |         accent = ((try? c.decodeIfPresent(String.self, forKey: .accent)) as? String) ?? "#6478ff"
828 |         accentInk = ((try? c.decodeIfPresent(String.self, forKey: .accentInk)) as? String) ?? "#FFFFFF"
/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PaywallBlocks.swift:827:74: warning: conditional downcast from 'String?' to 'String' does nothing
825 |         background = revnixBackgroundGround(spec) ?? "#000000"
826 |         textColor = ((try? c.decodeIfPresent(String.self, forKey: .textColor)) as? String) ?? "#FFFFFF"
827 |         accent = ((try? c.decodeIfPresent(String.self, forKey: .accent)) as? String) ?? "#6478ff"
    |                                                                          `- warning: conditional downcast from 'String?' to 'String' does nothing
828 |         accentInk = ((try? c.decodeIfPresent(String.self, forKey: .accentInk)) as? String) ?? "#FFFFFF"
829 |         fontFamily = try? c.decodeIfPresent(String.self, forKey: .fontFamily)
/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PaywallBlocks.swift:828:80: warning: conditional downcast from 'String?' to 'String' does nothing
826 |         textColor = ((try? c.decodeIfPresent(String.self, forKey: .textColor)) as? String) ?? "#FFFFFF"
827 |         accent = ((try? c.decodeIfPresent(String.self, forKey: .accent)) as? String) ?? "#6478ff"
828 |         accentInk = ((try? c.decodeIfPresent(String.self, forKey: .accentInk)) as? String) ?? "#FFFFFF"
    |                                                                                `- warning: conditional downcast from 'String?' to 'String' does nothing
829 |         fontFamily = try? c.decodeIfPresent(String.self, forKey: .fontFamily)
830 |         // REV-271: a malformed table costs the translations, never the
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Revnix",
  "name" : "Revnix",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "16.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    },
    {
      "name" : "watchos",
      "version" : "9.0"
    }
  ],
  "products" : [
    {
      "name" : "Revnix",
      "targets" : [
        "Revnix"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RevnixTests",
      "module_type" : "SwiftTarget",
      "name" : "RevnixTests",
      "path" : "Tests/RevnixTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/RevnixTests/Resources/Revnix.storekit",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/RevnixTests/Resources/paywall-background-wire.json",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/RevnixTests/Resources/paywall-selection-wire.json",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AttributionTests.swift",
        "DeepLinkPrivacyTests.swift",
        "ImplicitPlacementTests.swift",
        "PaywallBackgroundTests.swift",
        "PaywallBlockFillTests.swift",
        "PaywallBlockGeometryTests.swift",
        "PaywallBlockTests.swift",
        "PaywallLocalizationTests.swift",
        "PaywallSelectionWireTests.swift",
        "PreviewTests.swift",
        "PrivacyManifestTests.swift",
        "RevnixClientTests.swift",
        "SkanTests.swift",
        "StoreKitIntegrationTests.swift",
        "TrackingTests.swift"
      ],
      "target_dependencies" : [
        "Revnix"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Revnix",
      "module_type" : "SwiftTarget",
      "name" : "Revnix",
      "path" : "Sources/Revnix",
      "product_memberships" : [
        "Revnix"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Revnix/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "DeviceFacts.swift",
        "ImplicitPlacements.swift",
        "Models.swift",
        "PaywallBackground.swift",
        "PaywallBlockGeometry.swift",
        "PaywallBlocks.swift",
        "PaywallLocalization.swift",
        "PaywallRenderRules.swift",
        "RevnixClient.swift",
        "RevnixConfig.swift",
        "RevnixError.swift",
        "RevnixPaywallBlockView.swift",
        "RevnixPaywallView.swift",
        "Skan.swift",
        "Storage.swift",
        "StoreKitGlue.swift",
        "Tracking.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.