Build Information
Successful build of EmojiKit, reference main (b57c28
), with Swift 6.1 for macOS (SPM) on 28 Apr 2025 09:51:24 UTC.
Swift 6 data race errors: 2
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 InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/niklasamslgruber/EmojiKit.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/niklasamslgruber/EmojiKit
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at b57c289 Fix category names to match Apple categories (#5)
Cloned https://github.com/niklasamslgruber/EmojiKit.git
Revision (git rev-parse @):
b57c28995b8e398d31be0c8b07de0917b0ebb84b
SUCCESS checkout https://github.com/niklasamslgruber/EmojiKit.git at main
Fetching https://github.com/scinfu/SwiftSoup.git
Fetching https://github.com/apple/swift-argument-parser.git from cache
[1/3908] Fetching swiftsoup
Fetched https://github.com/apple/swift-argument-parser.git from cache (0.71s)
Fetched https://github.com/scinfu/SwiftSoup.git from cache (1.08s)
Computing version for https://github.com/scinfu/SwiftSoup.git
Computed https://github.com/scinfu/SwiftSoup.git at 2.6.0 (2.03s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.2.2 (0.60s)
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.2.2
Creating working copy for https://github.com/scinfu/SwiftSoup.git
Working copy of https://github.com/scinfu/SwiftSoup.git resolved at 2.6.0
========================================
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",
"dependencies": [
{
"identity": "emojikit",
"name": "EmojiKit",
"url": "https://github.com/niklasamslgruber/EmojiKit.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/EmojiKit",
"dependencies": [
]
}
]
}
Fetching https://github.com/niklasamslgruber/EmojiKit.git
[1/193] Fetching emojikit
Fetched https://github.com/niklasamslgruber/EmojiKit.git from cache (0.63s)
Creating working copy for https://github.com/niklasamslgruber/EmojiKit.git
Working copy of https://github.com/niklasamslgruber/EmojiKit.git resolved at main (b57c289)
warning: '.resolve-product-dependencies': dependency 'emojikit' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/niklasamslgruber/EmojiKit.git
https://github.com/niklasamslgruber/EmojiKit.git
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser.git"
},
{
"identity" : "swiftsoup",
"requirement" : {
"range" : [
{
"lower_bound" : "2.6.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/scinfu/SwiftSoup.git"
}
],
"manifest_display_name" : "EmojiKit",
"name" : "EmojiKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "8.0"
},
{
"name" : "tvos",
"version" : "15.0"
}
],
"products" : [
{
"name" : "EmojiKit",
"targets" : [
"EmojiKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "EmojiSourceKit",
"targets" : [
"EmojiSourceKit"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "EmojiSourceKit",
"module_type" : "SwiftTarget",
"name" : "EmojiSourceKit",
"path" : "Sources/EmojiSourceKit",
"product_dependencies" : [
"ArgumentParser",
"SwiftSoup"
],
"product_memberships" : [
"EmojiSourceKit"
],
"sources" : [
"EmojiDownloader.swift",
"EmojiScripts.swift",
"StringHelper.swift",
"UnicodeParser.swift"
],
"target_dependencies" : [
"EmojiKit"
],
"type" : "executable"
},
{
"c99name" : "EmojiKit",
"module_type" : "SwiftTarget",
"name" : "EmojiKit",
"path" : "Sources/EmojiKit",
"product_memberships" : [
"EmojiKit",
"EmojiSourceKit"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/EmojiKit/Resources/emojis_v13.1.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/EmojiKit/Resources/emojis_v14.0.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/EmojiKit/Resources/emojis_v15.0.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/EmojiKit/Resources/emojis_v15.1.json",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"AppleEmojiCategory.swift",
"EmojiManager.swift",
"UnicodeEmojiCategory.swift"
],
"type" : "library"
}
],
"tools_version" : "5.8"
}
Running build ...
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 InferSendableFromCaptures
[1/1] Compiling plugin GenerateManual
Building for debugging...
[1/15] Write sources
[2/15] Write EmojiSourceKit-entitlement.plist
[4/15] Write sources
[7/15] Copying emojis_v15.0.json
[7/15] Copying emojis_v13.1.json
[7/15] Copying emojis_v15.1.json
[7/15] Copying emojis_v14.0.json
[11/15] Write swift-version-2F0A5646E1D333AE.txt
[13/76] Compiling ArgumentParserToolInfo ToolInfo.swift
[14/76] Emitting module ArgumentParserToolInfo
[15/114] Emitting module SwiftSoup
[16/119] Emitting module ArgumentParser
[17/123] Compiling ArgumentParser AsyncParsableCommand.swift
[18/123] Compiling ArgumentParser CommandConfiguration.swift
[19/123] Compiling ArgumentParser EnumerableFlag.swift
[20/123] Compiling ArgumentParser ExpressibleByArgument.swift
[21/123] Compiling ArgumentParser InputOrigin.swift
[22/123] Compiling ArgumentParser Name.swift
[23/123] Compiling ArgumentParser Parsed.swift
[24/123] Compiling ArgumentParser ParsedValues.swift
[25/123] Compiling ArgumentParser Flag.swift
[26/123] Compiling ArgumentParser NameSpecification.swift
[27/123] Compiling ArgumentParser Option.swift
[28/123] Compiling ArgumentParser OptionGroup.swift
[29/123] Compiling ArgumentParser BashCompletionsGenerator.swift
[30/123] Compiling ArgumentParser CompletionsGenerator.swift
[31/123] Compiling ArgumentParser FishCompletionsGenerator.swift
[32/123] Compiling ArgumentParser ZshCompletionsGenerator.swift
[33/123] Compiling ArgumentParser Argument.swift
[34/123] Compiling ArgumentParser ParsableArguments.swift
[35/123] Compiling ArgumentParser ParsableArgumentsValidation.swift
[36/123] Compiling ArgumentParser ParsableCommand.swift
[37/123] Compiling ArgumentParser ArgumentDecoder.swift
[38/123] Compiling ArgumentParser Platform.swift
[39/123] Compiling ArgumentParser SequenceExtensions.swift
[40/123] Compiling ArgumentParser StringExtensions.swift
[41/123] Compiling ArgumentParser Tree.swift
[42/123] Compiling SwiftSoup StringUtil.swift
[43/123] Compiling SwiftSoup StructuralEvaluator.swift
[44/123] Compiling SwiftSoup SwiftSoup.swift
[45/123] Compiling SwiftSoup Tag.swift
[46/123] Compiling SwiftSoup TextNode.swift
[47/123] Compiling SwiftSoup Token.swift
[48/123] Compiling SwiftSoup UnicodeScalar.swift
[49/123] Compiling SwiftSoup Validate.swift
[50/123] Compiling SwiftSoup Whitelist.swift
[51/123] Compiling SwiftSoup XmlDeclaration.swift
[52/123] Compiling SwiftSoup XmlTreeBuilder.swift
[53/123] Compiling EmojiKit UnicodeEmojiCategory.swift
[54/123] Compiling EmojiKit EmojiManager.swift
[55/123] Emitting module EmojiKit
[56/123] Compiling EmojiKit resource_bundle_accessor.swift
[57/123] Compiling EmojiKit AppleEmojiCategory.swift
[58/123] Compiling ArgumentParser CompletionKind.swift
[59/123] Compiling ArgumentParser Errors.swift
[76/123] Compiling SwiftSoup Elements.swift
[77/123] Compiling SwiftSoup Entities.swift
[78/123] Compiling SwiftSoup Evaluator.swift
[79/123] Compiling SwiftSoup Exception.swift
[80/123] Compiling SwiftSoup FormElement.swift
[81/123] Compiling SwiftSoup HtmlTreeBuilder.swift
[82/123] Compiling ArgumentParser HelpCommand.swift
[83/123] Compiling ArgumentParser HelpGenerator.swift
[84/123] Compiling ArgumentParser MessageInfo.swift
[85/123] Compiling ArgumentParser UsageGenerator.swift
[86/123] Compiling ArgumentParser CollectionExtensions.swift
[87/123] Compiling ArgumentParser ArgumentDefinition.swift
[88/123] Compiling ArgumentParser ArgumentSet.swift
[89/123] Compiling ArgumentParser CommandParser.swift
[90/123] Compiling ArgumentParser InputKey.swift
[91/123] Compiling ArgumentParser ArgumentHelp.swift
[92/123] Compiling ArgumentParser ArgumentVisibility.swift
[106/123] Compiling ArgumentParser ParserError.swift
[107/123] Compiling ArgumentParser SplitArguments.swift
[108/123] Compiling ArgumentParser DumpHelpGenerator.swift
[121/128] Compiling EmojiSourceKit StringHelper.swift
[122/128] Compiling EmojiSourceKit UnicodeParser.swift
[123/128] Compiling EmojiSourceKit EmojiScripts.swift
/Users/admin/builder/spi-builder-workspace/Sources/EmojiSourceKit/EmojiScripts.swift:15:16: warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | #if os(macOS)
15 | static let configuration: CommandConfiguration = CommandConfiguration(
| `- warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
16 | commandName: "emojis",
17 | abstract: "Manage Emojis from Unicode",
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-argument-parser/Sources/ArgumentParser/Parsable Types/CommandConfiguration.swift:13:15: note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
11 |
12 | /// The configuration for a command.
13 | public struct CommandConfiguration {
| `- note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
14 | /// The name of the command to use on the command line.
15 | ///
/Users/admin/builder/spi-builder-workspace/Sources/EmojiSourceKit/EmojiScripts.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
7 |
8 | import Foundation
9 | import ArgumentParser
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
10 |
11 | @main
:
13 |
14 | #if os(macOS)
15 | static let configuration: CommandConfiguration = CommandConfiguration(
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | commandName: "emojis",
17 | abstract: "Manage Emojis from Unicode",
[124/128] Compiling EmojiSourceKit EmojiDownloader.swift
/Users/admin/builder/spi-builder-workspace/Sources/EmojiSourceKit/EmojiDownloader.swift:15:16: warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
13 | struct EmojiDownloader: ParsableCommand, AsyncParsableCommand {
14 |
15 | static let configuration: CommandConfiguration = CommandConfiguration(
| `- warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
16 | commandName: "download",
17 | abstract: "Downloads a list of all available emojis and their counts from unicode.rog for the respective unicode version"
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-argument-parser/Sources/ArgumentParser/Parsable Types/CommandConfiguration.swift:13:15: note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
11 |
12 | /// The configuration for a command.
13 | public struct CommandConfiguration {
| `- note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
14 | /// The name of the command to use on the command line.
15 | ///
/Users/admin/builder/spi-builder-workspace/Sources/EmojiSourceKit/EmojiDownloader.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
7 |
8 | import Foundation
9 | import ArgumentParser
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
10 | import EmojiKit
11 |
:
13 | struct EmojiDownloader: ParsableCommand, AsyncParsableCommand {
14 |
15 | static let configuration: CommandConfiguration = CommandConfiguration(
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | commandName: "download",
17 | abstract: "Downloads a list of all available emojis and their counts from unicode.rog for the respective unicode version"
/Users/admin/builder/spi-builder-workspace/Sources/EmojiSourceKit/EmojiDownloader.swift:126:1: warning: extension declares a conformance of imported type 'Version' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'EmojiKit' introduce this conformance in the future
124 | }
125 | #endif
126 | extension EmojiManager.Version: ExpressibleByArgument {}
| |- warning: extension declares a conformance of imported type 'Version' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'EmojiKit' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
127 |
[125/128] Emitting module EmojiSourceKit
/Users/admin/builder/spi-builder-workspace/Sources/EmojiSourceKit/EmojiDownloader.swift:15:16: warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
13 | struct EmojiDownloader: ParsableCommand, AsyncParsableCommand {
14 |
15 | static let configuration: CommandConfiguration = CommandConfiguration(
| `- warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
16 | commandName: "download",
17 | abstract: "Downloads a list of all available emojis and their counts from unicode.rog for the respective unicode version"
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-argument-parser/Sources/ArgumentParser/Parsable Types/CommandConfiguration.swift:13:15: note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
11 |
12 | /// The configuration for a command.
13 | public struct CommandConfiguration {
| `- note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
14 | /// The name of the command to use on the command line.
15 | ///
/Users/admin/builder/spi-builder-workspace/Sources/EmojiSourceKit/EmojiDownloader.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
7 |
8 | import Foundation
9 | import ArgumentParser
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
10 | import EmojiKit
11 |
:
13 | struct EmojiDownloader: ParsableCommand, AsyncParsableCommand {
14 |
15 | static let configuration: CommandConfiguration = CommandConfiguration(
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | commandName: "download",
17 | abstract: "Downloads a list of all available emojis and their counts from unicode.rog for the respective unicode version"
/Users/admin/builder/spi-builder-workspace/Sources/EmojiSourceKit/EmojiDownloader.swift:126:1: warning: extension declares a conformance of imported type 'Version' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'EmojiKit' introduce this conformance in the future
124 | }
125 | #endif
126 | extension EmojiManager.Version: ExpressibleByArgument {}
| |- warning: extension declares a conformance of imported type 'Version' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'EmojiKit' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
127 |
/Users/admin/builder/spi-builder-workspace/Sources/EmojiSourceKit/EmojiScripts.swift:15:16: warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | #if os(macOS)
15 | static let configuration: CommandConfiguration = CommandConfiguration(
| `- warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
16 | commandName: "emojis",
17 | abstract: "Manage Emojis from Unicode",
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-argument-parser/Sources/ArgumentParser/Parsable Types/CommandConfiguration.swift:13:15: note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
11 |
12 | /// The configuration for a command.
13 | public struct CommandConfiguration {
| `- note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
14 | /// The name of the command to use on the command line.
15 | ///
/Users/admin/builder/spi-builder-workspace/Sources/EmojiSourceKit/EmojiScripts.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
7 |
8 | import Foundation
9 | import ArgumentParser
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
10 |
11 | @main
:
13 |
14 | #if os(macOS)
15 | static let configuration: CommandConfiguration = CommandConfiguration(
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | commandName: "emojis",
17 | abstract: "Manage Emojis from Unicode",
[125/128] Write Objects.LinkFileList
[126/128] Linking EmojiSourceKit
[127/128] Applying EmojiSourceKit
Build complete! (9.29s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser.git"
},
{
"identity" : "swiftsoup",
"requirement" : {
"range" : [
{
"lower_bound" : "2.6.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/scinfu/SwiftSoup.git"
}
],
"manifest_display_name" : "EmojiKit",
"name" : "EmojiKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "8.0"
},
{
"name" : "tvos",
"version" : "15.0"
}
],
"products" : [
{
"name" : "EmojiKit",
"targets" : [
"EmojiKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "EmojiSourceKit",
"targets" : [
"EmojiSourceKit"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "EmojiSourceKit",
"module_type" : "SwiftTarget",
"name" : "EmojiSourceKit",
"path" : "Sources/EmojiSourceKit",
"product_dependencies" : [
"ArgumentParser",
"SwiftSoup"
],
"product_memberships" : [
"EmojiSourceKit"
],
"sources" : [
"EmojiDownloader.swift",
"EmojiScripts.swift",
"StringHelper.swift",
"UnicodeParser.swift"
],
"target_dependencies" : [
"EmojiKit"
],
"type" : "executable"
},
{
"c99name" : "EmojiKit",
"module_type" : "SwiftTarget",
"name" : "EmojiKit",
"path" : "Sources/EmojiKit",
"product_memberships" : [
"EmojiKit",
"EmojiSourceKit"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/EmojiKit/Resources/emojis_v13.1.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/EmojiKit/Resources/emojis_v14.0.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/EmojiKit/Resources/emojis_v15.0.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/EmojiKit/Resources/emojis_v15.1.json",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"AppleEmojiCategory.swift",
"EmojiManager.swift",
"UnicodeEmojiCategory.swift"
],
"type" : "library"
}
],
"tools_version" : "5.8"
}
Done.