2015-10-04 80 views
8

剛更新到Xcode 7.0.1,在禁用SIP的El Capitan(GM)上運行。現在每次我嘗試編譯一個Swift項目時,我都會遇到這個錯誤;Swift不支持SDK'iPhoneSimulator8.4.sdk'

<unknown>:0: error: Swift does not support the SDK 'iPhoneSimulator8.4.sdk' 
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1 

我試過編譯實際設備以及並獲得:

<unknown>:0: error: Swift does not support the SDK 'iPhoneOS8.4.sdk' 
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1 

我的部署目標最初設定爲8.0,我試圖將其設置爲9.0,但沒什麼區別。我的基礎SDK被設置爲最新的iOS(iOS 9.0)。

這是跨所有我的Swift項目,即使當我創建一個新的項目,我仍然得到這個錯誤。

它似乎沒有影響Objective-C。我以爲有一個想法,可能這是SIP被禁用的問題嗎?它看起來不像權限錯誤,但我看不到其他原因,爲什麼這不起作用。

+0

在Xcode中選擇哪個iOS模擬器用於構建? – zaph

+0

我試了幾次,但都是運行iOS9。我主要嘗試在iPhone 6S上,因爲沒有辦法無法實現iOS9 –

+0

同樣的問題在這裏。我更新到7.0.1,但仍然在優勝美地。 – octref

回答

10

這發生在我身上的時候,我同時安裝了Xcode 76.4,並且在自動更新後我只剩下7.0.1。的東西弄亂

一個跡象是的xcodebuild -sdk -version輸出:

xcodebuild[29131:8243992] [MT] DVTSDK: Warning: SDK path collision for path '<DVTFilePath:0x7fac2ae3c800:'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk'>': SDK with name 'iphoneos9.0' being superceded by SDK with 'iphoneos9.0'. 
... 
iPhoneOS8.4.sdk - iOS 9.0 (iphoneos9.0) 
SDKVersion: 9.0 
Path: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk 
PlatformVersion: 9.0 
PlatformPath: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform 
ProductBuildVersion: 13A340 
ProductCopyright: 1983-2015 Apple Inc. 
ProductName: iPhone OS 
ProductVersion: 9.0 
... 

有可能是解決這個更簡單的方法,但重裝Xcode 7.0.1固定對我來說。

+0

升級到7.1之前我有相同的配置,重新安裝就修好了! –

+0

使用Xcode 7.1(重命名爲保留)和Xcode 6.4對我進行處理。 Appstore更新並且兩個版本都沒有了。有點可怕的是重命名的Xcode會自動刪除。現在我被迫重新安裝一切。 :/ – DevAndArtist

8

如果您不想重新安裝Xcode(假設您正在爲iOS 9構建),只需退出Xcode並轉到「/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs /「並從該目錄中刪除」iPhoneOS8.4.sdk「文件夾。如果您仍然需要,請務必製作外部副本,以便稍後再放回。然後重新啓動Xcode,清理並構建。爲我工作。

+1

謝謝。在我的情況下,舊的SDK文件夾只是符號鏈接,而不是真實的文件,但是擺脫它們仍然解決了問題。 –