【发布时间】:2019-05-07 12:07:41
【问题描述】:
我有一个 iOS 应用程序(不是用 xcode 制作的),我需要在其中包含一个动态库。我的电脑上有这个库:
\webrtc
\WebRTC.framework
\Headers
\*.h
\Modules
\module.modulemap
\WebRTC
\Info.plist
然后我像这样在我的应用中部署这些文件:
ALLiveVideoChatClient.app
\Frameworks
\WebRTC.framework
\Headers
\*.h
\Modules
\module.modulemap
\WebRTC
\Info.plist
当我这样做时
otool -L ALLiveVideoChatClient.app/ALLiveVideoChatClient
它还给我:
@rpath/WebRTC.framework/WebRTC (compatibility version 0.0.0, current version 0.0.0)
当我尝试运行我的应用程序时收到错误消息:
异常类型:EXC_CRASH (SIGABRT) 异常代码: 0x0000000000000000, 0x0000000000000000 异常说明: EXC_CORPSE_NOTIFY 终止说明:DYLD,未加载库: @rpath/WebRTC.framework/WebRTC |参考自: /var/containers/Bundle/Application/A2C3A7DA-D35E-4649-AEA0-9AB518E48971/ALLiveVideoChatClient.app/ALLiveVideoChatClient |原因:找不到图片由线程触发:0
所以我检查了@rpath 的值
otool -l ALLiveVideoChatClient.app/ALLiveVideoChatClient
它返回我
cmd LC_RPATH
cmdsize 32
path $ORIGIN (offset 12)
我不确定$ORIGIN 是什么意思,但它指向ALLiveVideoChatClient.app,所以我更新@rpath 以指向$ORIGIN/Frameworks 将-rpath $ORIGIN/Frameworks 添加到链接器(http://www.manpagez.com/man/1/ld/)但我仍然收到错误找不到图片
我做错了什么?手动向 iOS 应用添加(所以没有 xcode)动态库的步骤是什么?
【问题讨论】:
标签: ios dynamic-linking dynamic-library rpath otool