Build Information
Failed to build Localite, reference 1.0.1 (f35578
), with Swift 6.2 (beta) for Android on 20 Jun 2025 16:29:37 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/TelemTobi/Localite.git
Reference: 1.0.1
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/TelemTobi/Localite
* tag 1.0.1 -> FETCH_HEAD
HEAD is now at f355781 Update LocaliteTests.swift
Cloned https://github.com/TelemTobi/Localite.git
Revision (git rev-parse @):
f355781300d889f2a21f627de3de3d7ed0f54b0e
SUCCESS checkout https://github.com/TelemTobi/Localite.git at 1.0.1
========================================
Build
========================================
Selected platform: android
Swift version: 6.2
Building package at path: $PWD
https://github.com/TelemTobi/Localite.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:b7c4a6b4153ff40ef9277e2157e708f835b8eb011095d53bd8db4594eb2b7798
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.2-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-8C5A4AE7A8CE2BA.txt
[3/6] Compiling Localite VersionsStorage.swift
/host/spi-builder-workspace/Sources/Localite/Helpers/VersionsStorage.swift:21:24: error: value of type 'UserDefaults' has no member 'setValue'
19 | var versions = localiteSuite?.dictionary(forKey: Keys.versions) as? [String : Int] ?? [String : Int]()
20 | versions[language] = version
21 | localiteSuite?.setValue(versions, forKey: Keys.versions)
| `- error: value of type 'UserDefaults' has no member 'setValue'
22 | }
23 |
[4/6] Compiling Localite Localite.swift
/host/spi-builder-workspace/Sources/Localite/Localite.swift:20:30: error: 'URLSession' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
18 | private let filesStorage = FilesStorage()
19 | private let versionsStorage = VersionsStorage()
20 | private let urlSession = URLSession(configuration: .default)
| `- error: 'URLSession' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
21 |
22 | private init() {
/host/spi-builder-workspace/Sources/Localite/Localite.swift:20:57: error: cannot infer contextual base in reference to member 'default'
18 | private let filesStorage = FilesStorage()
19 | private let versionsStorage = VersionsStorage()
20 | private let urlSession = URLSession(configuration: .default)
| `- error: cannot infer contextual base in reference to member 'default'
21 |
22 | private init() {
/host/spi-builder-workspace/Sources/Localite/Localite.swift:126:6: error: Objective-C interoperability is disabled
124 | extension Bundle {
125 |
126 | @objc func localiteString(forKey key: String, value: String?, table tableName: String?) -> String {
| `- error: Objective-C interoperability is disabled
127 | let bundle = Localite.shared.localiteBundle ?? Bundle.main
128 | return bundle.localiteString(forKey: key, value: value, table: tableName)
/host/spi-builder-workspace/Sources/Localite/Localite.swift:85:35: error: cannot find 'URLRequest' in scope
83 |
84 | private func fetchStringsFile(using url: URL, for language: String, completion: @escaping (Data) -> Void) {
85 | urlSession.dataTask(with: URLRequest(url: url)) { [weak self] data, response, error in
| `- error: cannot find 'URLRequest' in scope
86 | guard let data, error == nil, (response as? HTTPURLResponse)?.statusCode ?? 0 < 400 else {
87 | print("Localite error - Fetching failed " + (error?.localizedDescription ?? ""))
/host/spi-builder-workspace/Sources/Localite/Localite.swift:85:71: error: cannot infer type of closure parameter 'data' without a type annotation
83 |
84 | private func fetchStringsFile(using url: URL, for language: String, completion: @escaping (Data) -> Void) {
85 | urlSession.dataTask(with: URLRequest(url: url)) { [weak self] data, response, error in
| `- error: cannot infer type of closure parameter 'data' without a type annotation
86 | guard let data, error == nil, (response as? HTTPURLResponse)?.statusCode ?? 0 < 400 else {
87 | print("Localite error - Fetching failed " + (error?.localizedDescription ?? ""))
/host/spi-builder-workspace/Sources/Localite/Localite.swift:85:77: error: cannot infer type of closure parameter 'response' without a type annotation
83 |
84 | private func fetchStringsFile(using url: URL, for language: String, completion: @escaping (Data) -> Void) {
85 | urlSession.dataTask(with: URLRequest(url: url)) { [weak self] data, response, error in
| `- error: cannot infer type of closure parameter 'response' without a type annotation
86 | guard let data, error == nil, (response as? HTTPURLResponse)?.statusCode ?? 0 < 400 else {
87 | print("Localite error - Fetching failed " + (error?.localizedDescription ?? ""))
/host/spi-builder-workspace/Sources/Localite/Localite.swift:85:87: error: cannot infer type of closure parameter 'error' without a type annotation
83 |
84 | private func fetchStringsFile(using url: URL, for language: String, completion: @escaping (Data) -> Void) {
85 | urlSession.dataTask(with: URLRequest(url: url)) { [weak self] data, response, error in
| `- error: cannot infer type of closure parameter 'error' without a type annotation
86 | guard let data, error == nil, (response as? HTTPURLResponse)?.statusCode ?? 0 < 400 else {
87 | print("Localite error - Fetching failed " + (error?.localizedDescription ?? ""))
/host/spi-builder-workspace/Sources/Localite/Localite.swift:86:75: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
84 | private func fetchStringsFile(using url: URL, for language: String, completion: @escaping (Data) -> Void) {
85 | urlSession.dataTask(with: URLRequest(url: url)) { [weak self] data, response, error in
86 | guard let data, error == nil, (response as? HTTPURLResponse)?.statusCode ?? 0 < 400 else {
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
87 | print("Localite error - Fetching failed " + (error?.localizedDescription ?? ""))
88 | self?.computeLocaliteBundle(for: language)
/host/spi-builder-workspace/Sources/Localite/Localite.swift:109:32: error: '#selector' can only be used with the Objective-C runtime
107 |
108 | private func swizzleLocalization() {
109 | let originalSelector = #selector(Bundle.localizedString(forKey:value:table:))
| `- error: '#selector' can only be used with the Objective-C runtime
110 | let overrideSelector = #selector(Bundle.localiteString(forKey:value:table:))
111 |
/host/spi-builder-workspace/Sources/Localite/Localite.swift:110:32: error: '#selector' can only be used with the Objective-C runtime
108 | private func swizzleLocalization() {
109 | let originalSelector = #selector(Bundle.localizedString(forKey:value:table:))
110 | let overrideSelector = #selector(Bundle.localiteString(forKey:value:table:))
| `- error: '#selector' can only be used with the Objective-C runtime
111 |
112 | guard let originalMethod: Method = class_getInstanceMethod(Bundle.self, originalSelector),
/host/spi-builder-workspace/Sources/Localite/Localite.swift:112:35: error: cannot find type 'Method' in scope
110 | let overrideSelector = #selector(Bundle.localiteString(forKey:value:table:))
111 |
112 | guard let originalMethod: Method = class_getInstanceMethod(Bundle.self, originalSelector),
| `- error: cannot find type 'Method' in scope
113 | let overrideMethod: Method = class_getInstanceMethod(Bundle.self, overrideSelector)
114 | else { return }
/host/spi-builder-workspace/Sources/Localite/Localite.swift:112:44: error: cannot find 'class_getInstanceMethod' in scope
110 | let overrideSelector = #selector(Bundle.localiteString(forKey:value:table:))
111 |
112 | guard let originalMethod: Method = class_getInstanceMethod(Bundle.self, originalSelector),
| `- error: cannot find 'class_getInstanceMethod' in scope
113 | let overrideMethod: Method = class_getInstanceMethod(Bundle.self, overrideSelector)
114 | else { return }
/host/spi-builder-workspace/Sources/Localite/Localite.swift:112:44: error: type of expression is ambiguous without a type annotation
110 | let overrideSelector = #selector(Bundle.localiteString(forKey:value:table:))
111 |
112 | guard let originalMethod: Method = class_getInstanceMethod(Bundle.self, originalSelector),
| `- error: type of expression is ambiguous without a type annotation
113 | let overrideMethod: Method = class_getInstanceMethod(Bundle.self, overrideSelector)
114 | else { return }
/host/spi-builder-workspace/Sources/Localite/Localite.swift:113:35: error: cannot find type 'Method' in scope
111 |
112 | guard let originalMethod: Method = class_getInstanceMethod(Bundle.self, originalSelector),
113 | let overrideMethod: Method = class_getInstanceMethod(Bundle.self, overrideSelector)
| `- error: cannot find type 'Method' in scope
114 | else { return }
115 |
/host/spi-builder-workspace/Sources/Localite/Localite.swift:113:44: error: cannot find 'class_getInstanceMethod' in scope
111 |
112 | guard let originalMethod: Method = class_getInstanceMethod(Bundle.self, originalSelector),
113 | let overrideMethod: Method = class_getInstanceMethod(Bundle.self, overrideSelector)
| `- error: cannot find 'class_getInstanceMethod' in scope
114 | else { return }
115 |
/host/spi-builder-workspace/Sources/Localite/Localite.swift:113:44: error: type of expression is ambiguous without a type annotation
111 |
112 | guard let originalMethod: Method = class_getInstanceMethod(Bundle.self, originalSelector),
113 | let overrideMethod: Method = class_getInstanceMethod(Bundle.self, overrideSelector)
| `- error: type of expression is ambiguous without a type annotation
114 | else { return }
115 |
/host/spi-builder-workspace/Sources/Localite/Localite.swift:116:12: error: cannot find 'class_addMethod' in scope
114 | else { return }
115 |
116 | if class_addMethod(Bundle.self, originalSelector, method_getImplementation(overrideMethod), method_getTypeEncoding(overrideMethod)) {
| `- error: cannot find 'class_addMethod' in scope
117 | class_replaceMethod(Bundle.self, overrideSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
118 | } else {
/host/spi-builder-workspace/Sources/Localite/Localite.swift:116:59: error: cannot find 'method_getImplementation' in scope
114 | else { return }
115 |
116 | if class_addMethod(Bundle.self, originalSelector, method_getImplementation(overrideMethod), method_getTypeEncoding(overrideMethod)) {
| `- error: cannot find 'method_getImplementation' in scope
117 | class_replaceMethod(Bundle.self, overrideSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
118 | } else {
/host/spi-builder-workspace/Sources/Localite/Localite.swift:116:101: error: cannot find 'method_getTypeEncoding' in scope
114 | else { return }
115 |
116 | if class_addMethod(Bundle.self, originalSelector, method_getImplementation(overrideMethod), method_getTypeEncoding(overrideMethod)) {
| `- error: cannot find 'method_getTypeEncoding' in scope
117 | class_replaceMethod(Bundle.self, overrideSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
118 | } else {
/host/spi-builder-workspace/Sources/Localite/Localite.swift:117:13: error: cannot find 'class_replaceMethod' in scope
115 |
116 | if class_addMethod(Bundle.self, originalSelector, method_getImplementation(overrideMethod), method_getTypeEncoding(overrideMethod)) {
117 | class_replaceMethod(Bundle.self, overrideSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
| `- error: cannot find 'class_replaceMethod' in scope
118 | } else {
119 | method_exchangeImplementations(originalMethod, overrideMethod)
/host/spi-builder-workspace/Sources/Localite/Localite.swift:117:64: error: cannot find 'method_getImplementation' in scope
115 |
116 | if class_addMethod(Bundle.self, originalSelector, method_getImplementation(overrideMethod), method_getTypeEncoding(overrideMethod)) {
117 | class_replaceMethod(Bundle.self, overrideSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
| `- error: cannot find 'method_getImplementation' in scope
118 | } else {
119 | method_exchangeImplementations(originalMethod, overrideMethod)
/host/spi-builder-workspace/Sources/Localite/Localite.swift:117:106: error: cannot find 'method_getTypeEncoding' in scope
115 |
116 | if class_addMethod(Bundle.self, originalSelector, method_getImplementation(overrideMethod), method_getTypeEncoding(overrideMethod)) {
117 | class_replaceMethod(Bundle.self, overrideSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
| `- error: cannot find 'method_getTypeEncoding' in scope
118 | } else {
119 | method_exchangeImplementations(originalMethod, overrideMethod)
/host/spi-builder-workspace/Sources/Localite/Localite.swift:119:13: error: cannot find 'method_exchangeImplementations' in scope
117 | class_replaceMethod(Bundle.self, overrideSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
118 | } else {
119 | method_exchangeImplementations(originalMethod, overrideMethod)
| `- error: cannot find 'method_exchangeImplementations' in scope
120 | }
121 | }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[5/6] Emitting module Localite
/host/spi-builder-workspace/Sources/Localite/Localite.swift:20:30: error: 'URLSession' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
18 | private let filesStorage = FilesStorage()
19 | private let versionsStorage = VersionsStorage()
20 | private let urlSession = URLSession(configuration: .default)
| `- error: 'URLSession' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
21 |
22 | private init() {
/host/spi-builder-workspace/Sources/Localite/Localite.swift:20:57: error: cannot infer contextual base in reference to member 'default'
18 | private let filesStorage = FilesStorage()
19 | private let versionsStorage = VersionsStorage()
20 | private let urlSession = URLSession(configuration: .default)
| `- error: cannot infer contextual base in reference to member 'default'
21 |
22 | private init() {
/host/spi-builder-workspace/Sources/Localite/Localite.swift:126:6: error: Objective-C interoperability is disabled
124 | extension Bundle {
125 |
126 | @objc func localiteString(forKey key: String, value: String?, table tableName: String?) -> String {
| `- error: Objective-C interoperability is disabled
127 | let bundle = Localite.shared.localiteBundle ?? Bundle.main
128 | return bundle.localiteString(forKey: key, value: value, table: tableName)
[6/6] Compiling Localite FilesStorage.swift
/host/spi-builder-workspace/Sources/Localite/Localite.swift:20:30: error: 'URLSession' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
18 | private let filesStorage = FilesStorage()
19 | private let versionsStorage = VersionsStorage()
20 | private let urlSession = URLSession(configuration: .default)
| `- error: 'URLSession' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
21 |
22 | private init() {
/host/spi-builder-workspace/Sources/Localite/Localite.swift:20:57: error: cannot infer contextual base in reference to member 'default'
18 | private let filesStorage = FilesStorage()
19 | private let versionsStorage = VersionsStorage()
20 | private let urlSession = URLSession(configuration: .default)
| `- error: cannot infer contextual base in reference to member 'default'
21 |
22 | private init() {
BUILD FAILURE 6.2 android