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

关于在StackOverflow中构build的Linphone ios,大约有20个问题。 他们中的一些人询问将Linphone集成到现有的xcode项目中。 我全都跟着他们。 我能够成功构build并运行Linphone项目。

但是,为了整合我现有的项目,我已经包括:

  • linphone-sdk / apple-darwin / includelinphone-sdk / apple-darwin / lib到我的项目。
  • Xcode project-> Build Settings-> Search Path / Header Search Path :submodules / linphone / coreapi submodules / linphone / mediastreamer2 / include submodules / linphone / mediastreamer2 / include submodules / linphone / oRTP / include submodules / externals / gsm / submodules / externals / osip / include子模块/ externals / exosip / include子模块/ externals / speex / include Classes / Utils / NinePatch / Classes / Utils / XMLRPC /
  • 标记所有.a目标成员到我目前的目标

我还应该做些什么来让Linphone在我的项目中工作? 还是应该build立一个静态的Linphone库 ? 如果是的话,我应该关心什么?

为了能够在Swift项目上构build和运行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. 创build一个Bridging-Header.h:

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

    • #import "Bridging-Header.h"
  5. 集成以下Pod:

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

`

 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. configurationmacros:

`

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

`

  1. 图书馆和框架:

首先添加liblinphone-sdk/apple-darwin/lib文件夹(和子文件夹)中的所有库。 那么一定要添加下面的列表:

荚:

  • libPods.a

dynamic库:

  • 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

如何testing:

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

  • Utils。[h,m]
  • LinphoneManager。[h,m]
  • LinphoneCoreSettingsStore。[h,m]
  • FastAddressBook。[h,m]
  • LinphoneIOSVersion.h
  • pod'InAppSettingsKit','〜> 2.6'

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

我希望这有助于某个人!

检查下面的标题searchpath。 还设置其他链接器标志 -ObjC

在这里输入图像说明