2017-04-07 97 views
0

Xcode 8.3的正式版本導致我的應用程序在顯然是隨機的時間後完全凍結。它也會導致網絡連接永遠不會結束(這可能是最終凍結的原因?等待某些資源被釋放的死鎖可能是?)。Xcode 8.3打破我的應用程序

完全相同的代碼在使用Xcode 8.2.1進行編譯時工作正常。

任何人都有同樣的問題?

+0

我經歷過類似的事情。與建築無關,但與歸檔無關。發行版本中的一些功能(例如,使用NMSSH通過SSH連接)一直失敗。使用Xcode 8.2.1存檔後,它工作正常。 – Jonge

回答

0

所以它看起來像問題與使用這種結構的:

@discardableResult func synchronized<T>(_ lock: Any, closure:() throws -> T) rethrows -> T { 
    objc_sync_enter(lock) 
    defer { 
     objc_sync_exit(lock) 
    } 
    return try closure() 
} 

與馬特加拉格爾的PThreadMutex(https://github.com/mattgallagher/CwlUtils)更換此修復該問題。我希望這不是蘋果公司推動人們脫離Obj-C運行時的故意行爲,因爲如果是這樣,它絕對是一種偷偷摸摸的方式來做到這一點,並且考慮到它的使用範圍有多廣泛上面的構造可能是。如果他們不想讓人們使用這些,那麼他們應該在Swift中提供線程同步服務,而不是完全忽略這個需求。非常令人沮喪。

0

Xcode 8.3.1現已推出。

https://developer.apple.com/news/?id=04062017a

由於下面列出的解決應用程序檔案的問題,我們很快就會 自嘲的Xcode 8.3,此時的應用程序和Xcode 8.3建立檔案 將不再通過App Store的被接受。

嘗試更新xcode,因爲在以前的版本中有許多問題。

+1

謝謝,但我沒有喜悅。與Xcode 8.3.1相同的行爲 –

+0

您是否可以構建應用程序? –

+0

是的,當然,我可以構建應用程序,它會運行一段時間,然後凍結。 –