Build Information
Successful build of swift-nostr-client, reference 0.2.0 (72df0b), with Swift 6.2 for macOS (SPM) on 14 Apr 2026 08:45:24 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/yysskk/swift-nostr-client.git
Reference: 0.2.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/yysskk/swift-nostr-client
* tag 0.2.0 -> FETCH_HEAD
HEAD is now at 72df0b4 Merge pull request #10 from yysskk/fix/add-SubscriptionEvent
Cloned https://github.com/yysskk/swift-nostr-client.git
Revision (git rev-parse @):
72df0b4ec4978a5a87a384318e6b3224f8268e92
SUCCESS checkout https://github.com/yysskk/swift-nostr-client.git at 0.2.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.2
Building package at path: $PWD
https://github.com/yysskk/swift-nostr-client.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64
[1/1] Compiling plugin SharedSourcesPlugin
Building for debugging...
[1/10] Write sources
[3/10] Copying PrivacyInfo.xcprivacy
[4/10] Write sources
[5/10] Write swift-version--3CB7CFEC50E0D141.txt
[6/96] Compiling Utility.c
[7/96] Compiling precomputed_ecmult_gen.c
[8/96] Compiling secp256k1.c
[9/96] Compiling precomputed_ecmult.c
[11/155] Emitting module Crypto
[12/164] Emitting module P256K
[13/170] Compiling P256K UInt256+Modular.swift
[14/170] Compiling P256K UInt256+Representation.swift
[15/170] Compiling P256K UInt256.swift
[16/170] Compiling P256K Utility.swift
[17/170] Compiling P256K XonlyKeyImplementation.swift
[18/170] Compiling P256K Zeroization.swift
[19/170] Compiling P256K ECDSA+XonlyKey.swift
[20/170] Compiling P256K ECDSA.swift
[21/170] Compiling P256K ECDSASignature.swift
[22/170] Compiling P256K EdDSA.swift
[23/170] Compiling P256K Errors.swift
[24/170] Compiling P256K GeneralizedTime.swift
[25/170] Compiling P256K HashDigest.swift
[26/170] Compiling P256K MuSig+Signing.swift
[27/170] Compiling P256K MuSig+Tweak.swift
[28/170] Compiling P256K MuSig.swift
[29/170] Compiling P256K ObjectIdentifier.swift
[30/170] Compiling P256K RNG_boring.swift
[31/170] Compiling P256K Recovery+Signature.swift
[32/170] Compiling P256K Recovery.swift
[33/170] Compiling P256K SEC1PrivateKey.swift
[34/170] Compiling P256K SHA256.swift
[35/170] Compiling P256K Schnorr.swift
[36/170] Compiling P256K SecureBytes.swift
[37/170] Compiling P256K Signature.swift
[38/170] Compiling P256K SubjectPublicKeyInfo.swift
[39/170] Compiling P256K UInt256+Arithmetic.swift
[40/170] Compiling P256K UInt256+FixedWidthInteger.swift
[41/170] Compiling P256K P256K.swift
[42/170] Compiling P256K PEMDocument.swift
[43/170] Compiling P256K PKCS8PrivateKey.swift
[44/170] Compiling P256K PrettyBytes.swift
[45/170] Compiling P256K PrivateKeyImplementation.swift
[46/170] Compiling P256K PublicKeyImplementation.swift
[47/170] Compiling P256K DH.swift
[48/170] Compiling P256K Digest.swift
[49/170] Compiling P256K ECDH.swift
[50/170] Compiling P256K ECDSA+PrivateKey.swift
[51/170] Compiling P256K ECDSA+PublicKey.swift
[52/170] Compiling P256K ECDSA+Signature.swift
[53/170] Compiling P256K ECDSA+Tweak.swift
[54/170] Compiling P256K MuSig+Aggregate.swift
[55/170] Compiling P256K MuSig+Nonces.swift
[60/170] Compiling P256K ASN1Null.swift
[61/170] Compiling P256K ASN1OctetString.swift
[62/170] Compiling P256K ASN1Strings.swift
[63/170] Compiling P256K ArraySliceBigint.swift
[64/170] Compiling P256K Combine.swift
[65/170] Compiling P256K Context.swift
[66/170] Compiling P256K CryptoKitErrors.swift
[67/170] Compiling Crypto ECDH.swift
[68/170] Compiling Crypto ANSIx963.swift
[69/170] Compiling Crypto HKDF.swift
[70/170] Compiling Crypto AESWrap.swift
[71/170] Compiling Crypto AESWrap_boring.swift
[72/170] Compiling Crypto Ed25519_boring.swift
[73/170] Compiling Crypto NISTCurvesKeys_boring.swift
[74/170] Compiling Crypto X25519Keys_boring.swift
[75/170] Compiling Crypto Curve25519.swift
[76/170] Compiling Crypto Optional+withUnsafeBytes_boring.swift
[77/170] Compiling Crypto RNG_boring.swift
[78/170] Compiling Crypto SafeCompare_boring.swift
[79/170] Compiling Crypto Zeroization_boring.swift
[80/170] Compiling Crypto PrettyBytes.swift
[81/170] Compiling Crypto SafeCompare.swift
[82/170] Compiling Crypto SecureBytes.swift
[83/170] Compiling Crypto Zeroization.swift
[84/170] Compiling Crypto resource_bundle_accessor.swift
[94/170] Compiling P256K Placeholder.swift
[95/170] Compiling P256K ASN1.swift
[96/170] Compiling P256K ASN1Any.swift
[97/170] Compiling P256K ASN1BitString.swift
[98/170] Compiling P256K ASN1Boolean.swift
[99/170] Compiling P256K ASN1Identifier.swift
[100/170] Compiling P256K ASN1Integer.swift
[106/170] Compiling P256K SafeCompare.swift
[107/170] Compiling P256K Schnorr+Nonces.swift
[108/170] Compiling P256K Schnorr+PrivateKey.swift
[109/170] Compiling P256K Schnorr+PublicKey.swift
[110/170] Compiling P256K Schnorr+Signature.swift
[111/170] Compiling P256K Schnorr+Tweak.swift
[112/170] Compiling P256K Schnorr+XonlyKey.swift
[129/170] Compiling Crypto Signature.swift
[130/170] Compiling Crypto CryptoKitErrors_boring.swift
[161/170] Compiling Crypto HashFunctions_SHA3.swift
[162/170] Compiling Crypto Digest_xkcp.swift
[163/170] Compiling Crypto HPKE-AEAD.swift
[164/170] Compiling Crypto HPKE-Ciphersuite.swift
[165/170] Compiling Crypto HPKE-KDF.swift
[166/170] Compiling Crypto HPKE-KexKeyDerivation.swift
[167/170] Compiling Crypto HPKE-LabeledExtract.swift
[168/170] Compiling Crypto HPKE-Utils.swift
[169/170] Compiling Crypto DHKEM.swift
[170/170] Compiling Crypto HPKE-KEM-Curve25519.swift
[171/198] Emitting module NostrClient
[172/200] Compiling NostrClient EOSETracker.swift
[173/200] Compiling NostrClient Contact.swift
[174/200] Compiling NostrClient DirectMessage.swift
[175/200] Compiling NostrClient RelayPoolConfig.swift
[176/200] Compiling NostrClient RelaySubscriptionMessage.swift
[177/200] Compiling NostrClient OpenTimestamps.swift
[178/200] Compiling NostrClient RelayMessage.swift
[179/200] Compiling NostrClient SubscriptionEvent.swift
[180/200] Compiling NostrClient GiftWrap.swift
[181/200] Compiling NostrClient KeyDerivation.swift
[182/200] Compiling NostrClient KeyPair.swift
[183/200] Compiling NostrClient DirectMessageBuilder.swift
[184/200] Compiling NostrClient DirectMessageParser.swift
[185/200] Compiling NostrClient Event.swift
[186/200] Compiling NostrClient Mnemonic.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Crypto/SealedMessage.swift:164:28: warning: no calls to throwing functions occur within 'try' expression
162 | // The sharedSecret in compressed format is: version (1 byte) + x-coordinate (32 bytes)
163 | // NIP-44 needs only the x-coordinate, so skip the version byte
164 | let sharedSecret = try privateKey.sharedSecretFromKeyAgreement(with: publicKey, format: .compressed)
| `- warning: no calls to throwing functions occur within 'try' expression
165 | let sharedX = sharedSecret.withUnsafeBytes { bytes in
166 | Data(bytes.dropFirst())
[187/200] Compiling NostrClient SealedMessage.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Crypto/SealedMessage.swift:164:28: warning: no calls to throwing functions occur within 'try' expression
162 | // The sharedSecret in compressed format is: version (1 byte) + x-coordinate (32 bytes)
163 | // NIP-44 needs only the x-coordinate, so skip the version byte
164 | let sharedSecret = try privateKey.sharedSecretFromKeyAgreement(with: publicKey, format: .compressed)
| `- warning: no calls to throwing functions occur within 'try' expression
165 | let sharedX = sharedSecret.withUnsafeBytes { bytes in
166 | Data(bytes.dropFirst())
[188/200] Compiling NostrClient SecureRandom.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Crypto/SealedMessage.swift:164:28: warning: no calls to throwing functions occur within 'try' expression
162 | // The sharedSecret in compressed format is: version (1 byte) + x-coordinate (32 bytes)
163 | // NIP-44 needs only the x-coordinate, so skip the version byte
164 | let sharedSecret = try privateKey.sharedSecretFromKeyAgreement(with: publicKey, format: .compressed)
| `- warning: no calls to throwing functions occur within 'try' expression
165 | let sharedX = sharedSecret.withUnsafeBytes { bytes in
166 | Data(bytes.dropFirst())
[189/200] Compiling NostrClient Filter.swift
[190/200] Compiling NostrClient InternetIdentifier.swift
[191/200] Compiling NostrClient NostrError.swift
[192/200] Compiling NostrClient RelayConnectionConfig.swift
[193/200] Compiling NostrClient RelayConnectionState.swift
[194/200] Compiling NostrClient RelayPool.swift
[195/200] Compiling NostrClient NostrClient+Exports.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:200:37: warning: no 'async' operations occur within 'await' expression
198 | try await self.send(.event(event))
199 | } catch {
200 | if let waiter = await self.removePublishWaiter(eventId: event.id) {
| `- warning: no 'async' operations occur within 'await' expression
201 | waiter.resume(throwing: error)
202 | }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:208:33: warning: no 'async' operations occur within 'await' expression
206 | Task {
207 | try? await Task.sleep(for: .seconds(self.config.operationTimeout))
208 | if let waiter = await self.removePublishWaiter(eventId: event.id) {
| `- warning: no 'async' operations occur within 'await' expression
209 | waiter.resume(throwing: NostrError.timeout)
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:325:49: warning: no 'async' operations occur within 'await' expression
323 | if let relayMessage = try? RelayMessage.parse(text) {
324 | if case .ok(let eventId, let accepted, let message) = relayMessage {
325 | if let waiter = await self.removePublishWaiter(eventId: eventId) {
| `- warning: no 'async' operations occur within 'await' expression
326 | if accepted {
327 | waiter.resume(returning: ())
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:333:29: warning: no 'async' operations occur within 'await' expression
331 | }
332 | }
333 | await self.yieldToMessageContinuations(relayMessage)
| `- warning: no 'async' operations occur within 'await' expression
334 | }
335 |
[196/200] Compiling NostrClient NostrClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:200:37: warning: no 'async' operations occur within 'await' expression
198 | try await self.send(.event(event))
199 | } catch {
200 | if let waiter = await self.removePublishWaiter(eventId: event.id) {
| `- warning: no 'async' operations occur within 'await' expression
201 | waiter.resume(throwing: error)
202 | }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:208:33: warning: no 'async' operations occur within 'await' expression
206 | Task {
207 | try? await Task.sleep(for: .seconds(self.config.operationTimeout))
208 | if let waiter = await self.removePublishWaiter(eventId: event.id) {
| `- warning: no 'async' operations occur within 'await' expression
209 | waiter.resume(throwing: NostrError.timeout)
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:325:49: warning: no 'async' operations occur within 'await' expression
323 | if let relayMessage = try? RelayMessage.parse(text) {
324 | if case .ok(let eventId, let accepted, let message) = relayMessage {
325 | if let waiter = await self.removePublishWaiter(eventId: eventId) {
| `- warning: no 'async' operations occur within 'await' expression
326 | if accepted {
327 | waiter.resume(returning: ())
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:333:29: warning: no 'async' operations occur within 'await' expression
331 | }
332 | }
333 | await self.yieldToMessageContinuations(relayMessage)
| `- warning: no 'async' operations occur within 'await' expression
334 | }
335 |
[197/200] Compiling NostrClient RelayConnection.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:200:37: warning: no 'async' operations occur within 'await' expression
198 | try await self.send(.event(event))
199 | } catch {
200 | if let waiter = await self.removePublishWaiter(eventId: event.id) {
| `- warning: no 'async' operations occur within 'await' expression
201 | waiter.resume(throwing: error)
202 | }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:208:33: warning: no 'async' operations occur within 'await' expression
206 | Task {
207 | try? await Task.sleep(for: .seconds(self.config.operationTimeout))
208 | if let waiter = await self.removePublishWaiter(eventId: event.id) {
| `- warning: no 'async' operations occur within 'await' expression
209 | waiter.resume(throwing: NostrError.timeout)
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:325:49: warning: no 'async' operations occur within 'await' expression
323 | if let relayMessage = try? RelayMessage.parse(text) {
324 | if case .ok(let eventId, let accepted, let message) = relayMessage {
325 | if let waiter = await self.removePublishWaiter(eventId: eventId) {
| `- warning: no 'async' operations occur within 'await' expression
326 | if accepted {
327 | waiter.resume(returning: ())
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:333:29: warning: no 'async' operations occur within 'await' expression
331 | }
332 | }
333 | await self.yieldToMessageContinuations(relayMessage)
| `- warning: no 'async' operations occur within 'await' expression
334 | }
335 |
[198/200] Compiling NostrClient BIP39WordList.swift
[199/200] Compiling NostrClient Bech32.swift
[200/200] Compiling NostrClient EventSigner.swift
Build complete! (25.20s)
Fetching https://github.com/GigaBitcoin/secp256k1.swift
Fetching https://github.com/apple/swift-crypto.git
[1/17340] Fetching swift-crypto
[522/27658] Fetching swift-crypto, secp256k1.swift
Fetched https://github.com/GigaBitcoin/secp256k1.swift from cache (2.54s)
Fetched https://github.com/apple/swift-crypto.git from cache (2.54s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 4.3.1 (5.59s)
Fetching https://github.com/apple/swift-asn1.git
[1/1796] Fetching swift-asn1
Fetched https://github.com/apple/swift-asn1.git from cache (0.96s)
Computing version for https://github.com/GigaBitcoin/secp256k1.swift
Computed https://github.com/GigaBitcoin/secp256k1.swift at 0.23.0 (1.59s)
Computing version for https://github.com/apple/swift-asn1.git
Computed https://github.com/apple/swift-asn1.git at 1.6.0 (0.62s)
Creating working copy for https://github.com/GigaBitcoin/secp256k1.swift
Working copy of https://github.com/GigaBitcoin/secp256k1.swift resolved at 0.23.0
Creating working copy for https://github.com/apple/swift-asn1.git
Working copy of https://github.com/apple/swift-asn1.git resolved at 1.6.0
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 4.3.1
Build complete.
{
"dependencies" : [
{
"identity" : "secp256k1.swift",
"requirement" : {
"range" : [
{
"lower_bound" : "0.18.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/GigaBitcoin/secp256k1.swift"
},
{
"identity" : "swift-crypto",
"requirement" : {
"range" : [
{
"lower_bound" : "4.2.0",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-crypto.git"
}
],
"manifest_display_name" : "swift-nostr-client",
"name" : "swift-nostr-client",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "17.0"
},
{
"name" : "macos",
"version" : "14.0"
},
{
"name" : "tvos",
"version" : "17.0"
},
{
"name" : "watchos",
"version" : "10.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "NostrClient",
"targets" : [
"NostrClient"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "NostrClientTests",
"module_type" : "SwiftTarget",
"name" : "NostrClientTests",
"path" : "Tests/NostrClientTests",
"sources" : [
"BIP39WordListTests.swift",
"Bech32Tests.swift",
"ContactTests.swift",
"EventTests.swift",
"FilterTests.swift",
"InternetIdentifierTests.swift",
"KeyPairTests.swift",
"MnemonicTests.swift",
"NIP17Tests.swift",
"NostrClientFetchTests.swift",
"OpenTimestampsTests.swift",
"RelayMessageTests.swift"
],
"target_dependencies" : [
"NostrClient"
],
"type" : "test"
},
{
"c99name" : "NostrClient",
"module_type" : "SwiftTarget",
"name" : "NostrClient",
"path" : "Sources/NostrClient",
"product_dependencies" : [
"P256K",
"Crypto"
],
"product_memberships" : [
"NostrClient"
],
"sources" : [
"Crypto/BIP39WordList.swift",
"Crypto/Bech32.swift",
"Crypto/EventSigner.swift",
"Crypto/GiftWrap.swift",
"Crypto/KeyDerivation.swift",
"Crypto/KeyPair.swift",
"Crypto/Mnemonic.swift",
"Crypto/SealedMessage.swift",
"Crypto/SecureRandom.swift",
"EOSETracker.swift",
"Models/Contact.swift",
"Models/DirectMessage.swift",
"Models/DirectMessageBuilder.swift",
"Models/DirectMessageParser.swift",
"Models/Event.swift",
"Models/Filter.swift",
"Models/InternetIdentifier.swift",
"Models/NostrError.swift",
"Models/OpenTimestamps.swift",
"Models/RelayMessage.swift",
"Models/SubscriptionEvent.swift",
"NostrClient+Exports.swift",
"NostrClient.swift",
"Relay/RelayConnection.swift",
"Relay/RelayConnectionConfig.swift",
"Relay/RelayConnectionState.swift",
"Relay/RelayPool.swift",
"Relay/RelayPoolConfig.swift",
"Relay/RelaySubscriptionMessage.swift"
],
"type" : "library"
}
],
"tools_version" : "6.2"
}
Done.