Integrate Linphone app to my iOS app

后端 未结 2 457
不知归路
不知归路 2020-12-05 05:57

There are about 20 questions on Linphone ios build in StackOverflow. A couple of them ask about integrating Linphone to an existing xcode project. I have followed them all.

相关标签:
2条回答
  • 2020-12-05 06:33

    To be able to build and run Linphone on a Swift project I had to the following steps:

    1. Downlaod the latest SDK (with wget) from: http://www.linphone.org/snapshots/ios/liblinphone-iphone-sdk-latest.zip

    2. Copy,paste and insert in the project:

      • liblinphone-sdk/apple-darwin/include
      • liblinphone-sdk/apple-darwin/lib
      • liblinphone-sdk/apple-darwin/share/images
      • liblinphone-sdk/apple-darwin/share/sounds
    3. Create a Bridging-Header.h with:

      • #import <Foundation/Foundation.h>
      • #import <UIKit/UIKit.h>
      • #import <linphone/linphonecore.h>
    4. Create a PrefixHeader.pch which import your Bridging-Header:

      • #import "Bridging-Header.h"
    5. Integrate The following pods:

      • pod 'xmlrpc', '~> 2.3.4'
      • pod 'Tortuga22-NinePatch', '~> 0.1.1'
    6. Configure the build Settings:

    `

    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. Configure the macros:

    `

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

    `

    1. Libraries and Framework:

    First add all the libs from the folder (and subfolders) liblinphone-sdk/apple-darwin/lib. Then be sure to add the following list:

    Pods:

    • libPods.a

    Dynamic Libs:

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

    Frameworks: (sorry I'm not sure if they are all 100% needed but this is how I managed to get the lib to build)

    • 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 test:

    To verify that it was working, I integrated some sample code from the Linphone app and made some minor setups in my view controllers. To do so I integrated in the project the following classes:

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

    PS: I had to update them in order to build without warnings or errors.

    I hope this will help someone one day!

    0 讨论(0)
  • 2020-12-05 06:36

    Check with below Header Search Paths. Also set Other Linker Flags -ObjC

    enter image description here

    0 讨论(0)
提交回复
热议问题