本文介绍了为本地iOS应用程序创建Jitsi Meet Framework,并将其集成到Xcode Project中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经从Jitsi Meet网站和git repo中检查了详细信息,以在本机应用程序中实现它.一旦生成命令执行了一些命令,我​​就无法在上述位置找到框架.我也无法识别符号位置(如建议的那样).

I have checked details from Jitsi meet website and git repo to implement it in native application. Some how once build command executed I am not able to find the framework in mentioned location. Neither am I able to identify the symbolic location (as suggested).

如何获得我的本机应用程序中需要包含的框架,以使jitsi满足视频通话工作?

How can I get frameworks that I need to include in my native application in order to make jitsi meet video calling work?

推荐答案

通过react native代码创建JITSI Meet框架:

Create JITSI Meet Framework From react native Code:

  • 配置jitsi-meet在系统上对本机应用程序做出反应,使其运行并使其正常工作
  • 打开Xcode项目并在iOS设备上运行它,检查是否所有功能都按原样..
  • 使用Xcode(对于通用设备)构建cmd+b
  • 内部应用程序>框架"部分中,单击

  • 从此处将"JitsiMeet.framework"文件复制到您的项目文件夹中

  • 将路径"jitsi-meet-master▸node_modules▸react-native-webrtc▸ios"中的"WebRTC.framework"文件复制到项目文件夹中

  • 首先将这2个添加到您的框架中,然后添加到嵌入式二进制文件中

其他必填详细信息:

  • 不支持位码,因此请在您的项目中将其关闭.
  • SDK使用Swift代码,因此请确保选择始终在项目中嵌入Swift标准库".
  • 由于SDK请求访问摄像头和麦克风,因此请确保在Info.plist文件中包括NSCameraUsageDescription和NSMicrophoneUsageDescription的必需条目.
  • 最后,由于SDK根据会议状态显示和隐藏状态栏,因此您可能需要在Info.plist文件中将UIViewControllerBasedStatusBarAppearance设置为NO.

模拟器::以这种方式导出的框架不允许您在模拟器上运行应用程序.为了在模拟器上运行应用,请在选择模拟器的情况下构建应用,然后执行上述步骤.

Simulator: Frame work exported in this way will not allow you to run application on Simulator. In order to run app on simulator build app with simulator selected and follow above steps.

发布:

  • 将内部版本上传到Appstore时,您可能会遇到以下问题:
  • 为了摆脱这些缺陷,您将需要在Xcode上添加一个运行脚本.

脚本:

echo "Target architectures: $ARCHS"

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"
echo $(lipo -info "$FRAMEWORK_EXECUTABLE_PATH")

FRAMEWORK_TMP_PATH="$FRAMEWORK_EXECUTABLE_PATH-tmp"

# remove simulator's archs if location is not simulator's directory
case "${TARGET_BUILD_DIR}" in
*"iphonesimulator")
    echo "No need to remove archs"
    ;;
*)
    if $(lipo "$FRAMEWORK_EXECUTABLE_PATH" -verify_arch "i386") ; then
    lipo -output "$FRAMEWORK_TMP_PATH" -remove "i386" "$FRAMEWORK_EXECUTABLE_PATH"
    echo "i386 architecture removed"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_TMP_PATH" "$FRAMEWORK_EXECUTABLE_PATH"
    fi
    if $(lipo "$FRAMEWORK_EXECUTABLE_PATH" -verify_arch "x86_64") ; then
    lipo -output "$FRAMEWORK_TMP_PATH" -remove "x86_64" "$FRAMEWORK_EXECUTABLE_PATH"
    echo "x86_64 architecture removed"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_TMP_PATH" "$FRAMEWORK_EXECUTABLE_PATH"
    fi
    ;;
esac

echo "Completed for executable $FRAMEWORK_EXECUTABLE_PATH"
echo $(lipo -info "$FRAMEWORK_EXECUTABLE_PATH")

done

如果该脚本不是为模拟器运行的,则该脚本仅从胖二进制文件(如果存在)中删除i386和x86_64切片(这意味着目标文件夹与"Debug-iphonesimulator"不同).礼貌的: https://stackoverflow.com/a/41416964/656600

This script simply removes i386 and x86_64 slices from fat binary (if they exist) if running not for the simulator (that means destination folder isn't like "Debug-iphonesimulator").Curtsy: https://stackoverflow.com/a/41416964/656600

参考:

  • https://github.com/jitsi/jitsi-meet/tree/master/ios
  • https://github.com/jitsi/jitsi-meet-ios-sdk-releases/blob/master/README.md
  • https://github.com/jitsi/jitsi-meet/blob/master/doc/mobile.md

这篇关于为本地iOS应用程序创建Jitsi Meet Framework,并将其集成到Xcode Project中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 16:44