我想合并两个项目 .
First project
-
用目标C和swift 2.3编写
-
Pod依赖项
-
有不同的目标
-
子模块依赖项
Second project
https://github.com/BelledonneCommunications/linphone
-
以目标C编写
-
依赖于用C语言编写的linphone SDK
-
子模块依赖项
如何将第二个项目(linphone)转换为框架?
编辑1我已经集成了linphone项目(第二个项目),包括C编写的linphone SDK和Rectified all编译时错误 . 现在我能够运行该项目 . 但是我将为Submodules依赖做什么呢?编辑2目前,使用我们自己的SIP服务器帐户登录成功 . 现在我的问题是LinphoneManager
- (void)createLinphoneCore
- theLinphoneCore = linphone_core_new_with_config(&linphonec_vtable,configDb,(_ bridge void *)(self));
theLinphoneCore是NULL,为什么?注意:仍然我没有集成子模块,但我可以做音频和视频通话一切正常 .
1 回答
构建完整的liblinphone SDK唯一合理的方法是通过适当的客户端存储库,例如: linphone-iphone或linphone-android . 正如您所发现的那样,可以使用以下方法构建为框架或静态库:
./prepare.py -c && ./prepare.py -DENABLE_STATIC_ONLY=ON && make && make zipsdk
为libs设置DENABLE_STATIC_ONLY = ON,为框架设置= OFF:
请注意:截至2017年6月,框架配置仍在开发中 . 它在模拟器和实际硬件上构建和运行,但由于子框架配置不正确,因此无法将生成的应用程序二进制文件提交给Apple . 如果您不需要提交(甚至不是TestFlight!)2-6个月,他们很快就会完成 .
如果您需要更快地使用功能产品,请使用静态lib配置 . 唯一棘手的部分是在项目/工作区中设置所有内容 .
使用上面的prepare.py完全清理并构建
将libdphone-sdk中的sdk zip文件解压缩到您自己的项目目录中
将liblinphone-sdk / apple-darwin / lib中的库添加到XCode 's Linked Frameworks and Libraries section under General. Click +, select 336377 , navigate to the libs directory. Don' t忘记在liblinphone-sdk / apple-darwin / lib / mediastreamer / plugins中包含任何库
您可能需要为 Headers 搜索路径添加构建设置
$(SRCROOT)/liblinphone-sdk/apple-darwin/include
您可能需要为库搜索路径添加构建设置
$(PROJECT_DIR)/liblinphone-sdk/apple-darwin/lib
linphone-iPhone的XCode项目是发现您可能需要进行的其他调整的好地方 .
设置工作区可能需要反复试验 . Xcode对错误不是很好,但您应该能够使用Report Navigator视图查看完整的构建日志和错误消息 . 例如,如果您有一个未定义的符号,您可以尝试
grep -ri SYMBOLNAME liblinphone-sdk
来找出可能缺少的库 .关于你的 EDIT 2 问题,你需要所有的子模块,否则它将无法工作 . ortp,belle-sip,mediastreamer,srtp,mbedtls,它们都是必不可少的 . 只有mediastreamer插件编解码器(有些)是可选的 .