The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of swift-android-native, reference 1.4.3 (8bfa63), with Swift 6.2 (beta) for Android on 23 Jun 2025 23:56:06 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/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/skiptools/swift-android-native.git
Reference: 1.4.3
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/skiptools/swift-android-native
 * tag               1.4.3      -> FETCH_HEAD
HEAD is now at 8bfa631
Cloned https://github.com/skiptools/swift-android-native.git
Revision (git rev-parse @):
8bfa631886b4dd1f9e3fc3f43d653a71b6d19295
SUCCESS checkout https://github.com/skiptools/swift-android-native.git at 1.4.3
========================================
Build
========================================
Selected platform:         android
Swift version:             6.2
Building package at path:  $PWD
https://github.com/skiptools/swift-android-native.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/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
Fetching https://source.skip.tools/swift-jni.git
[1/105] Fetching swift-jni
Fetched https://source.skip.tools/swift-jni.git from cache (2.89s)
Computing version for https://source.skip.tools/swift-jni.git
Computed https://source.skip.tools/swift-jni.git at 0.2.1 (3.27s)
Creating working copy for https://source.skip.tools/swift-jni.git
Working copy of https://source.skip.tools/swift-jni.git resolved at 0.2.1
Building for debugging...
[0/15] Write sources
[8/15] Compiling CJNI cjni.c
[9/15] Compiling ConcurrencyRuntimeC src.c
[10/15] Compiling AndroidNDK src.c
[11/15] Write swift-version-8C5A4AE7A8CE2BA.txt
[13/48] Compiling AndroidSystem FileOperations.swift
[14/48] Compiling AndroidSystem FilePath.swift
[15/48] Compiling AndroidSystem FilePathComponentView.swift
[16/48] Compiling AndroidSystem FilePathComponents.swift
[17/48] Compiling AndroidSystem LockedState.swift
[18/48] Compiling AndroidSystem MachPort.swift
[19/48] Compiling AndroidSystem PlatformString.swift
[20/48] Compiling AndroidSystem SystemString.swift
[21/51] Compiling AndroidSystem FilePathTempPosix.swift
[22/51] Compiling AndroidSystem FilePathTempWindows.swift
[23/51] Compiling AndroidSystem FilePathWindows.swift
[24/51] Compiling AndroidSystem FilePermissions.swift
[25/51] Compiling AndroidSystem Errno.swift
[26/51] Compiling AndroidSystem ErrnoWindows.swift
[27/51] Compiling AndroidSystem FileDescriptor.swift
[28/51] Compiling AndroidSystem FileHelpers.swift
[29/51] Emitting module AndroidSystem
/host/spi-builder-workspace/Sources/AndroidSystem/Internals/CInterop.swift:21:22: warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
19 | import WASILibc
20 | #elseif canImport(Android)
21 | @_implementationOnly import AndroidNDK
   |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
22 | import Android
23 | #else
/host/spi-builder-workspace/Sources/AndroidSystem/Internals/Exports.swift:26:22: warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
 24 | import WASILibc
 25 | #elseif canImport(Android)
 26 | @_implementationOnly import AndroidNDK
    |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
 27 | import Android
 28 | #else
[30/51] Compiling AndroidSystem FilePathParsing.swift
[31/51] Compiling AndroidSystem FilePathString.swift
[32/51] Compiling AndroidSystem FilePathSyntax.swift
[33/51] Compiling AndroidSystem FilePathTemp.swift
[34/51] Compiling AndroidSystem Util+StringArray.swift
[35/51] Compiling AndroidSystem Util.swift
[36/51] Compiling AndroidSystem UtilConsumers.swift
[37/51] Emitting module AndroidLogging
[38/51] Compiling AndroidLogging AndroidLogging.swift
[39/52] Compiling AndroidSystem Mocking.swift
[40/52] Compiling AndroidSystem RawBuffer.swift
[41/52] Compiling AndroidSystem Syscalls.swift
[42/52] Compiling AndroidSystem WindowsSyscallAdapters.swift
[43/52] Compiling AndroidSystem Backcompat.swift
/host/spi-builder-workspace/Sources/AndroidSystem/Internals/CInterop.swift:21:22: warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
19 | import WASILibc
20 | #elseif canImport(Android)
21 | @_implementationOnly import AndroidNDK
   |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
22 | import Android
23 | #else
/host/spi-builder-workspace/Sources/AndroidSystem/Internals/Exports.swift:26:22: warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
 24 | import WASILibc
 25 | #elseif canImport(Android)
 26 | @_implementationOnly import AndroidNDK
    |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
 27 | import Android
 28 | #else
[44/52] Compiling AndroidSystem CInterop.swift
/host/spi-builder-workspace/Sources/AndroidSystem/Internals/CInterop.swift:21:22: warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
19 | import WASILibc
20 | #elseif canImport(Android)
21 | @_implementationOnly import AndroidNDK
   |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
22 | import Android
23 | #else
/host/spi-builder-workspace/Sources/AndroidSystem/Internals/Exports.swift:26:22: warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
 24 | import WASILibc
 25 | #elseif canImport(Android)
 26 | @_implementationOnly import AndroidNDK
    |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
 27 | import Android
 28 | #else
[45/52] Compiling AndroidSystem Constants.swift
/host/spi-builder-workspace/Sources/AndroidSystem/Internals/CInterop.swift:21:22: warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
19 | import WASILibc
20 | #elseif canImport(Android)
21 | @_implementationOnly import AndroidNDK
   |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
22 | import Android
23 | #else
/host/spi-builder-workspace/Sources/AndroidSystem/Internals/Exports.swift:26:22: warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
 24 | import WASILibc
 25 | #elseif canImport(Android)
 26 | @_implementationOnly import AndroidNDK
    |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
 27 | import Android
 28 | #else
[46/52] Compiling AndroidSystem Exports.swift
/host/spi-builder-workspace/Sources/AndroidSystem/Internals/CInterop.swift:21:22: warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
19 | import WASILibc
20 | #elseif canImport(Android)
21 | @_implementationOnly import AndroidNDK
   |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
22 | import Android
23 | #else
/host/spi-builder-workspace/Sources/AndroidSystem/Internals/Exports.swift:26:22: warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
 24 | import WASILibc
 25 | #elseif canImport(Android)
 26 | @_implementationOnly import AndroidNDK
    |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'AndroidSystem' may lead to instability during execution
 27 | import Android
 28 | #else
[49/57] Emitting module AndroidChoreographer
[50/57] Compiling AndroidChoreographer AndroidChoreographer.swift
[52/58] Emitting module SwiftJNI
[53/58] Compiling SwiftJNI SwiftJNI.swift
[54/59] Wrapping AST for SwiftJNI for debugging
[55/59] Write Objects.LinkFileList
[56/59] Linking libSwiftJNI.so
[58/61] Emitting module AndroidLooper
[59/61] Compiling AndroidLooper AndroidLooper.swift
/host/spi-builder-workspace/Sources/AndroidLooper/AndroidLooper.swift:279:17: warning: switch covers known cases, but 'CFRunLoopRunResult' may have additional unknown values, possibly added in future versions; this is an error in the Swift 6 language mode
277 |         let looperCallback: LooperCallback = { ft, event, data in
278 |             while true {
279 |                 switch CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.0, true) {
    |                 |- warning: switch covers known cases, but 'CFRunLoopRunResult' may have additional unknown values, possibly added in future versions; this is an error in the Swift 6 language mode
    |                 `- note: handle unknown values using "@unknown default"
280 |                 case CFRunLoopRunResult.handledSource:
281 |                     continue // continue run loop
/host/spi-builder-workspace/Sources/AndroidLooper/AndroidLooper.swift:292:13: warning: initialization of immutable value 'mainLoop' was never used; consider replacing with assignment to '_' or removing it [#no-usage]
290 |         }
291 |
292 |         let mainLoop = CFRunLoopGetMain()
    |             `- warning: initialization of immutable value 'mainLoop' was never used; consider replacing with assignment to '_' or removing it [#no-usage]
293 |
294 |         // https://github.com/readdle/swift-android-ndk/blob/main/Sources/CAndroidNDK/MainRunLoop.c#L71
[61/62] Compiling AndroidAssetManager AndroidAssetManager.swift
/host/spi-builder-workspace/Sources/AndroidAssetManager/AndroidAssetManager.swift:122:45: warning: 'withUnsafeMutableBytes' is deprecated: use `withUnsafeMutableBytes<R>(_: (UnsafeMutableRawBufferPointer) throws -> R) rethrows -> R` instead [#DeprecatedDeclaration]
120 |             var data = Data(count: len)
121 |
122 |             let bytesRead: Int32 = try data.withUnsafeMutableBytes { buffer in
    |                                             `- warning: 'withUnsafeMutableBytes' is deprecated: use `withUnsafeMutableBytes<R>(_: (UnsafeMutableRawBufferPointer) throws -> R) rethrows -> R` instead [#DeprecatedDeclaration]
123 |                 #if !os(Android)
124 |                 fatalError("only implemented for Android")
/host/spi-builder-workspace/Sources/AndroidAssetManager/AndroidAssetManager.swift:122:36: warning: no calls to throwing functions occur within 'try' expression
120 |             var data = Data(count: len)
121 |
122 |             let bytesRead: Int32 = try data.withUnsafeMutableBytes { buffer in
    |                                    `- warning: no calls to throwing functions occur within 'try' expression
123 |                 #if !os(Android)
124 |                 fatalError("only implemented for Android")
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[62/62] Emitting module AndroidAssetManager
[64/65] Emitting module AndroidContext
/host/spi-builder-workspace/Sources/AndroidContext/AndroidContext.swift:23:14: warning: class 'AndroidContext' must restate inherited '@unchecked Sendable' conformance
21 | @available(tvOS, unavailable)
22 | @available(watchOS, unavailable)
23 | public class AndroidContext : JObject {
   |              `- warning: class 'AndroidContext' must restate inherited '@unchecked Sendable' conformance
24 |     /// The JNI signature for the method to invoke to obtain the global Context.
25 |     /// This can be manually changed before initialization to a different signature.
[65/65] Compiling AndroidContext AndroidContext.swift
/host/spi-builder-workspace/Sources/AndroidContext/AndroidContext.swift:23:14: warning: class 'AndroidContext' must restate inherited '@unchecked Sendable' conformance
21 | @available(tvOS, unavailable)
22 | @available(watchOS, unavailable)
23 | public class AndroidContext : JObject {
   |              `- warning: class 'AndroidContext' must restate inherited '@unchecked Sendable' conformance
24 |     /// The JNI signature for the method to invoke to obtain the global Context.
25 |     /// This can be manually changed before initialization to a different signature.
[67/68] Compiling AndroidNative AndroidNative.swift
[68/68] Emitting module AndroidNative
Build complete! (22.76s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-jni",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://source.skip.tools/swift-jni.git"
    }
  ],
  "manifest_display_name" : "swift-android-native",
  "name" : "swift-android-native",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "AndroidNative",
      "targets" : [
        "AndroidNative"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "AndroidContext",
      "targets" : [
        "AndroidContext"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "AndroidAssetManager",
      "targets" : [
        "AndroidAssetManager"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "AndroidLogging",
      "targets" : [
        "AndroidLogging"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "AndroidLooper",
      "targets" : [
        "AndroidLooper"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "AndroidChoreographer",
      "targets" : [
        "AndroidLooper"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ConcurrencyRuntimeC",
      "module_type" : "ClangTarget",
      "name" : "ConcurrencyRuntimeC",
      "path" : "Sources/ConcurrencyRuntimeC",
      "product_memberships" : [
        "AndroidNative",
        "AndroidLooper",
        "AndroidChoreographer"
      ],
      "sources" : [
        "src.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AndroidSystemTests",
      "module_type" : "SwiftTarget",
      "name" : "AndroidSystemTests",
      "path" : "Tests/AndroidSystemTests",
      "sources" : [
        "AndroidSystemTests.swift"
      ],
      "target_dependencies" : [
        "AndroidSystem"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AndroidSystem",
      "module_type" : "SwiftTarget",
      "name" : "AndroidSystem",
      "path" : "Sources/AndroidSystem",
      "product_memberships" : [
        "AndroidNative",
        "AndroidLooper",
        "AndroidChoreographer"
      ],
      "sources" : [
        "Errno.swift",
        "ErrnoWindows.swift",
        "FileDescriptor.swift",
        "FileHelpers.swift",
        "FileOperations.swift",
        "FilePath/FilePath.swift",
        "FilePath/FilePathComponentView.swift",
        "FilePath/FilePathComponents.swift",
        "FilePath/FilePathParsing.swift",
        "FilePath/FilePathString.swift",
        "FilePath/FilePathSyntax.swift",
        "FilePath/FilePathTemp.swift",
        "FilePath/FilePathTempPosix.swift",
        "FilePath/FilePathTempWindows.swift",
        "FilePath/FilePathWindows.swift",
        "FilePermissions.swift",
        "Internals/Backcompat.swift",
        "Internals/CInterop.swift",
        "Internals/Constants.swift",
        "Internals/Exports.swift",
        "Internals/Mocking.swift",
        "Internals/RawBuffer.swift",
        "Internals/Syscalls.swift",
        "Internals/WindowsSyscallAdapters.swift",
        "LockedState.swift",
        "MachPort.swift",
        "PlatformString.swift",
        "SystemString.swift",
        "Util+StringArray.swift",
        "Util.swift",
        "UtilConsumers.swift"
      ],
      "target_dependencies" : [
        "AndroidNDK"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AndroidNativeTests",
      "module_type" : "SwiftTarget",
      "name" : "AndroidNativeTests",
      "path" : "Tests/AndroidNativeTests",
      "resources" : [
        {
          "path" : "/host/spi-builder-workspace/Tests/AndroidNativeTests/Resources/sample_resource.txt",
          "rule" : {
            "embed_in_code" : {
            }
          }
        }
      ],
      "sources" : [
        "AndroidNativeTests.swift"
      ],
      "target_dependencies" : [
        "AndroidNative"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AndroidNative",
      "module_type" : "SwiftTarget",
      "name" : "AndroidNative",
      "path" : "Sources/AndroidNative",
      "product_memberships" : [
        "AndroidNative"
      ],
      "sources" : [
        "AndroidNative.swift"
      ],
      "target_dependencies" : [
        "AndroidContext",
        "AndroidLogging",
        "AndroidLooper",
        "AndroidChoreographer"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AndroidNDK",
      "module_type" : "ClangTarget",
      "name" : "AndroidNDK",
      "path" : "Sources/AndroidNDK",
      "product_memberships" : [
        "AndroidNative",
        "AndroidContext",
        "AndroidAssetManager",
        "AndroidLogging",
        "AndroidLooper",
        "AndroidChoreographer"
      ],
      "sources" : [
        "src.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AndroidLooperTests",
      "module_type" : "SwiftTarget",
      "name" : "AndroidLooperTests",
      "path" : "Tests/AndroidLooperTests",
      "sources" : [
        "AndroidLooperTests.swift"
      ],
      "target_dependencies" : [
        "AndroidLooper"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AndroidLooper",
      "module_type" : "SwiftTarget",
      "name" : "AndroidLooper",
      "path" : "Sources/AndroidLooper",
      "product_memberships" : [
        "AndroidNative",
        "AndroidLooper",
        "AndroidChoreographer"
      ],
      "sources" : [
        "AndroidLooper.swift"
      ],
      "target_dependencies" : [
        "AndroidSystem",
        "AndroidLogging",
        "ConcurrencyRuntimeC"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AndroidLoggingTests",
      "module_type" : "SwiftTarget",
      "name" : "AndroidLoggingTests",
      "path" : "Tests/AndroidLoggingTests",
      "sources" : [
        "AndroidLoggingTests.swift"
      ],
      "target_dependencies" : [
        "AndroidLogging"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AndroidLogging",
      "module_type" : "SwiftTarget",
      "name" : "AndroidLogging",
      "path" : "Sources/AndroidLogging",
      "product_memberships" : [
        "AndroidNative",
        "AndroidLogging",
        "AndroidLooper",
        "AndroidChoreographer"
      ],
      "sources" : [
        "AndroidLogging.swift"
      ],
      "target_dependencies" : [
        "AndroidNDK"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AndroidContextTests",
      "module_type" : "SwiftTarget",
      "name" : "AndroidContextTests",
      "path" : "Tests/AndroidContextTests",
      "sources" : [
        "AndroidContextTests.swift"
      ],
      "target_dependencies" : [
        "AndroidContext"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AndroidContext",
      "module_type" : "SwiftTarget",
      "name" : "AndroidContext",
      "path" : "Sources/AndroidContext",
      "product_memberships" : [
        "AndroidNative",
        "AndroidContext"
      ],
      "sources" : [
        "AndroidContext.swift"
      ],
      "target_dependencies" : [
        "AndroidAssetManager",
        "AndroidNDK"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AndroidChoreographerTests",
      "module_type" : "SwiftTarget",
      "name" : "AndroidChoreographerTests",
      "path" : "Tests/AndroidChoreographerTests",
      "sources" : [
        "AndroidChoreographerTests.swift"
      ],
      "target_dependencies" : [
        "AndroidChoreographer"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AndroidChoreographer",
      "module_type" : "SwiftTarget",
      "name" : "AndroidChoreographer",
      "path" : "Sources/AndroidChoreographer",
      "product_memberships" : [
        "AndroidNative"
      ],
      "sources" : [
        "AndroidChoreographer.swift"
      ],
      "target_dependencies" : [
        "AndroidSystem",
        "AndroidLogging"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AndroidAssetManagerTests",
      "module_type" : "SwiftTarget",
      "name" : "AndroidAssetManagerTests",
      "path" : "Tests/AndroidAssetManagerTests",
      "sources" : [
        "AndroidAssetManagerTests.swift"
      ],
      "target_dependencies" : [
        "AndroidAssetManager"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AndroidAssetManager",
      "module_type" : "SwiftTarget",
      "name" : "AndroidAssetManager",
      "path" : "Sources/AndroidAssetManager",
      "product_dependencies" : [
        "SwiftJNI"
      ],
      "product_memberships" : [
        "AndroidNative",
        "AndroidContext",
        "AndroidAssetManager"
      ],
      "sources" : [
        "AndroidAssetManager.swift"
      ],
      "target_dependencies" : [
        "AndroidNDK"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
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
Done.