Open kmitj opened 3 years ago
I made a small tunings to Package to be able to build it successfully on macOS first.
// swift-tools-version:5.4.0
import PackageDescription
let package = Package(
name: "App",
platforms: [
.macOS(.v10_15), .iOS(.v13)
],
products: [
.library(name: "App", type: .dynamic, targets: ["App"]),
],
dependencies: [
.package(url: "https://github.com/apple/swift-nio.git", from: "2.0.0"),
.package(url: "https://github.com/vapor/async-kit.git", from: "1.0.0"),
.package(url: "https://github.com/apple/swift-nio-ssl", from: "2.14.0"),
.package(url: "https://github.com/vapor/fluent-sqlite-driver.git", from: "4.0.0"),
.package(url: "https://github.com/apple/swift-nio-extras.git", from: "1.0.0"),
.package(url: "https://github.com/swift-server/async-http-client.git", from: "1.2.2"),
.package(url: "https://github.com/swift-server/swift-backtrace.git", from: "1.2.1"),
.package(url: "https://github.com/vapor/multipart-kit.git", from: "4.0.0"),
.package(url: "https://github.com/vapor/console-kit.git", from: "4.0.0"),
.package(url: "https://github.com/apple/swift-crypto.git", from: "1.0.0"),
.package(url: "https://github.com/vapor/websocket-kit.git", from: "2.0.0"),
],
targets: [
.target( name: "App", dependencies: [
.product(name: "NIO", package: "swift-nio"),
.product(name: "AsyncHTTPClient", package: "async-http-client"),
.product(name: "AsyncKit", package: "async-kit"),
.product(name: "Backtrace", package: "swift-backtrace"),
.product(name: "NIOSSL", package: "swift-nio-ssl"),
.product(name: "NIOHTTP1", package: "swift-nio"),
.product(name: "NIOWebSocket", package: "swift-nio"),
.product(name: "NIOConcurrencyHelpers", package: "swift-nio"),
.product(name: "NIOFoundationCompat", package: "swift-nio"),
.product(name: "NIOExtras", package: "swift-nio-extras"),
.product(name: "FluentSQLiteDriver", package: "fluent-sqlite-driver"),
.product(name: "MultipartKit", package: "multipart-kit"),
.product(name: "ConsoleKit", package: "console-kit"),
.product(name: "Crypto", package: "swift-crypto"),
.product(name: "WebSocketKit", package: "websocket-kit"),
]
)
]
)
// File: Sources/App/Dummy.swift
function noop() {
}
Then I'm launched android build as shown below. Note, that you have to use Android API 24 to have getifaddrs
/freeifaddrs
. See file sysroot/usr/include/ifaddrs.h
inside NDK.
/.../swift-android-toolchain/usr/bin/swift-build-aarch64-linux-android -v -Xcc -D__ANDROID_API__=24
After that I am corrected few files (e.g. checkouts/console-kit/Sources/ConsoleKit/Activity/ActivityIndicator.swift
) for proper Glibc usage:
// Before
import Dispatch
#if os(Linux)
import Glibc
#else
import Darwin.C
#endif
// After
import Dispatch
#if os(Linux) || os(Android)
import Glibc
#else
import Darwin.C
#endif
// Or even better
import Dispatch
#if canImport(Glibc)
import Glibc
#else
import Darwin.C
#endif
Particularly in file checkouts/swift-log/Sources/Logging/Logging.swift:806
the error you have error: cannot find type 'FILE' in scope
, internal let file: UnsafeMutablePointer<FILE>
was fixed as shown below:
// Before
internal struct StdioOutputStream: TextOutputStream {
#if canImport(WASILibc)
internal let file: OpaquePointer
#else
internal let file: UnsafeMutablePointer<FILE>
#endif
internal let flushMode: FlushMode
// After
internal struct StdioOutputStream: TextOutputStream {
#if canImport(WASILibc) || canImport(Glibc)
internal let file: OpaquePointer
#else
internal let file: UnsafeMutablePointer<FILE>
#endif
internal let flushMode: FlushMode
Now build fails due missed sqlite header checkouts/sqlite-nio/Sources/CSQLite/csqlite.h:4:10: error: 'sqlite3.h' file not found
.
As far as I understand the sqlite for Android needs to be build separately and included into APK manually by developer. I can't find sqlite3.h
header inside NDK.
For issues about error: cannot find type 'FILE' in scope, UnsafeMutablePointer<FILE>
I guess that issue that struct FILE
is typedef'ed in NDK via typedef struct __sFILE FILE;
in sysroot/usr/include/stdio.h
. And as I understand correctly Swift don't see c type definitions.
See also: sysroot/usr/include/bits/struct_file.h
inside NDK bundle.
I was doing some investigation about problem with FILE
struct in @wip
branch. Here is a diff https://github.com/vgorloff/swift-everywhere-toolchain/compare/develop...@wip
while building https://github.com/apple/swift-nio-ssl same error
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:84:119: error: cannot find type 'FILE' in scope
internal static func fopen(file: UnsafePointer<CChar>, mode: UnsafePointer<CChar>) throws -> UnsafeMutablePointer<FILE> {
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:91:60: error: cannot find type 'FILE' in scope
internal static func fclose(file: UnsafeMutablePointer<FILE>) throws -> CInt {
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:84:119: error: cannot find type 'FILE' in scope
internal static func fopen(file: UnsafePointer<CChar>, mode: UnsafePointer<CChar>) throws -> UnsafeMutablePointer<FILE> {
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:91:60: error: cannot find type 'FILE' in scope
internal static func fclose(file: UnsafeMutablePointer<FILE>) throws -> CInt {
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:25:109: error: cannot find type 'FILE' in scope
private let sysFopen: @convention(c) (UnsafePointer<CChar>?, UnsafePointer<CChar>?) -> UnsafeMutablePointer<FILE>? = fopen
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:28:61: error: cannot find type 'FILE' in scope
private let sysFclose: @convention(c) (UnsafeMutablePointer<FILE>?) -> CInt = fclose
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:84:119: error: cannot find type 'FILE' in scope
internal static func fopen(file: UnsafePointer<CChar>, mode: UnsafePointer<CChar>) throws -> UnsafeMutablePointer<FILE> {
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:91:60: error: cannot find type 'FILE' in scope
internal static func fclose(file: UnsafeMutablePointer<FILE>) throws -> CInt {
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:25:109: error: cannot find type 'FILE' in scope
private let sysFopen: @convention(c) (UnsafePointer<CChar>?, UnsafePointer<CChar>?) -> UnsafeMutablePointer<FILE>? = fopen
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:28:61: error: cannot find type 'FILE' in scope
private let sysFclose: @convention(c) (UnsafeMutablePointer<FILE>?) -> CInt = fclose
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:84:119: error: cannot find type 'FILE' in scope
internal static func fopen(file: UnsafePointer<CChar>, mode: UnsafePointer<CChar>) throws -> UnsafeMutablePointer<FILE> {
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:91:60: error: cannot find type 'FILE' in scope
internal static func fclose(file: UnsafeMutablePointer<FILE>) throws -> CInt {
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:25:109: error: cannot find type 'FILE' in scope
private let sysFopen: @convention(c) (UnsafePointer<CChar>?, UnsafePointer<CChar>?) -> UnsafeMutablePointer<FILE>? = fopen
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:28:61: error: cannot find type 'FILE' in scope
private let sysFclose: @convention(c) (UnsafeMutablePointer<FILE>?) -> CInt = fclose
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:84:119: error: cannot find type 'FILE' in scope
internal static func fopen(file: UnsafePointer<CChar>, mode: UnsafePointer<CChar>) throws -> UnsafeMutablePointer<FILE> {
^~~~
/Users/kmi/Desktop/libs/Sources/NIOSSL/PosixPort.swift:91:60: error: cannot find type 'FILE' in scope
internal static func fclose(file: UnsafeMutablePointer<FILE>) throws -> CInt {
^~~~
clang: warning: argument unused during compilation: '-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks' [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks' [-Wunused-command-line-argument]
[72/82] Linking NIOWebSocketClient
I think this is a bug in the Swift ClangImporter that it can't handle opaque structs, been meaning to look into it and file a bug. I hit that nio-ssl issue too which is why I disabled building it on my daily Android CI. A workaround for Android is to pass in -Xcc -D__ANDROID_API__=23
, as FILE
was defined back then, but as Vlad says, getifaddrs
wasn't available back then, so other stuff won't work for some projects with that workaround.
Never mind, I guess Swift chooses not to handle this, as Vlad says above, so you will have to change it to OpaquePointer
as he shows.
Interesting. I didn't know about that Clang/Swift behaviour with UnsafeMutablePointer<T>
/ OpaquePointer
. This is seems a reason why the OpaquePointer
was used in a StdioOutputStream
struct in the swift-log package.
I've submitted patches for this in apple/swift-nio-ssl#306 and apple/swift-tools-support-core#243. You may want to do the same for swift-log
, which I don't use.
kmi@Murodjons-MacBook-Pro ncp-core % /Users/kmi/Desktop/android/swift-android-toolchain/usr/bin/swift-build-arm-linux-androideabi -Xcc -D__ANDROID_API__=24
'ncp-libs' /Users/kmi/ncp-libs: warning: found 3 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/kmi/ncp-libs/Sources/CNIOHTTPParser/LICENSE-MIT
/Users/kmi/ncp-libs/Sources/CNIOHTTPParser/update_and_patch_http_parser.sh
/Users/kmi/ncp-libs/Sources/CNIOHTTPParser/AUTHORS
'ncp-libs' /Users/kmi/ncp-libs: warning: in tools version 5.4.0 and later, use 'executableTarget()' to declare executable targets
'ncp-libs' /Users/kmi/ncp-libs: warning: found 2 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/kmi/ncp-libs/Sources/CNIOBoringSSL/include/boringssl_prefix_symbols_nasm.inc
/Users/kmi/ncp-libs/Sources/CNIOBoringSSL/hash.txt
'ncp-libs' /Users/kmi/ncp-libs: warning: found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/kmi/ncp-libs/Sources/NIOTLSServer/README.md
'ncp-libs' /Users/kmi/ncp-libs: warning: in tools version 5.4.0 and later, use 'executableTarget()' to declare executable targets
'ncp-libs' /Users/kmi/ncp-libs: warning: in tools version 5.4.0 and later, use 'executableTarget()' to declare executable targets
'ncp-libs' /Users/kmi/ncp-libs: warning: found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/kmi/ncp-libs/Sources/CNIOSHA1/update_and_patch_sha1.sh
'ncp-libs' /Users/kmi/ncp-libs: warning: in tools version 5.4.0 and later, use 'executableTarget()' to declare executable targets
'ncp-libs' /Users/kmi/ncp-libs: warning: in tools version 5.4.0 and later, use 'executableTarget()' to declare executable targets
'ncp-libs' /Users/kmi/ncp-libs: warning: found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/kmi/ncp-libs/Sources/NIOSSLHTTP1Client/README.md
'ncp-libs' /Users/kmi/ncp-libs: warning: in tools version 5.4.0 and later, use 'executableTarget()' to declare executable targets
'ncp-libs' /Users/kmi/ncp-libs: warning: in tools version 5.4.0 and later, use 'executableTarget()' to declare executable targets
'ncp-libs' /Users/kmi/ncp-libs: warning: in tools version 5.4.0 and later, use 'executableTarget()' to declare executable targets
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Application/Multipart/AbortError+MultipartError.swift:3:11: warning: 'MultipartError' is deprecated
extension MultipartError: AbortError {
^
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:71:16: warning: value 'tracingEnabled' was defined but never used; consider replacing with boolean test
if let tracingEnabled = notification.params.debug {
~~~~^~~~~~~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:76:16: warning: value 'newToken' was defined but never used; consider replacing with boolean test
if let newToken = notification.params.newToken {
~~~~^~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Network/Network.swift:225:27: warning: result of call to 'startListening(onQueue:onUpdatePerforming:)' is unused
self.reachability.startListening(onQueue: .main, onUpdatePerforming: self.network(onUpdatePerforming:))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:86:33: warning: variable 'auth' was written to, but never read
var auth: AuthInfo? = nil
^
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:93:33: warning: initialization of immutable value 's' was never used; consider replacing with assignment to '_' or removing it
let s = ProfileObject(id: pro.accountID, firstName: pro.firstName, lastName: pro.lastName, username: pro.username, avatar: pro.avatar, status: pro.status, presence: presence, ttl: pro.ttl?.timeIntervalSince1970 ?? 0)
~~~~^
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:94:33: warning: variable 'entities' was never mutated; consider changing to 'let' constant
var entities = [EntityObject]()
~~~ ^
let
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:96:37: warning: immutable value 'phone' was never used; consider replacing with '_' or removing it
for phone in phones {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/ProfileController.swift:102:37: warning: immutable value 'email' was never used; consider replacing with '_' or removing it
for email in emails {
^~~~~
_
/Users/kmi/ncp-core/Sources/App/Core/Main/Repositories/ContactRepository.swift:47:24: warning: value 'cnCOntact' was defined but never used; consider replacing with boolean test
if let cnCOntact = phoneContacts.first(where: { $0.contactId == contactItem.foreignID }) {
~~~~^~~~~~~~~~~~
!= nil
clang: warning: argument unused during compilation: '-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks' [-Wunused-command-line-argument]
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/cpu-arm-linux.c.o: multiple definition of 'CRYPTO_has_broken_NEON'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/cpu-arm-linux.c.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/cpu-arm-linux.c.o: multiple definition of 'CRYPTO_needs_hwcap2_workaround'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/cpu-arm-linux.c.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/curve25519/asm/x25519-asm-arm.S.o: multiple definition of 'x25519_NEON'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/curve25519/asm/x25519-asm-arm.S.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/fipsmodule/bsaes-armv7.linux.arm.S.o: multiple definition of 'bsaes_cbc_encrypt'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/fipsmodule/bsaes-armv7.linux.arm.S.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/fipsmodule/bsaes-armv7.linux.arm.S.o: multiple definition of 'bsaes_ctr32_encrypt_blocks'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/fipsmodule/bsaes-armv7.linux.arm.S.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/fipsmodule/sha256-armv4.linux.arm.S.o: multiple definition of 'sha256_block_data_order_neon'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/fipsmodule/sha256-armv4.linux.arm.S.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: e.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/fipsmodule/sha512-armv4.linux.arm.S.o: multiple definition of 'sha512_block_data_order_neon'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/fipsmodule/sha512-armv4.linux.arm.S.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/fipsmodule/vpaes-armv7.linux.arm.S.o: multiple definition of 'vpaes_decrypt_key_to_bsaes'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/fipsmodule/vpaes-armv7.linux.arm.S.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/fipsmodule/vpaes-armv7.linux.arm.S.o: multiple definition of 'vpaes_encrypt_key_to_bsaes'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/fipsmodule/vpaes-armv7.linux.arm.S.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/poly1305/poly1305_arm.c.o: multiple definition of 'CRYPTO_poly1305_finish_neon'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/poly1305/poly1305_arm.c.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/poly1305/poly1305_arm.c.o: multiple definition of 'CRYPTO_poly1305_init_neon'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/poly1305/poly1305_arm.c.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/poly1305/poly1305_arm.c.o: multiple definition of 'CRYPTO_poly1305_update_neon'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/poly1305/poly1305_arm.c.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/poly1305/poly1305_arm_asm.S.o: multiple definition of 'openssl_poly1305_neon2_addmulmod'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /ore/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/poly1305/poly1305_arm_asm.S.o: previous definition here
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build/crypto/poly1305/poly1305_arm_asm.S.o: multiple definition of 'openssl_poly1305_neon2_blocks'
/usr/local/ndk/21.4.7075529/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build/crypto/poly1305/poly1305_arm_asm.S.o: previous definition here
clang: error: linker command failed with exit code 1 (use -v to see invocation)
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)
[1664/1665] Linking libNCPSocket.so
hello @vgorloff , @buttaface . error while building for swift-build-arm-linux-androideabi
It says duplicate symbols in the same file, for C and ARMv7 assembly: maybe you're missing some C define that normally picks one or the other? I regularly build those files for ARMv7 on my daily Android CI without a problem and occasionally run that Swift package's ARMv7 tests without a problem. If you run in verbose mode and paste the compilation command for one of those broken C/asm files, I can compare with my working clang command and let you know.
Hmm, there is only a single definition in those files, so C defines are not the issue. You may need to examine those object files and see what's going on: what does readelf -sW poly1305_arm.c.o
show, repeated symbols?
try build this https://github.com/apple/swift-crypto.git package for swift-build-arm-linux-androideabi. this problem in this package
I do, that package is built separately for armv7 on my Android CI that runs on Ubuntu every day without a problem. If you can reproduce when building that package alone with the Swift package manager, try adding the verbose flag -v
to see what clang compilation commands it's running to build those defective object files and paste one here.
I will compare it to my working build and let you know of any differences.
Oh wait, I see it now, the paths are different. You are linking the same file from /Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CNIOBoringSSL.build
and Users/kmi/ncp-core/.build/armv7-unknown-linux-android/debug/CCryptoBoringSSL.build
, which would be an artifact of building swift-crypto twice in different packages. But that shouldn't reproduce when building swift-crypto alone?
You may need to look into keeping those build artifacts separate or excising one of those packages. Also, there's nothing specific to Android here: make sure this project builds on Linux, which will be easier to debug for these SPM packaging issues, then you can try Android.