2

在过去的两天里,我一直被困在这个问题上。我正在使用 Unity 5.2.3f1 并通过 WWW(URL) 类调用 URL。该 URL 使用 https,因此它是 SSL 安全的。我正在检索的文件是一个简单的 plist 文件,我已放置在我的 Dropbox 帐户中。调用是在协程内部进行的,结果预期在 yield 语句中。我还在 Info.plist 文件中添加了 App Allow Transport 属性,并允许 Arbitrary Loads true 在其中。

但是,每当我尝试检索数据时,我的应用程序在 UnityReportWWWFinishedLoadingData 之后在 FeedUnityWebStream 处崩溃。

崩溃日志如下:

为 Enlighten 设置 1 个工作线程。线程 -> id:16e677000 -> 优先级:1 2015-11-30 15:53:58.278 3dgymnastics[1029:280327] -[ NSMallocBlock bytes]:无法识别的选择器发送到实例 0x13898d260 2015-11-30 15:53:58.368 3dgymnastics [1029:280327] 未捕获的异常:NSInvalidArgumentException:-[ NSMallocBlock字节]:无法识别的选择器发送到实例 0x13898d260 ( 0 CoreFoundation 0x0000000185b7cf60 + 148 1 libobjc.A.dylib 0x000000019a63ff80 objc_exception_throw + 56 2 CoreFoundation 0x0000000185b83c5c + 0 3 CoreFoundation 0x0000000185b80c00 + 872 4 CoreFoundation 0x0000000185a84cac _CF_forwarding_prep_0 + 92 5 3dgymnastics 0x000000010043fe08 _ZN3WWW18FeedUnityWebStreamEb + 104 6 3dgymnastics 0x00000001006796a8 UnityReportWWWFinishedLoadingData + 68 7 CFNetwork 0x000000018540f6a8 + 80 8 CFNetwork 0x000000018540f638 + 200 9 CFNetwork 0x000000018540f7ac + 56 10 CFNetwork 0x000000018527b4fc + 100 11 CFNetwork 0x0000000185369b38 + 108 12libdispatch.dylib 0x0000000101e7dc68 _dispatch_client_callout + 16 13 libdispatch。dylib 0x0000000101e8740c _dispatch_block_invoke + 564 14 CFNetwork 0x0000000185267ce4 + 36 15 CoreFoundation 0x0000000185a606cc CFArrayApplyFunction + 68 16 CFNetwork 0x0000000185267bc8 + 136 17 CFNetwork 0x0000000185267a88 + 312 18 CFNetwork 0x00000001852678b4 + 68 19 CoreFoundation 0x0000000185b34544 + 24 20 CoreFoundation 0x0000000185b33f58 + 412 21 CoreFoundation 0x0000000185b31cd8 + 724 22 CoreFoundation 0x0000000185a60ca0 CFRunLoopRunSpecific + 384 23 图形服务 0x0000000190c9c088 GSEventRunModal + 180 24 UIKit0x000000018b178ffc UIApplicationMain + 204 25 3dgymnastics 0x0000000100053100 main + 144 26 libdyld.dylib 0x000000019ae8e8b8 + 4 ) 2015-11-30 15:53:58.369 3dgymnastics] [1* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSMallocBlock__ bytes]: unrecognized selector sent to instance 0x13898d260' * First throw call stack: (0x185b7cf48 0x19a63ff80 0x185b83c5c 0x185b80c00 0x185a84cac 0x10043fe08 0x1006796a8 0x18540f6a8 0x18540f638 0x18540f7ac 0x18527b4fc 0x185369b38 0x101e7dc68 0x101e8740c 0x185267ce4 0x185a606cc 0x185267BC8 0x185267A88 0x1852678B4 0x185B34544 0x185B333F58 0x185B31CD8 0x1855A60CA0CA0 CA NEBRETIONT 0X190C088B18B18B118B118B1178B1000BY8FC 0X18FFC 0B11001000LFFC)

我知道这个问题与 Apple 最近在 iOS9 中引入的安全设置有关。到目前为止,我一直在使用的解决方法是添加 NSAppTransportSecurity。但是,它不再起作用了。在这件事上需要帮助。

我的 Unity 版本是 5.2.3,Xcode 是 7.1。

4

1 回答 1

1

不确定这是否是正确的方法,但我终于设法让它发挥作用。我正在关闭 ARC 设置以允许保留少量文件。我不应该做的事情,因为构建阶段中这些文件的简单单独标志可以完成它。重新打开 ARC 后,程序的其余部分正常工作。新手或菜鸟犯的错误。Unity5 以上默认开启 ARC。我想在导出的 Xcode 项目中很大程度上取决于它。希望这对遇到类似情况的人有所帮助。

于 2015-12-08T11:04:18.410 回答