2014-09-10 53 views
28

我剛剛下載的Xcode 6 GM版本,它不會與此錯誤編譯:GM的Xcode 6的發佈編譯

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1 

關於如何解決此問題的任何想法?

+0

http://stackoverflow.com/questions/10373016/command-xcode-app-contents-developer-toolchains-xcodedefault-xctoolchain-usr-bi?rq=1 請參閱本之一。解決了我的問題:) – Zidong 2014-10-05 05:45:33

+0

所有常見的答案沒有解決我的問題,我發現這個問題是非常不同的-http://stackoverflow.com/questions/25889723/swift-failed-with-exit-code-1-while-編譯在xcode可能相關的bri/27271734#27271734 – Kampai 2014-12-03 12:28:30

回答

70

這個錯誤可能發生的原因很多,所以這是一個調試提示。您可能想嘗試在命令行中使用xcodebuild。它會給你詳細的信息,哪些文件是罪魁禍首。

要做到這一點,打開終端並轉到您的項目文件夾。一旦出現,鍵入

xcodebuild -project YourProject.xcodeproj -scheme YourScheme 

,或者如果你在一個工作區工作

xcodebuild -workspace YourProject.xcworkspace -scheme YourScheme 

您可能會看到很多信息彈出,但在輸出的最後,你應該看到導致崩潰的特定文件。回到XCode,進入這些文件並開始玩一些Swift語法來看看發生了什麼。在我的情況,它必須與setAttributeString函數,但我見過其他人有問題!和?

希望這會讓你朝着正確的方向前進。

+1

這幫助我找到真正的問題 – iTukker 2014-11-20 14:38:13

+0

非常感謝這麼多! – 2015-02-02 15:48:44

+0

只是一個附錄:在我的情況下,這個錯誤是彈出的,因爲我發送一個可選的字符串參數爲零。使用「」來代替錯誤。 – 2015-02-17 17:09:26

0

變化

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! 

TO

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

,做同樣的他人這樣

+3

你是什麼意思這樣的其他功能? – bhzag 2014-09-11 00:38:31

+0

許多具有可選值的基金會職能已更改。找出並更新它們 – Wstunes 2014-09-11 01:11:48

+3

我已經從函數定義和我的同事中刪除了所有可選的強制unwapper(所有感嘆號),我仍然收到此錯誤。任何其他想法? – 2014-09-26 08:36:37

-2

我認爲真正的問題是有太多的錯誤,所以編譯只能告訴你一個混淆的錯誤代碼。

但是你可以隨時打開每個源代碼文件,在那裏你可以找到詳細的錯誤信息和正確的建議。

祝你好運!

7

我的情況有點不同,它涉及枚舉和選項。爲簡單起見,我們定義

enum Animal { 
    case Dog 
    case Cat 
} 

func exampleAction(animal: Animal) {} 

exampleAction(.Cat) 

它會運行正常。然而,只要我使參數可選,錯誤開始出現。所以這段代碼將不起作用:

func exampleAction(animal: Animal?) {} 

exampleAction(.Cat) 

爲了使它工作,我不得不在方法調用中添加明確的枚舉名稱。所以下面的代碼再次合作:

exampleAction(Animal.Cat) 
+0

只需添加我的兩分錢,對我來說它是在一個正常的類(而不是枚舉),如:myButton.setTitleColor(.grayColor(),forState:.Normal)必須更改爲myButton.setTitleColor(UIColor.grayColor( ),forState:.Normal)與UIColor類。 – Dam 2015-05-27 08:28:31

10

我有我的「優化級別」更改爲無[-0none]

目標>構建設置>斯威夫特編譯器>優化級別。

+2

我會警告有兩個名爲「優化級別」的設置,請確保您在Swift Compiler部分下更改了該設置。我花了幾個小時解決了我的問題。 – NAlexN 2014-11-30 11:28:09

2

可以是相同的問題 Swift compile error in XCode 6 GM

我有同樣的問題,然後我使用git結帳舊版本,並找到其呈交引起的問題,並試圖找到問題的關鍵代碼。我的關鍵問題的代碼是這樣的

func afunc() { 
    class AClass() { 
    } 
    let ac = AClass() 
    //.... 
} 

其他代碼可以做出同樣的問題,出現在斯威夫特優化,快捷的編譯器不會告訴你確切的位置。這一定是Apple的錯誤。

+1

事實上,回去發現它的差異。在我的情況下,它是一個func的本地結構,導致它崩潰。編譯器是好的,但它仍然是一個測試版晚:-( – 2014-12-30 16:03:04

+0

@ThomasKilian我有同樣的問題,這是我的代碼: 'FUNC基地() - >虛空{ 結構ColorStruct {VAR WHITE =「」 初始化。 (){如果讓PP = delegate.PP WHITE = PP.UI.Colors。WHITE } } } var COLOR = ColorStruct() }' – 2015-03-10 14:07:08

+1

@AndrewAnthonyGerst Swift/XCode真的很糟糕。令人驚訝的是蘋果用戶的耐心。我坐在這裏每小時詛咒... – 2015-03-10 14:12:49

2

在我來說,我改變了3個地方:

目標>構建設置>斯威夫特編譯器>

  • 優化級別。
    • 調試:無-Onone]
    • 分佈:最快[-O]
    • 發佈:最快[-O]

當我改變只是調試,我有這樣的錯誤「源代碼包崩潰....」 這種參數組合,對我來說非常好!

0

轉到文件夾:用戶/用戶/庫/開發商/ Xcode中/ DerivedData

,並清除所有文件,

然後再用乾淨和分析,

它`工作給我。

3

我覺得它出現的原因很多,我遇到的是這種情況,希望它能幫助你。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)){ [weak self] in 

     // ... 
     dispatch_async(dispatch_get_main_queue()) { [weak self] in 

      // ... 
      return 

     } 
    } 

在上面的代碼,只要刪除「[弱自我]」所謂的捕獲列表會刪除該編譯器錯誤。這個對我有用。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)){ [weak self] in 

     // ... 
     dispatch_async(dispatch_get_main_queue()) { 

      // ... 
      return 

     } 
    } 

版本的Xcode 6.1.1是

0

我有顯示發佈版本錯誤下面的代碼。

if myValue > 5 { myValue = 5.0 } 
if myValue < 0 { myValue = 0 } 

之間加入if語句解決了該問題else

if myValue > 5 { myValue = 5.0 } 
else 
if myValue < 0 { myValue = 0 } 

演示:https://github.com/exchangegroup/build-error-demo

的Xcode 6.1版(6A1052d)。在調試中構建好。提交給Apple Bug Reporter的票。

0

只是把這個在那裏:我得到這個錯誤,每當我把[unowned self]在一個塊的塊中,像這樣:

lazy var someVar: SomeType = { 
    self.successBlock = {[unowned self] in 
     // ... 
    } 
}() 

解決的辦法是把[unowned self]只在最頂層級的塊。似乎對自身的無主引用是爲塊內的塊自動處理的。

當然,我只能先通過@麥克斯韋的答案找出麻煩的文件,查找此錯誤:https://stackoverflow.com/a/26848000/855680

0

在這裏添加我的情況。每當我用[unowned self]標記閉包時,我都會得到描述的錯誤,但是從來沒有在閉包本身中引用self。

例如:

 request.startWithSuccess({ [unowned self] (req: CBRequest!, object: AnyObject!) -> Void in 

      if let result = object["result"] as? [NSObject: AnyObject] 
      { 
       popup.type = result["email"] == nil ? AuthPopupType.Signup : AuthPopupType.Login 
      } 
      else 
      { 
       println("WARNING: Malformed response for kCBCheckUniquenesPath request.") 
      } 

      }, failure: { (req: CBRequest!, err: NSError!) -> Void in 

       println("ERROR: Failure response for kCBCheckUniquenesPath request.") 
     }) 
0

通過以下@ maxvel的建議,我知道 MAX()和MIN()函數未能在釋放模式編譯。我用下面的自己的函數替換它。

//Swift compiler seems to failing to compile default min and max functions in release 
//mode hence writing my own 
// 
func maximum<T: Comparable> (one: T, other: T) -> T { 
    if one > other { 
     return one 
    } 
    else { 
     return other 
    } 
} 

func minimum<T: Comparable> (one: T, other: T) -> T { 
    if one < other { 
     return one 
    } 
    else { 
     return other 
    } 
} 
1

在我的情況下,這個錯誤是由不正確的(UTF8).swift文件編碼引起的; 通過將文件內容複製粘貼到新文件來解決。

2

如果您正在使用某些應在早期iOS版本中使用的API,則可能會發生構建失敗。例如:如果您正在使用UI_USER_INTERFACE_IDIOM()而不是UIDevice.currentDevice()。userInterfaceIdiom來標識設備類型,那麼您將在沒有提示的情況下收到此構建錯誤。

+0

你在命令行中輸入xcodebuild,你可能會得到這樣的錯誤。 「 」全局變量初始值設定項類型與全局變量類型不匹配! %struct._class_t ** @「\ 01L_OBJC_CLASSLIST_REFERENCES _ $ _」 LLVM錯誤:發現中斷的模塊,編譯中止! – evanchin 2015-04-23 11:03:18

2

由於編譯器的優化,很多人都有這個問題(包括我在內)。我不認爲關閉優化是一個正確的解決方案 - 我希望優化我的代碼以儘可能快地運行。

重新運行xcodebuild手動沒有做任何好處,因爲它運行它沒有優化。

但是 - 錯誤畫面給我的swiftc命令是失敗:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -target arm64-apple-ios8.0 -incremental -module-name SpaceCats -O -sdk /Applic... 

-O還有就是優化標誌。

我重新運行,在項目目錄這整個命令(按照上述xcodebuild聯編的建議),並在所有的細節,我發現下面的錯誤:

{ 
"kind": "finished", 
"name": "compile", 
"pid": 10682, 
"output": "Bitcast requires both operands to be pointer or neither\n %228 = bitcast i8* %227 to %VSs20UnsafeMutablePointer, !dbg !1322\nBitcast requires both operands to be pointer or neither\n %324 = bitcast i8* %323 to %VSs20UnsafeMutablePointer, !dbg !1322\nBitcast requires both operands to be pointer or neither\n %411 = bitcast i8* %410 to %VSs20UnsafeMutablePointer, !dbg !1322\nBitcast requires both operands to be pointer or neither\n %498 = bitcast i8* %497 to %VSs20UnsafeMutablePointer, !dbg !1322\nLLVM ERROR: Broken function found, compilation aborted!\n", 
"exit-status": 1 
} 

如果你想要去到一個文件中,而不是在屏幕上添加「2>文件名」到最後。

然後我不得不在文件中找到pid(10682)以查看它正在編譯的內容。我手動運行該pid的命令,它給了我特定文件的錯誤。然後是修復代碼。

+0

很好的答案,我們有這個問題試圖做一個發佈版本。非發佈版本工作得很好(沒有優化),然後切換到發佈,swiftc失敗的錯誤。希望你能在XCode中看到所有的輸出結果...... – 2015-05-19 22:16:39

+0

我被這個swiftc編譯器錯誤困住了幾天,而這個我的朋友,這又讓我重新活了起來。如果有一天你需要住宿的地方,只要你願意,你可以在我的沙發上沉迷。謝謝。 – 2017-04-17 23:47:58

2

我看到很多原因。我的答案不是一個通用的解決方案,而只是增加了另一個提供該錯誤的案例。在我的情況下,它被設置按鈕的標題是這樣的:

button!.setTitleColor(.whiteColor(), forState: UIControlState.Normal) 

,而不是這樣的:

button!.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal) 
+0

這很容易忽略,謝謝你的擡頭! – Laffen 2015-10-05 06:33:11

0

麥克斯韋的解決方案爲您提供了最接近的提示。

0

相逢在Xcode 6.4編寫本雨燕2.0的語法時,這個錯誤:

print(string, appendNewline: true);

回的Xcode 7和錯誤消失。

0

在我的情況的Xcode給了錯誤,因爲下面一行:

if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Phone { 


}else { 

} 

並修復錯誤,我定義的:

enum UIUserInterfaceIdiom : Int { 
    case Unspecified 
    case Phone // iPhone and iPod touch style UI 
    case Pad // iPad style UI 
} 

然後,我用它喜歡:

if UIDevice.currentDevice().userInterfaceIdiom == .Phone { 

} 

祝你好運!

0

我也遇到這個錯誤。我按照@Maxwell的建議在終端中運行了命令,發現錯誤在我的GameViewController.swift文件中。小挖四周,發現它,因爲我刪除了此塊的錯誤走了沒有像一些自動生成的代碼或代碼的設置在Xcode一旦發生衝突的地方

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 

    if UIDevice.currentDevice().userInterfaceIdiom == .Phone { 
     return .AllButUpsideDown 
    } else { 
     return .All 
    } 
}