因为我经常在3.1.3设备上测试我的应用程序,所以我必须添加一个链接器标志“-weak_library /usr/lib/libSystem.B.dylib”来支持那里的块。直到我开始从Apple样本中添加一些游戏中心编码之后,这才成问题。只有在模拟器中,当一个块(甚至是一个空块)作为GC编码中的认证回调被移交时,我才会在Apple的libs深处遇到一个瞬间崩溃(EXC_BAD_ACCESS)。当我提供nil作为回调时,GC登录工作正常,应用程序继续。 虽然在所有真实设备上都可以正常工作(iPad,带有iOS 4.3的iPhone,带有iOS 3.1.3的iPod - 当然还有GC)。当我删除链接器的弱链接标志时,它也将在模拟器中运行w / o问题。 有没有人知道那里发生了什么?这不是一个令人满意的解决方案,只有在我想要部署到我的古老iPod时才添加链接器标志。
谢谢,habitoti
答案 0 :(得分:5)
Apple工程师知道正确答案:
-weak_library /usr/lib/libSystem.B.dylib打破了iOS模拟器。请改用-weak-lSystem。
这实际上有效!