IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    iOS - 工程引入doubango (idoubs编译)

    聂文龙发表于 2016-11-04 15:35:00
    love 0

    准备工作:下载doubango、idoubs源码

    mkdir mydoubs 
    cd mydoubs 
    Git clone https://github.com/DoubangoTelecom/doubango.git doubango 
    git clone https://github.com/DoubangoTelecom/idoubs.git idoubs

    构建demo应用 
    1.创建一个文件夹MyPropertyManage(自己随便命名) 在MyPropertyManage的文件夹下要有两个平级文件夹 
    因为在idoubs里面的路径被写好啦(下面会说到),在MyPropertyManage文件夹里拖入doubango框架, 
    另外一个文件夹命名你开心就好(此处写了idoubs),这个文件夹是用来装你的工程的! 
    文件目录

    2.从源码idoubs里面将iOS-ngn-stack整个文件以及common-ngn-stack这个文件夹拖入自己的工程文件下, 
    这里面包含着doubango的整个工程,所以这个文件夹很重要

    3.在idoubs文件夹下将自己刚刚建好的Demo工程(此处命名ios-idoubs)拖入,与ios-ngn-stack平级, 
    平级很重要,关乎工程内路径引入的问题!! 
    现在目录结构大概是这样的 
    目录

    4.打开自己的工程demo 将ios-ngn-stack添加为项目引用 
    点击 
    或者:关闭XCode打开的其他项目,只保留当前的demo项目。 将ios-ngn-stack.xcodeproj从finder中拖放到demo项目内。

    添加完成后

    5.添加链接库 
    在demo项目的Build Phases中,在Link Binary With Libraries里添加各种需要的内容。 
    添加链接库

    libios_ngn_stack.a 
    libtinyBFCP.a 
    libtinySAK.a 
    libtinyNET.a 
    libtinySDP.a 
    libtinyRTP.a 
    libtinyIPSec.a 
    libtinyMSRP.a 
    libtinyHTTP.a 
    libtinyMEDIA.a 
    libtinySIGCOMP.a 
    libtinySMS.a 
    libtinyXCAP.a 
    libtinySIP.a 
    libtinyDAV.a 
    libtinyWRAP.a 
    QuartzCore.framework 
    OpenGLES.framework 
    Security.framework 
    CFNetwork.framework 
    AudioToolbox.framework 
    AddressBook.framework 
    CoreGraphics.framework 
    AVFoundation.framework 
    CoreMedia.framework 
    CoreVideo.framework 
    SystemConfiguration.framework 
    AddressBook.framework 
    libsqlite3.tbd 
    libresolv.tbd

    6.配置Build Settings 
    ①User-Defined 
    User-Defined

    DOUBANGO_HOME       ../../doubango DOUBANGO_LIBS       $DOUBANGO_HOME/thirdparties/iphone/lib/universal NGN_STACK_HOME      $DOUBANGO_HOME/thirdparties/iphone/lib/universal PREBINDING          NO
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    ②Linking/Other Linker Flags 
    Linking/Other Linker Flags

    -lsrtp  -lssl  -lcrypto  -lyuv  -lvpx  -lx264  -lopenh264  -lswscale  -lavutil  -lavcodec  -lopus  -lgsm  -lg729b  -lspeex  -lspeexdsp  -framework  Foundation  -framework UIKit  
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    ③Search Paths/Header Search Paths 
    Search Paths/Header Search Paths

     $NGN_STACK_HOME/common-ngn-stack   $NGN_STACK_HOME/ios-ngn-stack   $DOUBANGO_HOME/bindings/_common  $DOUBANGO_HOME/tinySMS/include  $DOUBANGO_HOME/tinyHTTP/include  $DOUBANGO_HOME/tinySIP/include  $DOUBANGO/HOME/tinyMSRP/include  $DOUBANGO_HOME/tinyMEDIA/include  $DOUBANGO_HOME/tinyNET/src  $DOUBANGO_HOME/tinySAK/src  $DOUBANGO_HOME/tinyDAV/include $DOUBANGO_HOME/thirdparties/common/include  ../common-ngn-stack  ../ios-ngn-stack
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    ④Search Paths/Library Search Paths 
    Search Paths/Library Search Paths

     $(inherited)   $DOUBANGO_LIBS
    • 1
    • 2
    • 1
    • 2

    ⑤Apple LLVM 7.1 - Custom Compiler Flags / Other C Flags 
    Apple LLVM 7.1 - Custom Compiler Flags / Other C Flags

     -DNS_BLOCK_ASSERTIONS=1
    • 1
    • 1

    ⑥Build Settings / Apple LLVM 7.1 - Language 下的Compile Sources As为Objective-C++ 
    这里写图片描述

    ⑦加入头文件 
    在ViewController.h中,加入头文件

    import “iOSNgnStack.h”

    此外注意点: 
    当你们创建的控制器只要用到ios-ngn-stack里面的东西的话,控制器的后缀一定要改成.mm好吗 让它们混编好吗 宝宝们

    因为如果你不这么做的话 编译会变成这样的错误: 
    错误

    最后,谢谢我的同事陈老师!

    补充: 
    有网上的朋友配置的时候出现这样的问题: 
    问题1: 
    这里写图片描述 
    解决: 
    这个问题出现在没按配置把doubango放在最外层 详细看第一步骤

    问题2: 
    问题2

    解决: 
    这个问题就是没有配置Linking/Other Linker Flags 详细翻到上面寻找。



    聂文龙 2016-11-04 23:35 发表评论


沪ICP备19023445号-2号
友情链接