To be able to create and run Linphone in a Swift project, I had to perform the following steps:
Downlaod latest SDK (with wget) from: http://www.linphone.org/snapshots/ios/liblinphone-iphone-sdk-latest.zip
Copy, paste and paste into the project:
- liblinphone-sdk / apple-darwin / enable
- liblinphone-sdk / apple-darwin / library
- liblinphone-sdk / apple-darwin / share / images
- liblinphone-sdk / apple-darwin / share / sounds
Create Bridging-Header.h with
#import <Foundation/Foundation.h>#import <UIKit/UIKit.h>#import <linphone/linphonecore.h>
Create a Header.pch prefix that imports your header:
#import "Bridging-Header.h"
Integrate the following types:
pod 'xmlrpc', '~> 2.3.4'pod 'Tortuga22-NinePatch', '~> 0.1.1'
Configure build options:
`
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
`
- Customize macros:
`
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) HAVE_OPENH264 HAVE_SILK HAVE_SSL OTHER_SWIFT_FLAGS = $(inherited) -D HAVE_OPENH264 -D HAVE_SILK -D HAVE_SSL
`
- Libraries and Framework:
First add all the libraries from the folder (and subfolders) liblinphone-sdk/apple-darwin/lib . Then add the following list:
Beans:
Dynamic Libs:
- libz.dylib
- libiconv.dylib
- libxml2.dylib
- libsqlite3.dylib
- Lib ++. Dylib
- libstdc ++. 6.dylib
- libresolv.dylib
Framework: (sorry, I'm not sure that they are all 100% needed, but I managed to get the lib assembly)
- 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
How to check:
To make sure that it works, I included some sample code from the Linphone application and made some small adjustments in my controllers. To do this, I included the following classes in the project:
- Utils. [h, m]
- LinphoneManager. [h, m]
- LinphoneCoreSettingsStore. [h, m]
- FastAddressBook. [h, m]
- LinphoneIOSVersion.h
- pod 'InAppSettingsKit', '~> 2.6'
PS: I had to update them to create without warnings or errors.
I hope this helps someone one day!
source share