2017-04-07 61 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

是的,当然,我可以构建应用程序,它会运行一段时间,然后冻结。 –