iPhone应用程序调用第三方dylib失败

问题描述:

嘿,伙计们!我想包装vlc,导入vlc dylibs。但是这个简单的iPhone应用程序调用这些第三方dylib在加载开始时失败,没有任何提示。我甚至尝试创建一个'hello world'xcode项目,只需添加libvlc.2.dylib & libvlccore.0.dylib,但不能调用,而无需手动添加任何1个代码。将它下载到iPhone设备(3.1.3)后,它会立即启动并退出,没有信息丢失。顺便说一下,所有进口的dylib都放在右侧的dirs上。这真的让我感到困惑!任何机构都能向我展示解决方案,非常感谢!上设备iPhone应用程序调用第三方dylib失败

运行otool:

根#otool -L TEST1 TEST1: /System/Library/Frameworks/Foundation.framework/Foundation(兼容版本300.0.0,当前版本678.51.0) /系统/库/框架/ UIKit.framework/UIKit(兼容性版本1.0.0,当前版本1000.0.0) /系统/库/框架/核心图形框架/核心图形(兼容性版本64.0.0,当前版本359.16.0) /System/Library/Frameworks/CoreData.framework/CoreData(兼容版本1.0.0,当前版本248.0.0) @ executable_path/PlugIns/libvlccore.0.dylib(compatibility vers ion 1.0.0,当前版本1.2.0) @ executable_path/PlugIns/libvlc.2.dylib(兼容性版本3.0.0,当前版本3.2.0) @ executable_path/PlugIns/liblive555_plugin.dylib(兼容性版本0.0.0 ,当前版本0.0.0) /usr/lib/libgcc_s.1.dylib(兼容版本1.0.0,当前版本1.0.0) /usr/lib/libSystem.B.dylib(兼容版本1.0.0,当前版本版本111.2.1) /usr/lib/libobjc.A.dylib(兼容性版本1.0.0,当前版本227.0.0) /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation(兼容性版本150.0.0,当前版本版本478.52.0)

+0

你有没有发现如何做到这一点?我被困在他同样的问题 – 2011-09-03 21:45:10

iPhone应用程序无法链接到除iPhone上的那些库之外的任何其他库DY。您需要将任何外部库编译为二进制文件(作为静态库)。

+0

-1。我刚刚设法在3.1和4.1上都能正常工作。 – 2010-10-22 14:29:13

+0

哎呀,我的坏。从Xcode运行它时看起来很有效,但不是从SpringBoard(arrrrrrrrrgh)运行它。 – 2010-10-22 16:06:13

+1

嗯。如果您另外对.dylib进行编码签名,则工作(从Xcode启动似乎跳过一些代码签名检查) – 2010-10-22 16:35:33