The Swift Package Index logo.Swift Package Index

Build Information

Failed to build String+Japanese, reference main (bc98f7), with Swift 6.3 for Android on 12 Apr 2026 03:03:40 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/brevansio/String-Japanese.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/brevansio/String-Japanese
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at bc98f7b Initial commit
Cloned https://github.com/brevansio/String-Japanese.git
Revision (git rev-parse @):
bc98f7b3a4a0372808e1149f47feb9b9dfda3fa6
SUCCESS checkout https://github.com/brevansio/String-Japanese.git at main
========================================
Build
========================================
Selected platform:         android
Swift version:             6.3
Building package at path:  $PWD
https://github.com/brevansio/String-Japanese.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:9008270ea37a55e78725e6225015adb5eff8582da520c5232bf0499f32c36dc4
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--4F562202D5529B1.txt
[3/5] Compiling String_Japanese UnicodeScalar+Japanese.swift
[4/5] Emitting module String_Japanese
[5/5] Compiling String_Japanese String+Japanese.swift
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:61:25: error: cannot find 'CFStringTokenizerCreate' in scope
 59 |         var latinString = ""
 60 |
 61 |         let tokenizer = CFStringTokenizerCreate(kCFAllocatorDefault,
    |                         `- error: cannot find 'CFStringTokenizerCreate' in scope
 62 |                                                 self as CFString,
 63 |                                                 CFRangeMake(0, self.utf16.count),
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:64:49: error: cannot find 'kCFStringTokenizerUnitWord' in scope
 62 |                                                 self as CFString,
 63 |                                                 CFRangeMake(0, self.utf16.count),
 64 |                                                 kCFStringTokenizerUnitWord,
    |                                                 `- error: cannot find 'kCFStringTokenizerUnitWord' in scope
 65 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
 66 |
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:62:54: error: 'String' is not convertible to 'CFString'
 60 |
 61 |         let tokenizer = CFStringTokenizerCreate(kCFAllocatorDefault,
 62 |                                                 self as CFString,
    |                                                      |- error: 'String' is not convertible to 'CFString'
    |                                                      `- note: did you mean to use 'as!' to force downcast?
 63 |                                                 CFRangeMake(0, self.utf16.count),
 64 |                                                 kCFStringTokenizerUnitWord,
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:65:85: error: 'CFLocaleIdentifier' (aka 'CFString') cannot be constructed because it has no accessible initializers
 63 |                                                 CFRangeMake(0, self.utf16.count),
 64 |                                                 kCFStringTokenizerUnitWord,
 65 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
    |                                                                                     `- error: 'CFLocaleIdentifier' (aka 'CFString') cannot be constructed because it has no accessible initializers
 66 |
 67 |         var result = CFStringTokenizerAdvanceToNextToken(tokenizer)
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:65:115: error: 'String' is not convertible to 'CFString'
 63 |                                                 CFRangeMake(0, self.utf16.count),
 64 |                                                 kCFStringTokenizerUnitWord,
 65 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
    |                                                                                                                   |- error: 'String' is not convertible to 'CFString'
    |                                                                                                                   `- note: did you mean to use 'as!' to force downcast?
 66 |
 67 |         var result = CFStringTokenizerAdvanceToNextToken(tokenizer)
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:67:22: error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
 65 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
 66 |
 67 |         var result = CFStringTokenizerAdvanceToNextToken(tokenizer)
    |                      `- error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
 68 |
 69 |         while (result.rawValue != 0) {
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:70:32: error: cannot find 'CFStringTokenizerCopyCurrentTokenAttribute' in scope
 68 |
 69 |         while (result.rawValue != 0) {
 70 |             if let attribute = CFStringTokenizerCopyCurrentTokenAttribute(tokenizer, kCFStringTokenizerAttributeLatinTranscription),
    |                                `- error: cannot find 'CFStringTokenizerCopyCurrentTokenAttribute' in scope
 71 |                let attributeString = attribute as? String {
 72 |                 if let separator = separator {
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:70:86: error: cannot find 'kCFStringTokenizerAttributeLatinTranscription' in scope
 68 |
 69 |         while (result.rawValue != 0) {
 70 |             if let attribute = CFStringTokenizerCopyCurrentTokenAttribute(tokenizer, kCFStringTokenizerAttributeLatinTranscription),
    |                                                                                      `- error: cannot find 'kCFStringTokenizerAttributeLatinTranscription' in scope
 71 |                let attributeString = attribute as? String {
 72 |                 if let separator = separator {
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:77:29: error: cannot find 'CFStringTokenizerGetCurrentTokenRange' in scope
 75 |                 latinString += String(format: "%@", attributeString)
 76 |             } else {
 77 |                 let range = CFStringTokenizerGetCurrentTokenRange(tokenizer)
    |                             `- error: cannot find 'CFStringTokenizerGetCurrentTokenRange' in scope
 78 |                 if range.location == kCFNotFound
 79 |                     && range.location + range.length < CFStringGetLength(self as CFString),
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:79:79: error: 'String' is not convertible to 'CFString'
 77 |                 let range = CFStringTokenizerGetCurrentTokenRange(tokenizer)
 78 |                 if range.location == kCFNotFound
 79 |                     && range.location + range.length < CFStringGetLength(self as CFString),
    |                                                                               |- error: 'String' is not convertible to 'CFString'
    |                                                                               `- note: did you mean to use 'as?' to conditionally downcast?
 80 |                    let unmodifiedString = CFStringCreateWithSubstring(kCFAllocatorDefault, self as CFString, range) {
 81 |                     if let separator = separator {
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:80:97: error: 'String' is not convertible to 'CFString'
 78 |                 if range.location == kCFNotFound
 79 |                     && range.location + range.length < CFStringGetLength(self as CFString),
 80 |                    let unmodifiedString = CFStringCreateWithSubstring(kCFAllocatorDefault, self as CFString, range) {
    |                                                                                                 |- error: 'String' is not convertible to 'CFString'
    |                                                                                                 `- note: did you mean to use 'as?' to conditionally downcast?
 81 |                     if let separator = separator {
 82 |                         latinString += String(separator)
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:88:22: error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
 86 |             }
 87 |
 88 |             result = CFStringTokenizerAdvanceToNextToken(tokenizer)
    |                      `- error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
 89 |         }
 90 |
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:117:25: error: cannot find 'CFStringTokenizerCreate' in scope
115 |         var kanjiFreeString = ""
116 |
117 |         let tokenizer = CFStringTokenizerCreate(kCFAllocatorDefault,
    |                         `- error: cannot find 'CFStringTokenizerCreate' in scope
118 |                                                 self as CFString,
119 |                                                 CFRangeMake(0, self.utf16.count),
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:120:49: error: cannot find 'kCFStringTokenizerUnitWord' in scope
118 |                                                 self as CFString,
119 |                                                 CFRangeMake(0, self.utf16.count),
120 |                                                 kCFStringTokenizerUnitWord,
    |                                                 `- error: cannot find 'kCFStringTokenizerUnitWord' in scope
121 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
122 |
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:118:54: error: 'String' is not convertible to 'CFString'
116 |
117 |         let tokenizer = CFStringTokenizerCreate(kCFAllocatorDefault,
118 |                                                 self as CFString,
    |                                                      |- error: 'String' is not convertible to 'CFString'
    |                                                      `- note: did you mean to use 'as!' to force downcast?
119 |                                                 CFRangeMake(0, self.utf16.count),
120 |                                                 kCFStringTokenizerUnitWord,
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:121:85: error: 'CFLocaleIdentifier' (aka 'CFString') cannot be constructed because it has no accessible initializers
119 |                                                 CFRangeMake(0, self.utf16.count),
120 |                                                 kCFStringTokenizerUnitWord,
121 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
    |                                                                                     `- error: 'CFLocaleIdentifier' (aka 'CFString') cannot be constructed because it has no accessible initializers
122 |
123 |         var result = CFStringTokenizerAdvanceToNextToken(tokenizer)
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:121:115: error: 'String' is not convertible to 'CFString'
119 |                                                 CFRangeMake(0, self.utf16.count),
120 |                                                 kCFStringTokenizerUnitWord,
121 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
    |                                                                                                                   |- error: 'String' is not convertible to 'CFString'
    |                                                                                                                   `- note: did you mean to use 'as!' to force downcast?
122 |
123 |         var result = CFStringTokenizerAdvanceToNextToken(tokenizer)
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:123:22: error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
121 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
122 |
123 |         var result = CFStringTokenizerAdvanceToNextToken(tokenizer)
    |                      `- error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
124 |
125 |         while (result.rawValue != 0) {
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:126:25: error: cannot find 'CFStringTokenizerGetCurrentTokenRange' in scope
124 |
125 |         while (result.rawValue != 0) {
126 |             let range = CFStringTokenizerGetCurrentTokenRange(tokenizer)
    |                         `- error: cannot find 'CFStringTokenizerGetCurrentTokenRange' in scope
127 |
128 |             let utf16Array = self.utf16.map { $0 }
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:139:22: error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
137 |             }
138 |
139 |             result = CFStringTokenizerAdvanceToNextToken(tokenizer)
    |                      `- error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
140 |         }
141 |
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:148:25: error: cannot find 'CFStringTokenizerCreate' in scope
146 |         var kanjiFreeString = ""
147 |
148 |         let tokenizer = CFStringTokenizerCreate(kCFAllocatorDefault,
    |                         `- error: cannot find 'CFStringTokenizerCreate' in scope
149 |                                                 self as CFString,
150 |                                                 CFRangeMake(0, self.utf16.count),
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:151:49: error: cannot find 'kCFStringTokenizerUnitWord' in scope
149 |                                                 self as CFString,
150 |                                                 CFRangeMake(0, self.utf16.count),
151 |                                                 kCFStringTokenizerUnitWord,
    |                                                 `- error: cannot find 'kCFStringTokenizerUnitWord' in scope
152 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
153 |
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:149:54: error: 'String' is not convertible to 'CFString'
147 |
148 |         let tokenizer = CFStringTokenizerCreate(kCFAllocatorDefault,
149 |                                                 self as CFString,
    |                                                      |- error: 'String' is not convertible to 'CFString'
    |                                                      `- note: did you mean to use 'as!' to force downcast?
150 |                                                 CFRangeMake(0, self.utf16.count),
151 |                                                 kCFStringTokenizerUnitWord,
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:152:85: error: 'CFLocaleIdentifier' (aka 'CFString') cannot be constructed because it has no accessible initializers
150 |                                                 CFRangeMake(0, self.utf16.count),
151 |                                                 kCFStringTokenizerUnitWord,
152 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
    |                                                                                     `- error: 'CFLocaleIdentifier' (aka 'CFString') cannot be constructed because it has no accessible initializers
153 |
154 |         var result = CFStringTokenizerAdvanceToNextToken(tokenizer)
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:152:115: error: 'String' is not convertible to 'CFString'
150 |                                                 CFRangeMake(0, self.utf16.count),
151 |                                                 kCFStringTokenizerUnitWord,
152 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
    |                                                                                                                   |- error: 'String' is not convertible to 'CFString'
    |                                                                                                                   `- note: did you mean to use 'as!' to force downcast?
153 |
154 |         var result = CFStringTokenizerAdvanceToNextToken(tokenizer)
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:154:22: error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
152 |                                                 CFLocaleCreate(kCFAllocatorDefault, CFLocaleIdentifier("Japanese" as CFString)))
153 |
154 |         var result = CFStringTokenizerAdvanceToNextToken(tokenizer)
    |                      `- error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
155 |
156 |         while (result.rawValue != 0) {
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:157:25: error: cannot find 'CFStringTokenizerGetCurrentTokenRange' in scope
155 |
156 |         while (result.rawValue != 0) {
157 |             let range = CFStringTokenizerGetCurrentTokenRange(tokenizer)
    |                         `- error: cannot find 'CFStringTokenizerGetCurrentTokenRange' in scope
158 |
159 |             let utf16Array = self.utf16.map { $0 }
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:170:22: error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
168 |             }
169 |
170 |             result = CFStringTokenizerAdvanceToNextToken(tokenizer)
    |                      `- error: cannot find 'CFStringTokenizerAdvanceToNextToken' in scope
171 |         }
172 |
/host/spi-builder-workspace/Sources/String+Japanese/String+Japanese.swift:177:90: error: 'String' is not convertible to 'CFString'
175 |
176 |     private func transliterate(with transform: CFString) -> String {
177 |         guard let mutableString = CFStringCreateMutableCopy(kCFAllocatorDefault, 0, self as CFString) else {
    |                                                                                          |- error: 'String' is not convertible to 'CFString'
    |                                                                                          `- note: did you mean to use 'as?' to conditionally downcast?
178 |             return self
179 |         }
BUILD FAILURE 6.3 android