将Linphone应用程序集成到我的iOS应用程序
关于在StackOverflow中构build的Linphone ios,大约有20个问题。 他们中的一些人询问将Linphone集成到现有的xcode项目中。 我全都跟着他们。 我能够成功构build并运行Linphone项目。
但是,为了整合我现有的项目,我已经包括:
- linphone-sdk / apple-darwin / include和linphone-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,我必须执行以下步骤:
-
下载最新的SDK(带有wget): http : //www.linphone.org/snapshots/ios/liblinphone-iphone-sdk-latest.zip
-
复制,粘贴并插入到项目中:
- liblinphone-SDK /苹果达尔文/包括
- liblinphone-SDK /苹果达尔文/ lib目录
- liblinphone-SDK /苹果达尔文/股/图片
- liblinphone-SDK /苹果达尔文/股/声音
-
创build一个Bridging-Header.h:
#import <Foundation/Foundation.h>
-
#import <UIKit/UIKit.h>
-
#import <linphone/linphonecore.h>
-
创build一个导入您的Bridging-Header的PrefixHeader.pch:
-
#import "Bridging-Header.h"
-
-
集成以下Pod:
-
pod 'xmlrpc', '~> 2.3.4'
-
pod 'Tortuga22-NinePatch', '~> 0.1.1'
-
-
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
`
- configurationmacros:
`
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) HAVE_OPENH264 HAVE_SILK HAVE_SSL OTHER_SWIFT_FLAGS = $(inherited) -D HAVE_OPENH264 -D HAVE_SILK -D HAVE_SSL
`
- 图书馆和框架:
首先添加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