首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Linphone集成到自己的iOS项目中

将Linphone集成到自己的iOS项目中
EN

Stack Overflow用户
提问于 2015-03-31 05:52:58
回答 2查看 9.7K关注 0票数 1

我正在使用Linphone创建一个基于voip呼叫的项目,我还成功地构建和运行了Linphone项目,并成功地运行了音频和视频呼叫。现在我正在将Linphone集成到我自己的项目中,我面临着许多问题和问题。我已经使用了一些帮助链接,但没有完整的说明。有人能为我提供完整的跑步步骤吗-

http://shallwelearn.com/blog/build-linphone-for-iphone-and-ipad/

Integrate Linphone app to my iOS app

How to integrate Linphone into an existing project (SIP in IOS)

http://www.linphone.org/technical-corner/linphone/overview

How to integrate Linphone into an existing project (SIP in IOS)

http://lists.gnu.org/archive/html/linphone-developers/2014-09/msg00109.html

http://www.successmonkey.co.nz/blog/building-linphone-for-ios

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-19 08:23:52

  • 从链接下载iPhone http://www.linphone.org/releases/ios SDK:http://www.linphone.org/releases/ios选择最新的。
  • 将两个文件夹(包括lib)移动到项目文件夹中
  • 在项目构建设置中添加到这些文件夹的路径,- INCLUDE文件夹转到headers,和LIB文件夹到
  • 通用选项卡中,链接框架中的添加LIB文件夹中的所有文件
  • 下载/克隆回购https://github.com/BelledonneCommunications/linphone-iphone
  • 查找4个文件:LinphoneManager.h/.mUtils.h/.m,将它们包含在您的项目文件夹中,并将它们添加到左侧窗格中,也可以添加到其他类文件中
  • 试着编译你的项目-- xCode会用错误给你发垃圾邮件--这没问题。
  • 您需要检查错误,只需删除所有导致错误的文件导入(一些Linphone地址簿文件/一些配置存储文件和一些在项目中基本使用不需要的帮助类(因为很可能您已经在现有项目中实现了这些功能)。
  • 然后再次编译并检查方法中的所有错误。注释删除任何有问题的代码块(大约有10-15段代码)。

LinphoneManager类已经包含了许多有用的特性--比如良好的监视和使用具有良好日志记录的linphone核心等等,但并不是所有这些特性(不幸的是)。

票数 6
EN

Stack Overflow用户

发布于 2020-09-17 13:03:47

使用macos 10.15.6 Catalina使用Xcode 11

使用Cocoapod的Linphone SDK 4.4.0

https://github.com/BelledonneCommunications/linphone-sdk/blob/master/README.md

使用本地linphone SDK,从out gitlab克隆linphone-sdk存储库:

代码语言:javascript
运行
复制
$ git clone https://gitlab.linphone.org/BC/public/linphone-sdk.git --recursive 
$ git submodule update --init --recursive

代码语言:javascript
运行
复制
$ git clone --recurse-submodules https://gitlab.linphone.org/BC/public/linphone-sdk.git

重建项目:

PODFILE_PATH= pod是linphone-sdk项目的构建目录,包含linphone-sdk.podspec文件和包含构建的框架和资源的linphone-sdk目录。

Pod文件看上去像

代码语言:javascript
运行
复制
source "https://gitlab.linphone.org/BC/public/podspec.git"
source "https://github.com/CocoaPods/Specs.git"

def common_pods
    use_frameworks!

    pod 'linphone-sdk', '4.4.0'
end

然后用Xcode打开linphone.xcworkspace来构建和运行应用程序。

使用编译的Linphone SDK 4.4.0

代码语言:javascript
运行
复制
$ git clone https://gitlab.linphone.org/BC/public/linphone-sdk.git -- recursive
$ git submodule update --init --recursive

代码语言:javascript
运行
复制
$ git clone --recurse-submodules https://gitlab.linphone.org/BC/public/linphone-sdk.git

转到构建目录

代码语言:javascript
运行
复制
$ mkdir build && cd build

https://gitlab.linphone.org/BC/public/linphone-cmake-builder/blob/ios-3.13.19/README.python.md

首先,安装brew

代码语言:javascript
运行
复制
$ brew install cmake
$ brew install yasm
$ brew install pkg-config

安装pip ->

代码语言:javascript
运行
复制
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py

$ python -m pip install pystache //Check by $ python -m pip list

$ brew install doxygen
代码语言:javascript
运行
复制
$ cmake .. -G Xcode -DLINPHONESDK_PLATFORM=IOS -DENABLE_G729=YES -DENABLE_G729B_CNG=YES -DENABLE_VCARD=OFF -DENABLE_ILBC=OFF -DENABLE_SILK=OFF -DENABLE_ISAC=OFF -DENABLE_MKV=OFF -DENABLE_GSM=OFF -DENABLE_DOC=OFF -DENABLE_UNIT_TESTS=OFF -DENABLE_LIME=OFF -DENABLE_GPL_THIRD_PARTIES=OFF -DENABLE_NON_FREE_CODECS=OFF

注意-在这个步骤中,我们还将在linphone中启用G729 dedec支持。

代码语言:javascript
运行
复制
$ cmake --build . --config RelWithDebInfo

编译过程现在已经完成,需要与Xcode集成。

编译后的Linphone集成到Xcode中。

在目录linphone-sdk下面找到已编译的sdk ->构建-> linphone-sdk ->苹果-达尔文

  1. 框架和共享文件夹添加到xcode项目中,框架具有多种通用架构。
  2. 框架路径添加到生成设置中的框架搜索中
  3. 每个框架的框架文件夹,应该是类型“嵌入和签名”(意为嵌入框架)。而不是“不要嵌入”作为默认,同时添加到Xcode框架设置。这是最重要的部分。
  4. apple-达尔文->工具文件夹有deply.sh脚本,复制其内容,并在“构建设置”中创建一个新的运行脚本并粘贴到其中。
  5. 棘手的部分是在哪里放置第四点的脚本上传应用程序使用存档带和切片。编辑方案->存档->打开下拉-> post操作-> +添加新脚本->复制和粘贴。

6(任择)。如果体验脚本由于使用了我们的项目的fat库而导致应用程序崩溃,那么脚本中有一个小的变化,我从这个URL - Errors building Xcode Project after adding in Run Script fatal error: lipo: input file中找到了一个解决方案。

代码语言:javascript
运行
复制
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
    FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
    FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
    echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

# Start of Script modify - identify if the framework is FAT. If it is, then it skips it.
    if [ ! -f "${FRAMEWORK_EXECUTABLE_PATH}" ]; then
        continue
    fi

    if xcrun lipo -info "${FRAMEWORK_EXECUTABLE_PATH}" | grep --silent "Non-fat"; then
        echo "Framework non-fat, skipping: $FRAMEWORK_EXECUTABLE_NAME"
        continue
    fi

    echo "Thinning framework $FRAMEWORK_EXECUTABLE_NAME"
# end of Script modify

    EXTRACTED_ARCHS=()

    for ARCH in $ARCHS
    do
        echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
        lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
        EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
    done

    echo "Merging extracted architectures: ${ARCHS}"
    lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
    rm "${EXTRACTED_ARCHS[@]}"

    echo "Replacing original executable with thinned version"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"

done
  1. 如果您使用的是荚,然后使用终端命令"pod解构“在您的pod目录下进行整合。还从项目中删除.xcworkspace文件。
  2. 现在使用终端命令"pod“安装pod。

注意:如果您的情况是添加脚本导致应用程序崩溃,正如我在第6点中提到的,但是每次添加脚本时,都必须帮助我避免这种情况。

)现在喜欢在您的项目中使用linphone。

linphone sdk的末尾

Linphone配置在我们的项目中。

  1. enable为了启用音频编解码器,首先在defaultValue文件中启用g729_preference,最后一步在Project -> Target -> Build Settings中查找“预处理宏”并包括HAVE_G729,它在sip日志中打印,例如为兼容性添加G 729/8000,以防万一。

#更新-添加第5点编译,以上传应用程序到应用程序商店和G729编解码配置。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29361502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档