Xcode 8.3的官方发布导致我的应用程序在一段明显随机的时间后完全冻结。它还会导致网络连接永远不会完成(这可能是最终冻结的原因?等待某些资源被释放的死锁可能?)。
使用Xcode 8.2.1进行编译时,完全相同的代码工作正常。
任何人都有同样的问题吗?
答案 0 :(得分:0)
Xcode 8.3.1现已推出。
https://developer.apple.com/news/?id=04062017a
由于下面列出的已解决的应用档案问题,我们很快就会出现问题 弃用Xcode 8.3,此时使用Xcode 8.3构建app档案 将不再被App Store接受。
尝试更新xcode,因为之前版本存在许多问题。
答案 1 :(得分:0)
所以看起来这个问题与使用这种结构有关:
@discardableResult func synchronized<T>(_ lock: Any, closure: () throws -> T) rethrows -> T {
objc_sync_enter(lock)
defer {
objc_sync_exit(lock)
}
return try closure()
}
用Matt Gallagher的PThreadMutex(https://github.com/mattgallagher/CwlUtils)取而代之,解决了这个问题。
我希望Apple不会故意将人们赶出Obj-C运行时,因为如果是这样的话,这绝对是一种偷偷摸摸的方式,而且考虑到他们的使用范围很广泛上面的结构可能是。如果他们不希望人们使用它们,那么他们应该在Swift中提供线程同步服务,而不是完全忽略需求。非常令人沮丧。
答案 2 :(得分:0)
我昨天也遇到了麻烦。
4月25日发布在Apple Developer Forms上的App Store将不再接受使用Xcode 8.3构建的应用档案。
标题:请从Xcode 8.3更新到Xcode 8.3.1或更高版本 https://forums.developer.apple.com/message/225571#225571