Build Information
Successful build of TonConnect, reference develop (c11d3b), with Swift 6.4 for macOS (SPM) on 20 Sep 2026 20:07:09 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bbetsey/tonconnect-swift.git
Reference: develop
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bbetsey/tonconnect-swift
* branch develop -> FETCH_HEAD
* [new branch] develop -> origin/develop
HEAD is now at c11d3be Merge pull request #51 from bbetsey/docs/changelog-wording
Cloned https://github.com/bbetsey/tonconnect-swift.git
Revision (git rev-parse @):
c11d3bed28ed7b5ffda9eae8558a7183a6a58c5f
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/bbetsey/tonconnect-swift.git at develop
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/bbetsey/tonconnect-swift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Pre-planning 1 / 560]
[Planning deferred tasks]
[1 / 193]
[108 / 193] TonConnect_TonConnectJSCoreEngine
[110 / 193] TonConnect_TonConnectUI
[115 / 193]
[120 / 195] CTweetNacl
[126 / 204]
[128 / 204]
[131 / 204] CTweetNacl
[131 / 238]
[141 / 253]
[146 / 253]
[149 / 253]
[150 / 253]
[154 / 253]
[156 / 253]
[159 / 253]
[162 / 253]
[164 / 253]
[165 / 253]
[176 / 253] TonConnectCore
[180 / 253] TonConnectTransport
[200 / 258] TonConnectTransport
[201 / 258] TonConnectCore
[203 / 260] TonConnectTestSupport
[213 / 295]
[222 / 295] TonConnectNativeEngine
[222 / 295] TonConnectCore
[225 / 295] TonConnectNativeEngine
[238 / 335]
[244 / 335]
[258 / 335]
[265 / 335] TonConnectJSCoreEngine-product
[269 / 335] TonConnectJSCoreEngine
[272 / 335] TonConnectConformance
[283 / 335] TonConnectCore
[286 / 335] TonConnectNativeEngine
[292 / 336] TonConnectConformance
[296 / 336] TonConnectNativeEngine
[301 / 336]
[307 / 338] TonConnectSDK
[316 / 338]
[328 / 338] TonConnectUI
[334 / 338] TonConnectUI
Build complete! (18.85 sec)
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2345] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin (1.47s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (4.27s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3824] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit (1.37s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (2.11s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
[1m/Users/admin/builder/spi-builder-workspace/Sources/CTweetNacl/tweetnacl.c:410:18: [0m[0;1;35mwarning: [0m[1mimplicit conversion loses integer precision: 'i64' (aka 'long long') to 'int' [-Wshorten-64-to-32][0m
410 | sel25519(a,b,r);[0m
| [0;1;32m ~~~~~~~~ ^
[0m[1m/Users/admin/builder/spi-builder-workspace/Sources/CTweetNacl/tweetnacl.c:411:18: [0m[0;1;35mwarning: [0m[1mimplicit conversion loses integer precision: 'i64' (aka 'long long') to 'int' [-Wshorten-64-to-32][0m
411 | sel25519(c,d,r);[0m
| [0;1;32m ~~~~~~~~ ^
[0m[1m/Users/admin/builder/spi-builder-workspace/Sources/CTweetNacl/tweetnacl.c:430:18: [0m[0;1;35mwarning: [0m[1mimplicit conversion loses integer precision: 'i64' (aka 'long long') to 'int' [-Wshorten-64-to-32][0m
430 | sel25519(a,b,r);[0m
| [0;1;32m ~~~~~~~~ ^
[0m[1m/Users/admin/builder/spi-builder-workspace/Sources/CTweetNacl/tweetnacl.c:431:18: [0m[0;1;35mwarning: [0m[1mimplicit conversion loses integer precision: 'i64' (aka 'long long') to 'int' [-Wshorten-64-to-32][0m
431 | sel25519(c,d,r);[0m
| [0;1;32m ~~~~~~~~ ^
[0m[1m/Users/admin/builder/spi-builder-workspace/Sources/CTweetNacl/tweetnacl.c:548:10: [0m[0;1;35mwarning: [0m[1mimplicit conversion loses integer precision: 'u64' (aka 'unsigned long long') to 'int' [-Wshorten-64-to-32][0m
548 | [0;34mreturn[0m n;[0m
| [0;1;32m ~~~~~~ ^
[0m5 warnings generated.
/Users/admin/builder/spi-builder-workspace/Sources/TonConnectJSCoreEngine/StorageBridge.swift:33:18: [1;33mwarning: [1;39mweak variable 'bridge' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability\WeakMutability]8;;\]
[0;36m31 |[0;0m public func install(into context: JSContext) {
[0;36m32 |[0;0m let storage = self.storage
[0;36m33 |[0;0m weak var bridge = self.bridge
[0;36m|[0;0m `- [1;33mwarning: [1;39mweak variable 'bridge' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability\WeakMutability]8;;\]
[0;36m34 |[0;0m
[0;36m35 |[0;0m let get: @convention(block) (String) -> JSValue = { key in
[#VariableNeverMutated]: <https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated>
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
/Users/admin/builder/spi-builder-workspace/Sources/TonConnectNativeEngine/NativeEngine.swift:487:13: [1;33mwarning: [1;39minitialization of immutable value 'store' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m485 |[0;0m lastWalletEventId = id
[0;36m486 |[0;0m lock.unlock()
[0;36m487 |[0;0m let store = store
[0;36m|[0;0m `- [1;33mwarning: [1;39minitialization of immutable value 'store' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m488 |[0;0m persist("update last wallet event id") { try await $0.updateLastWalletEventId(id) }
[0;36m489 |[0;0m return true
/Users/admin/builder/spi-builder-workspace/Sources/TonConnectNativeEngine/NativeEngine.swift:575:13: [1;33mwarning: [1;39minitialization of immutable value 'store' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m573 |[0;0m guard let eventId, acceptWalletEventId(eventId) else { return }
[0;36m574 |[0;0m eventContinuation.yield(.disconnected)
[0;36m575 |[0;0m let store = store
[0;36m|[0;0m `- [1;33mwarning: [1;39minitialization of immutable value 'store' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m576 |[0;0m persist("clear the session") { try await $0.clear() } // only our own native key
[0;36m577 |[0;0m lock.lock()
[#NoUsage]: <https://docs.swift.org/compiler/documentation/diagnostics/no-usage>
/Users/admin/builder/spi-builder-workspace/Sources/TonConnectJSCoreEngine/Polyfills/EventSourcePolyfill.swift:43:37: [1;33mwarning: [1;39m'weak' ownership of capture 'self' differs from implicitly-captured strong reference in outer scope[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture\ImplicitStrongCapture]8;;\]
[0;36m29 |[0;0m public func apply(to context: JSContext) {
[0;36m30 |[0;0m // The blocks capture self strongly (the TimerPolyfill idiom) — the polyfill lives with the JSContext.
[0;36m31 |[0;0m let create: @convention(block) (String) -> Int32 = { url in
[0;36m|[0;0m |- [1;39mnote: [1;39m'self' implicitly strongly captured here[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd 'self' as a capture list item to silence[0;0m
[0;36m32 |[0;0m guard JSContext.current() != nil else {
[0;36m33 |[0;0m fatalError("__nativeESCreate called outside a JSContext")
[0;36m:[0;0m
[0;36m41 |[0;0m sessionConfiguration: self.sessionConfiguration)
[0;36m42 |[0;0m // [weak self]: the polyfill holds the source via the registry — otherwise a polyfill↔source cycle.
[0;36m43 |[0;0m source.onOpen = { [weak self] in
[0;36m|[0;0m |- [1;33mwarning: [1;39m'weak' ownership of capture 'self' differs from implicitly-captured strong reference in outer scope[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture\ImplicitStrongCapture]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39mexplicitly assign the capture list item to silence[0;0m
[0;36m44 |[0;0m self?.dispatch(identifier, type: "open", data: "", lastEventId: "")
[0;36m45 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/TonConnectJSCoreEngine/Polyfills/EventSourcePolyfill.swift:46:40: [1;33mwarning: [1;39m'weak' ownership of capture 'self' differs from implicitly-captured strong reference in outer scope[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture\ImplicitStrongCapture]8;;\]
[0;36m29 |[0;0m public func apply(to context: JSContext) {
[0;36m30 |[0;0m // The blocks capture self strongly (the TimerPolyfill idiom) — the polyfill lives with the JSContext.
[0;36m31 |[0;0m let create: @convention(block) (String) -> Int32 = { url in
[0;36m|[0;0m |- [1;39mnote: [1;39m'self' implicitly strongly captured here[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd 'self' as a capture list item to silence[0;0m
[0;36m32 |[0;0m guard JSContext.current() != nil else {
[0;36m33 |[0;0m fatalError("__nativeESCreate called outside a JSContext")
[0;36m:[0;0m
[0;36m44 |[0;0m self?.dispatch(identifier, type: "open", data: "", lastEventId: "")
[0;36m45 |[0;0m }
[0;36m46 |[0;0m source.onMessage = { [weak self] eventId, data in
[0;36m|[0;0m |- [1;33mwarning: [1;39m'weak' ownership of capture 'self' differs from implicitly-captured strong reference in outer scope[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture\ImplicitStrongCapture]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39mexplicitly assign the capture list item to silence[0;0m
[0;36m47 |[0;0m self?.dispatch(identifier, type: "message", data: data, lastEventId: eventId ?? "")
[0;36m48 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/TonConnectJSCoreEngine/Polyfills/EventSourcePolyfill.swift:49:38: [1;33mwarning: [1;39m'weak' ownership of capture 'self' differs from implicitly-captured strong reference in outer scope[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture\ImplicitStrongCapture]8;;\]
[0;36m29 |[0;0m public func apply(to context: JSContext) {
[0;36m30 |[0;0m // The blocks capture self strongly (the TimerPolyfill idiom) — the polyfill lives with the JSContext.
[0;36m31 |[0;0m let create: @convention(block) (String) -> Int32 = { url in
[0;36m|[0;0m |- [1;39mnote: [1;39m'self' implicitly strongly captured here[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd 'self' as a capture list item to silence[0;0m
[0;36m32 |[0;0m guard JSContext.current() != nil else {
[0;36m33 |[0;0m fatalError("__nativeESCreate called outside a JSContext")
[0;36m:[0;0m
[0;36m47 |[0;0m self?.dispatch(identifier, type: "message", data: data, lastEventId: eventId ?? "")
[0;36m48 |[0;0m }
[0;36m49 |[0;0m source.onError = { [weak self] error in
[0;36m|[0;0m |- [1;33mwarning: [1;39m'weak' ownership of capture 'self' differs from implicitly-captured strong reference in outer scope[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture\ImplicitStrongCapture]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39mexplicitly assign the capture list item to silence[0;0m
[0;36m50 |[0;0m self?.dispatch(identifier, type: "error",
[0;36m51 |[0;0m data: error.map { "\($0)" } ?? "stream closed", lastEventId: "")
[#ImplicitStrongCapture]: <https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture>
/Users/admin/builder/spi-builder-workspace/Sources/TonConnectUI/OperationPendingSheet.swift:18:14: [1;33mwarning: [1;39m'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m16 |[0;0m func body(content: Content) -> some View {
[0;36m17 |[0;0m content
[0;36m18 |[0;0m .onChange(of: tonConnect.operation) { operation in
[0;36m|[0;0m `- [1;33mwarning: [1;39m'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m19 |[0;0m isPresented = operation != nil
[0;36m20 |[0;0m }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
/Users/admin/builder/spi-builder-workspace/Sources/TonConnectUI/WalletPickerSheet.swift:60:10: [1;33mwarning: [1;39m'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m58 |[0;0m .presentationDetents([.medium, .large], selection: $detent)
[0;36m59 |[0;0m .presentationDragIndicator(.hidden)
[0;36m60 |[0;0m .onChange(of: detent) { newDetent in
[0;36m|[0;0m `- [1;33mwarning: [1;39m'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m61 |[0;0m if newDetent != detentTarget { detent = detentTarget }
[0;36m62 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/TonConnectUI/WalletPickerSheet.swift:65:10: [1;33mwarning: [1;39m'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m63 |[0;0m .ignoresSafeArea()
[0;36m64 |[0;0m .onAppear { loader.load() } // lazily, on open
[0;36m65 |[0;0m .onChange(of: tonConnect.isConnected) { connected in
[0;36m|[0;0m `- [1;33mwarning: [1;39m'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m66 |[0;0m if connected { dismiss() } // success — same as the original
[0;36m67 |[0;0m }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
Build complete.
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-docc-plugin"
}
],
"manifest_display_name" : "TonConnect",
"name" : "TonConnect",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "macos",
"version" : "14.0"
}
],
"products" : [
{
"name" : "TonConnectCore",
"targets" : [
"TonConnectCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TonConnectConformance",
"targets" : [
"TonConnectConformance"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TonConnectJSCoreEngine",
"targets" : [
"TonConnectJSCoreEngine"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TonConnectTransport",
"targets" : [
"TonConnectTransport"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TonConnectUI",
"targets" : [
"TonConnectUI"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TonConnectSDK",
"targets" : [
"TonConnectSDK"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TonConnectNativeEngine",
"targets" : [
"TonConnectNativeEngine"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "TonConnectUITests",
"module_type" : "SwiftTarget",
"name" : "TonConnectUITests",
"path" : "Tests/TonConnectUITests",
"sources" : [
"QRConnectTests.swift",
"WalletWakeLinkTests.swift",
"WalletsListDecodingTests.swift",
"WalletsListFilterTests.swift",
"WalletsListLoaderTests.swift"
],
"target_dependencies" : [
"TonConnectUI",
"TonConnectCore"
],
"type" : "test"
},
{
"c99name" : "TonConnectUI",
"module_type" : "SwiftTarget",
"name" : "TonConnectUI",
"path" : "Sources/TonConnectUI",
"product_memberships" : [
"TonConnectUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/TonConnectUI/Resources/Media.xcassets",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/TonConnectUI/WalletsList/Resources/wallets-v2.snapshot.json",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"GlassStyling.swift",
"OperationPendingSheet.swift",
"PreviewSupport.swift",
"QRCodeView.swift",
"TCSpinner.swift",
"TonConnect+QR.swift",
"TonConnectButton.swift",
"WalletPickerSheet.swift",
"WalletsList/WalletsListEntry.swift",
"WalletsList/WalletsListLoader.swift"
],
"target_dependencies" : [
"TonConnectCore"
],
"type" : "library"
},
{
"c99name" : "TonConnectTransportTests",
"module_type" : "SwiftTarget",
"name" : "TonConnectTransportTests",
"path" : "Tests/TonConnectTransportTests",
"sources" : [
"NativeEventSourceTests.swift",
"NativeFetchTests.swift",
"SSEEventParserTests.swift"
],
"target_dependencies" : [
"TonConnectTransport",
"TonConnectTestSupport"
],
"type" : "test"
},
{
"c99name" : "TonConnectTransport",
"module_type" : "SwiftTarget",
"name" : "TonConnectTransport",
"path" : "Sources/TonConnectTransport",
"product_memberships" : [
"TonConnectJSCoreEngine",
"TonConnectTransport",
"TonConnectSDK",
"TonConnectNativeEngine"
],
"sources" : [
"NativeEventSource.swift",
"NativeFetch.swift",
"SSEEventParser.swift"
],
"type" : "library"
},
{
"c99name" : "TonConnectTestSupport",
"module_type" : "SwiftTarget",
"name" : "TonConnectTestSupport",
"path" : "Sources/TonConnectTestSupport",
"sources" : [
"FakeBridgeURLProtocol.swift"
],
"target_dependencies" : [
"TonConnectCore"
],
"type" : "library"
},
{
"c99name" : "TonConnectSDK",
"module_type" : "SwiftTarget",
"name" : "TonConnectSDK",
"path" : "Sources/TonConnectSDK",
"product_memberships" : [
"TonConnectSDK"
],
"sources" : [
"DefaultEngineFacade.swift"
],
"target_dependencies" : [
"TonConnectCore",
"TonConnectNativeEngine"
],
"type" : "library"
},
{
"c99name" : "TonConnectNativeEngineTests",
"module_type" : "SwiftTarget",
"name" : "TonConnectNativeEngineTests",
"path" : "Tests/TonConnectNativeEngineTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/TonConnectNativeEngineTests/Fixtures/nacl.js",
"rule" : {
"copy" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/TonConnectNativeEngineTests/Fixtures/session-crypto-vectors.json",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"ConnectUniversalRaceTests.swift",
"HexCodingTests.swift",
"LiveBridgeSmokeTests.swift",
"NativeEngineConnectTests.swift",
"NativeEngineDeinitTests.swift",
"NativeEngineFakeBridgeE2ETests.swift",
"NativeErrorMapperTests.swift",
"NativeForegroundReconnectTests.swift",
"NativeSessionStoreTests.swift",
"RPCEnvelopeTests.swift",
"ReconnectGatewayTests.swift",
"SessionBoundaryTests.swift",
"SessionCryptoRandomSourceTests.swift",
"SessionCryptoRoundTripTests.swift",
"SessionCryptoSelfRoundTripTests.swift",
"SessionCryptoVectorTests.swift"
],
"target_dependencies" : [
"TonConnectNativeEngine",
"TonConnectTestSupport",
"TonConnectConformance"
],
"type" : "test"
},
{
"c99name" : "TonConnectNativeEngine",
"module_type" : "SwiftTarget",
"name" : "TonConnectNativeEngine",
"path" : "Sources/TonConnectNativeEngine",
"product_memberships" : [
"TonConnectSDK",
"TonConnectNativeEngine"
],
"sources" : [
"BridgeGateway/RPCEnvelope.swift",
"BridgeGateway/ReconnectClock.swift",
"BridgeGateway/ReconnectGateway.swift",
"HexCoding.swift",
"NativeEngine.swift",
"NativeErrorMapper.swift",
"RandomBytesSource.swift",
"Session/NativeSession.swift",
"Session/NativeSessionStore.swift",
"SessionCrypto.swift"
],
"target_dependencies" : [
"TonConnectCore",
"CTweetNacl",
"TonConnectTransport"
],
"type" : "library"
},
{
"c99name" : "TonConnectJSCoreEngineTests",
"module_type" : "SwiftTarget",
"name" : "TonConnectJSCoreEngineTests",
"path" : "Tests/TonConnectJSCoreEngineTests",
"sources" : [
"DeinitLeakTests.swift",
"ExceptionHandlerTests.swift",
"FakeBridgeE2ETests.swift",
"ForegroundReconnectTests.swift",
"GlueSmokeTests.swift",
"JSCoreEngineConnectTests.swift",
"ManagedValueLifetimeTests.swift",
"NetworkPolyfillLoadTests.swift",
"PolyfillLoadTests.swift",
"PromiseBridgeTests.swift",
"SDKSmokeTests.swift",
"StorageBridgeTests.swift",
"ThreadSafetyTests.swift"
],
"target_dependencies" : [
"TonConnectJSCoreEngine",
"TonConnectTestSupport",
"TonConnectConformance"
],
"type" : "test"
},
{
"c99name" : "TonConnectJSCoreEngine",
"module_type" : "SwiftTarget",
"name" : "TonConnectJSCoreEngine",
"path" : "Sources/TonConnectJSCoreEngine",
"product_memberships" : [
"TonConnectJSCoreEngine"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/TonConnectJSCoreEngine/Resources/tonconnect-sdk.bundle.js",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"EngineErrorMapper.swift",
"Errors/JSBridgeError.swift",
"JSCoreBridge.swift",
"JSCoreEngine.swift",
"JSPolyfill.swift",
"LifecyclePolyfill.swift",
"Polyfills/AbortControllerPolyfill.swift",
"Polyfills/Base64Polyfill.swift",
"Polyfills/ConsolePolyfill.swift",
"Polyfills/EnvironmentPolyfill.swift",
"Polyfills/EventSourcePolyfill.swift",
"Polyfills/FetchPolyfill.swift",
"Polyfills/SecureRandomPolyfill.swift",
"Polyfills/TimerPolyfill.swift",
"PromiseAdapter.swift",
"StorageBridge.swift"
],
"target_dependencies" : [
"TonConnectCore",
"TonConnectTransport"
],
"type" : "library"
},
{
"c99name" : "TonConnectCoreTests",
"module_type" : "SwiftTarget",
"name" : "TonConnectCoreTests",
"path" : "Tests/TonConnectCoreTests",
"sources" : [
"ConformanceSuiteTests.swift",
"DTORoundTripTests.swift",
"FacadeTests.swift",
"InMemoryStorageSmokeTests.swift",
"KeychainSpikeTests.swift",
"OperationStateMappingTests.swift",
"StorageParityTests.swift",
"TonConnectErrorTests.swift",
"UserFriendlyAddressTests.swift",
"WalletLinkTests.swift"
],
"target_dependencies" : [
"TonConnectCore",
"TonConnectConformance"
],
"type" : "test"
},
{
"c99name" : "TonConnectCore",
"module_type" : "SwiftTarget",
"name" : "TonConnectCore",
"path" : "Sources/TonConnectCore",
"product_memberships" : [
"TonConnectCore",
"TonConnectConformance",
"TonConnectJSCoreEngine",
"TonConnectUI",
"TonConnectSDK",
"TonConnectNativeEngine"
],
"sources" : [
"Errors/TonConnectError.swift",
"Models/Account+UserFriendly.swift",
"Models/Account.swift",
"Models/AppRequest.swift",
"Models/ConnectEvent.swift",
"Models/ConnectRequest.swift",
"Models/ConnectionState.swift",
"Models/OperationState.swift",
"Models/ReturnStrategy.swift",
"Models/WalletConnectionSource.swift",
"Models/WalletManifest.swift",
"Models/WalletResponse.swift",
"Storage/InMemoryStorage.swift",
"Storage/KeychainStorage.swift",
"Storage/SessionKey.swift",
"Storage/TonConnectStorage.swift",
"TonConnect.swift",
"TonConnectEngine.swift",
"TonConnectEvent.swift",
"WalletLink.swift",
"WalletOpener.swift"
],
"type" : "library"
},
{
"c99name" : "TonConnectConformance",
"module_type" : "SwiftTarget",
"name" : "TonConnectConformance",
"path" : "Sources/TonConnectConformance",
"product_memberships" : [
"TonConnectConformance"
],
"sources" : [
"EngineConformanceSuite.swift",
"EngineFactory.swift",
"FakeEngine.swift",
"StorageConformanceSuite.swift",
"StorageFactory.swift"
],
"target_dependencies" : [
"TonConnectCore"
],
"type" : "library"
},
{
"c99name" : "CTweetNacl",
"module_type" : "ClangTarget",
"name" : "CTweetNacl",
"path" : "Sources/CTweetNacl",
"product_memberships" : [
"TonConnectSDK",
"TonConnectNativeEngine"
],
"sources" : [
"randombytes_shim.c",
"tweetnacl.c"
],
"type" : "library"
}
],
"tools_version" : "5.10"
}
Done.