将Linphone应用程序集成到我的iOS应用程序中

时间:2013-08-06 13:09:12

标签: iphone ios objective-c sip linphone

在StackOverflow中构建Linphone ios大约有20个问题。其中一些人询问将Linphone集成到现有的xcode项目中。我跟着他们了。我能够成功构建和运行Linphone项目。

但是,要整合到我现有的项目中,我已经包括:

  • linphone-sdk / apple-darwin / include linphone-sdk / apple-darwin / lib 到我的项目中。
  • 以下行 Xcode项目 - >构建设置 - >搜索路径/标题搜索路径:子模块/ linphone / coreapi子模块/ linphone / mediastreamer2 / include submodules / linphone / mediastreamer2 / include子模块/ linphone / oRTP / include子模块/ externals / gsm / submodules / externals / osip / include子模块/ externals / exosip / include子模块/ externals / speex / include Classes / Utils / NinePatch / Classes / Utils / XMLRPC /
  • 将目标成员身份所有.a标记为当前目标

我还应该做些什么才能让Linphone在我的项目中工作?或者我应该制作Linphone的静态库?如果是的话,我应该注意什么?

2 个答案:

答案 0 :(得分:9)

为了能够在Swift项目上构建和运行Linphone,我必须执行以下步骤:

  1. 从以下网址下载最新的SDK(包含wget) http://www.linphone.org/snapshots/ios/liblinphone-iphone-sdk-latest.zip

  2. 复制,粘贴并插入项目中

    • liblinphone-SDK /苹果达尔文/包括
    • liblinphone-SDK /苹果达尔文/ lib中
    • liblinphone-SDK /苹果达尔文/共享/图像
    • liblinphone-SDK /苹果达尔文/共享/声音
  3. 使用以下内容创建Bridging-Header.h

    • #import <Foundation/Foundation.h>
    • #import <UIKit/UIKit.h>
    • #import <linphone/linphonecore.h>
  4. 创建一个PrefixHeader.pch,用于导入您的Bridging-Header:

    • #import "Bridging-Header.h"
  5. 整合以下播客:

    • pod 'xmlrpc', '~> 2.3.4'
    • pod 'Tortuga22-NinePatch', '~> 0.1.1'
  6. 配置构建设置:

  7. `

    GCC_PRECOMPILE_PREFIX_HEADER = YES
    GCC_PREFIX_HEADER = path/to/PrefixHeader.pch
    OTHER_LDFLAGS = -ObjC $(inherited)
    FRAMEWORK_SEARCH_PATHS = $(inherited)
    HEADER_SEARCH_PATHS = $(inherited) ${PODS_ROOT}/Headers/Public $(PROJECT_DIR)/External/liblinphone-sdk/apple-darwin/include
    LIBRARY_SEARCH_PATHS = $(inherited) $(PROJECT_DIR)/External/liblinphone-sdk/apple-darwin/lib $(PROJECT_DIR)/External/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins
    

    `

    1. 配置宏:
    2. `

      GCC_PREPROCESSOR_DEFINITIONS = $(inherited) HAVE_OPENH264 HAVE_SILK HAVE_SSL
      OTHER_SWIFT_FLAGS = $(inherited) -D HAVE_OPENH264 -D HAVE_SILK -D HAVE_SSL
      

      `

      1. 图书馆和框架:
      2. 首先添加文件夹(和子文件夹)liblinphone-sdk/apple-darwin/lib中的所有库。 然后一定要添加以下列表:

        荚:

        • libPods.a

        动态图书馆:

        • libz.dylib
        • libiconv.dylib
        • libxml2.dylib
        • libsqlite3.dylib
        • 的libc ++。dylib
        • 的libstdc ++。6.dylib
        • libresolv.dylib

        框架:(抱歉,我不确定它们是否都是100%需要,但这就是我设法让lib构建的方式)

        • AudioToolbox.framework
        • UIKit.framework
        • QuartzCore.framework
        • OpenGLES.framework
        • MessageUI.framework
        • MediaPlayer.framework
        • CoreGraphics.framework
        • MobileCoreServices.framework
        • AddressBookUI.framework
        • AddressBook.framework
        • SystemConfiguration.framework
        • CFNetwork.framework
        • AssetsLibrary.framework
        • AVFoundation.framework
        • CoreAudio.framework
        • CoreMedia.framework
        • CoreTelephony.framework
        • CoreVideo.framework
        • Foundation.framework
        • CoreLocation.framework

        如何测试:

        为了验证它是否正常工作,我从Linphone应用程序中集成了一些示例代码,并在我的视图控制器中进行了一些小的设置。 为此,我在项目中集成了以下类:

        • Utils. [h,m]
        • LinphoneManager。[h,m]
        • LinphoneCoreSettingsStore。[h,m]
        • FastAddressBook。[h,m]
        • LinphoneIOSVersion.h
        • pod&#39; InAppSettingsKit&#39;,&#39;〜&gt; 2.6&#39;

        PS:我必须更新它们才能在没有警告或错误的情况下进行构建。

        我希望有一天能帮助别人!

答案 1 :(得分:1)

使用以下标题搜索路径进行检查。同时设置其他链接标记 -ObjC

enter image description here