在开发包含 CV 功能的 iOS 应用时,我们强烈建议你集成 CV SDK 动态库。但如果因业务需要,CV SDK 采用静态库,ByteRTC SDK 采用动态库时,参考本文进行相应修改。

前提条件

已参看 项目中加入 SDK 和 代码中集成 SDK,将 SDK 加入项目。

修改编译配置
  1. 修改 Strip Style

在此路径下进行修改:Build Settings > Deployment > Strip Style

alt

  1. 修改 Linker Flag

在此路径下进行修改:Build Settings > Linking > Other Linker Flags。对于不同的 RTC SDK 版本,有不同的修改方式:

对于 RTC 3.30 及以前版本,请添加以下符号:

-Wl,-u,_bef_effect_ai_check_license
-Wl,-u,_bef_effect_ai_create
-Wl,-u,_bef_effect_ai_destroy
-Wl,-u,_bef_effect_ai_init
-Wl,-u,_bef_effect_ai_use_pipeline_processor
-Wl,-u,_bef_effect_ai_set_intensity
-Wl,-u,_bef_effect_ai_set_color_filter_v2
-Wl,-u,_bef_effect_ai_set_camera_device_position
-Wl,-u,_bef_effect_ai_composer_set_nodes
-Wl,-u,_bef_effect_ai_algorithm_texture
-Wl,-u,_bef_effect_ai_process_texture
-Wl,-u,_bef_effect_ai_composer_set_mode
-Wl,-u,_bef_effect_ai_set_width_height
-Wl,-u,_bef_effect_ai_composer_update_node

对于 RTC 3.32+ 版本,请添加以下符号:

-Wl,-u,_bef_effect_ai_check_license
-Wl,-u,_bef_effect_ai_create
-Wl,-u,_bef_effect_ai_destroy
-Wl,-u,_bef_effect_ai_init
-Wl,-u,_bef_effect_ai_use_pipeline_processor
-Wl,-u,_bef_effect_ai_set_intensity
-Wl,-u,_bef_effect_ai_set_color_filter_v2
-Wl,-u,_bef_effect_ai_set_camera_device_position
-Wl,-u,_bef_effect_ai_composer_set_nodes
-Wl,-u,_bef_effect_ai_composer_update_node
-Wl,-u,_bef_effect_ai_algorithm_texture
-Wl,-u,_bef_effect_ai_process_texture
-Wl,-u,_bef_effect_ai_composer_set_mode
-Wl,-u,_bef_effect_ai_set_width_height
-Wl,-u,_bef_effect_ai_matting_check_license
-Wl,-u,_bef_effect_ai_portrait_matting_init_model
-Wl,-u,_bef_effect_ai_portrait_matting_destroy
-Wl,-u,_bef_effect_ai_portrait_matting_set_param
-Wl,-u,_bef_effect_ai_portrait_matting_do_detect
-Wl,-u,_bef_effect_ai_portrait_get_output_shape
-Wl,-u,_bef_effect_ai_portrait_matting_create
-Wl,-u,_bef_effect_ai_set_orientation

对 RTC 3.37+版本,除添加上述符号外,还应额外添加以下符号:

-Wl,-u,_bef_effect_ai_get_face_detect_result

对 RTC 3.42+ 版本,除添加上述符号外,还应额外添加以下符号:

-Wl,-u,_bef_effect_ai_get_version

对 RTC 3.44+ 版本,除添加上述符号外,还应额外添加以下符号:

-Wl,-u,_bef_effect_ai_set_render_cache_texture_with_buffer

原理解释:ByteRTC SDK 动态库会动态加载 CV SDK 的函数地址,由于链接器在链接过程会优化掉静态库中未被直接依赖的符号和代码,所以需要添加以上配置,阻止链接器删掉 CV SDK 中相关符号和代码。

  1. 添加以下依赖库

alt