Closed haifengkao closed 5 years ago
Hi @haifengkao. Thanks for your feedback and the good bug report!
That's indeed strange and a bug!
Do you have a Package.swift
file including a Hi
-target? This might override your settings.
Does swift package clean
and removing the target from your Package.swift
help?
Does a restart of the vscode-window help?
Do you have a Package.swift file including a Hi-target? Yes
let package = Package( name: "Hi", platforms: [ .iOS(.v10) ],
I think the problem comes from swift build
I saw SDE get the compiler parameters from .build/debug.yaml
If I use the following command
swift build -Xswiftc "-target" -Xswiftc "x86_64-apple-ios12.1-simulator" -Xswiftc "-sdk" -Xswiftc "/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.0.sdk"
to build the project. The debug.yaml
will look like
"C.RxTest-debug.module":
tool: swift-compiler
executable: "/Library/Developer/Toolchains/swift-5.1-DEVELOPMENT-SNAPSHOT-2019-08-27-a.xctoolchain/usr/bin/swiftc"
module-name: "RxTest"
module-output-path: "/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.swiftmodule"
inputs: ["/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Any+Equatable.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Bag.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/ColdObservable.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Deprecated.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/DeprecationWarner.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Event+Equatable.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/HotObservable.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Recorded+Event.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Recorded.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/RxTest.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Subscription.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/TestScheduler.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/TestSchedulerVirtualTimeConverter.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/TestableObservable.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/TestableObserver.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/XCTest+Rx.swift","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxSwift.swiftmodule"]
outputs: ["/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Any+Equatable.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Bag.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/ColdObservable.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Deprecated.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/DeprecationWarner.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Event+Equatable.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/HotObservable.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Recorded+Event.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Recorded.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/RxTest.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Subscription.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/TestScheduler.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/TestSchedulerVirtualTimeConverter.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/TestableObservable.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/TestableObserver.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/XCTest+Rx.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.swiftmodule"]
import-paths: ["/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug"]
temps-path: "/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build"
objects: ["/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Any+Equatable.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Bag.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/ColdObservable.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Deprecated.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/DeprecationWarner.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Event+Equatable.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/HotObservable.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Recorded+Event.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Recorded.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/RxTest.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/Subscription.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/TestScheduler.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/TestSchedulerVirtualTimeConverter.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/TestableObservable.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/TestableObserver.swift.o","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxTest.build/XCTest+Rx.swift.o"]
other-args: ["-target","x86_64-apple-macosx10.10","-swift-version","4","-enable-batch-mode","-index-store-path","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/index/store","-sdk","/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk","-F","/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks","-Onone","-g","-enable-testing","-j16","-DSWIFT_PACKAGE","-DDEBUG","-Xcc","-fmodule-map-file=/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/RxAtomic.build/module.modulemap","-I","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxAtomic/include","-module-cache-path","/Users/lion/tmp/SwiftTT/.build/x86_64-apple-macosx/debug/ModuleCache","-parseable-output","-Xfrontend","-color-diagnostics","-sdk","/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.0.sdk","-target","x86_64-apple-ios12.1-simulator"]
sources: ["/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Any+Equatable.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Bag.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/ColdObservable.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Deprecated.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/DeprecationWarner.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Event+Equatable.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/HotObservable.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Recorded+Event.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Recorded.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/RxTest.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/Subscription.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/TestScheduler.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/TestSchedulerVirtualTimeConverter.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/TestableObservable.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/TestableObserver.swift","/Users/lion/tmp/SwiftTT/.build/checkouts/RxSwift/Sources/RxTest/XCTest+Rx.swift"]
is-library: true
enable-whole-module-optimization: false
num-threads: "16"
If I remove the irrelevant flags in other-args
, I will get
other-args: ["-target","x86_64-apple-macosx10.10",
"-sdk","/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk",
"-sdk","/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.0.sdk",
"-target","x86_64-apple-ios12.1-simulator"]
Despite the SDK and target are specified in -Swiftc
parameters, swift build will still insert -target x86_64-apple-macosx10.10
.
The above process doesn't involve SDE at all, so I believe it is Apple's bug.
My swift is
swift --version
Apple Swift version 5.1-dev (LLVM b47beb8a70, Swift e90298ce10)
Target: x86_64-apple-darwin18.7.0
A possible workaround is to remove the incorrect target x86_64-apple-macosx10.10
and incorrect SDK /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk
from the debug.yaml
.
Hi @haifengkao. Sorry for the late response, but I didn't have enough time earlier. Summed up: the fix has been released as 2.8.1.
After a bit of debugging I found out that Hi.swift
within Sources/Hi
(from the configs) wasn't recognized as /Users/lion/tmp/SwiftTT/Sources/Hi/Hi.swift
(from debug.yaml
).
Both were treated as different files, because the latter was absolute. If both would've been relative, every would've been fine. 👍
the webpage says SDE supports UIKit. however, adding the settings from the webpage doesn't work at all.
The diagnostics still says
no such module UIKit
Then I add the parameters to swiftBuildingParamsThe diagnostics error is gone, but the UIKit autocomplete is still missing.
The trace
It's strange that the target is still
x86_64-apple-macosx10.10
. It seems that the setting insettings.json
doesn't apply to anywhere