惰性符号绑定失败:未找到符号:_arc4random_uniform

Rob*_*hen 0 iphone jailbreak arc4random ios

所以我编写了一个iOS游戏,我正在使用arc4random_uniform选择随机启动.

在Sim上,它工作正常,但在我的手机上它会抛出此错误(来自syslog):

Nov 26 13:44:26 iPhone ----[2184]: placePowerupCalled
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.-----[0x1f08][2184]: dyld:  lazy symbol binding failed: Symbol not found: _arc4random_uniform
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.-----[0x1f08][2184]:   Referenced from: /Applications/------.app/-----
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.------[0x1f08][2184]:         Expected in: /usr/lib/libSystem.B.dylib
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.------[0x1f08][2184]: dyld: Symbol not found: _arc4random_uniform
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.-----[0x1f08][2184]:   Referenced from: /Applications/------.app/-------
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.-----[0x1f08][2184]:   Expected in: /usr/lib/libSystem.B.dylib
Nov 26 13:44:27 iPhone ReportCrash[2185]: Formulating crash report for process -----[2184]
 Nov 26 13:44:27 iPhone com.apple.launchd[1] (UIKitApplication:com.yourcompany.-----[0x1f08][2184]): (UIKitApplication:com.yourcompany.-----[0x1f08]) Job appears to have crashed: Trace/BPT trap
Nov 26 13:44:27 iPhone SpringBoard[2161]: Application '-----' exited abnormally with signal 5: Trace/BPT trap
Run Code Online (Sandbox Code Playgroud)

我不太确定问题是什么.我甚至包括头文件arc4random应该来自(#include"stdlib.h"),但这没有奏效.

有人有主意吗?谢谢 !:)


编辑:我尝试将二进制文件与"libSystem.b.dylib"库链接,但这也不起作用,它仍然从同一错误中崩溃.

Vla*_*hin 5

arc4_uniform函数在iOS 4.3中添加,不会在较低版本上运行.看起来你在4.3或更高版本上运行模拟器,但你的设备有较低的iOS版本.如果您计划在低于4.3的版本上支持您的应用,请尝试使用此代码:

arc4random() % upperBoundExclusive
Run Code Online (Sandbox Code Playgroud)

它可能不像arc4_uniform那样精确随机,但可以工作.