在集成 RTC SDK 时,需要将 SDK 包引入到 app 中。若 SDK 包文件未放在默认目录下,会出现 RTC SDK 找不到依赖库(如 libbytenn、libbytevc0 等)的问题,从而引发卡死等问题。
@rpath (runpath): 是一个保存着一个或多个路径的变量,告诉连接器到什么路径找库。@executable_path: 表示可执行程序所在的目录。@loader_path: 表示每一个被加载的 binary(包括 App, dylib, framework, plugin 等)所在的目录。APP 默认的 @rpath 为 app/Contents/Frameworks,RTC SDK 的 @rpath 为当前目录,建议 SDK 包文件统一放在默认目录。
如果由于一些原因无法将 SDK 包文件统一放在默认目录下,而是需要放在自定义目录下,则应修改 @rpath 进行 SDK 依赖重定向,保证 RTC SDK 能正常找到依赖库。
示例:
Custom Folder 中存放了 RTC SDK 的相关文件以及依赖库,现在高亮的 VolcEngineRTC 需要依赖于 libAGFX.dylib, libbytenn.dylib, libbytevc0.dylib, libeffect.dylib 文件。

在该文件路径下打开终端,通过命令 otool -L VolcEngineRTC 查看该可执行文件的依赖库及库路径。

依次使用命令 install_name_tool -change @rpath/libAGFX.dylib @loader_path/../../../libAGFX.dylib VolcEngineRTC 将依赖库的 @rpath 路径改成以 @loader_path 为基础的相对路径。