在iOS8 +中使用预编译的dylib或用dylib构建动态框架?

时间:2016-05-09 09:33:33

标签: ios frameworks tbb dylib dyld

我试图使用我所制作的胖dylib包含最新版本的tbb,其中包含我可能针对的所有架构的代码(armv7,arm64,i386和x86_x64)

由于iOS8使用dylib是可能的,实际上我发现谷歌搜索的错误信息之一是以下一个:

ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later

这似乎表明嵌入dylib实际上是可行的,我们不仅限于新的所谓的动态框架,但是,当我尝试运行我的项目时,我得到以下内容:

dyld: Library not loaded: @rpath/libtbb.dylib
  Referenced from: /Users/user/Library/Developer/CoreSimulator/Devices/B4DCFF3E-10B2-4C01-953F-BD26D14300E7/data/Containers/Bundle/Application/8C84A844-97FC-4993-A37E-A456C4E2240F/TestTBB.app/TestTBB
  Reason: image not found

我认为这是因为dylib没有被自动复制到正在构建的应用程序中,所以我将它添加到"复制捆绑资源"项目中的部分"构建阶段"我已经确定libtbb.dylib实际上已被复制到应用程序中,但我仍然收到消息说它无法加载。

我已尝试使用"嵌入式二进制文件" " General"但它似乎仅限于使用新的框架类型。

有什么我可能遗失的吗?

你可能已经注意到我试图使用TBB,它带有自己的构建makefile,生成dylibs,我假设它是这样做的,因为dylibs可以使用,合法自iOS8 +更新。

我已经看到了加载dylibs的方法,但这些并不是Apple在他们的AppStore中可以接受的,我试图为AppStore上的应用程序执行此操作,而我没有计划在更新后将其删除或不被接受,所以我想要使用新的" legal"方法是加载dylibs。自最新更新以来,我的应用程序正在瞄准iOS9.2 +,因此这不应成为问题。

所有我能找到的方法是加载动态框架但没有关于实际dylib的信息,即使错误消息清楚地表明它们可以被使用。

或者,有没有办法用现有的dylib文件构建动态框架?

提前致谢。

0 个答案:

没有答案