Создайте Jitsi Meet Framework для собственного приложения iOS и интегрируйте его в Xcode Project

Я проверил детали с веб-сайта встречи Jitsi и репозитория git, чтобы реализовать его в собственном приложении. Каким-то образом после выполнения команды сборки я не могу найти фреймворк в указанном месте. Я также не могу определить символическое местоположение (как было предложено).

Как я могу получить фреймворки, которые мне нужно включить в мое собственное приложение, чтобы заставить jitsi работать с видеозвонками?


person rptwsthi    schedule 10.01.2019    source источник


Ответы (2)


Создайте JITSI Meet Framework из собственного кода реакции:

  • Настройте собственное приложение jitsi-meet react в вашей системе, запустите его и заставьте его работать
  • Откройте проект Xcode, запустите его на устройстве iOS, проверьте, все ли работает как есть.
  • Создайте cmd+b с помощью Xcode (для универсального устройства)

введите здесь описание изображения

  • Внутри приложения> раздел Frameworks нажмите

Как добраться до jitsi.framwork, который необходимо включить в ваше приложение

  • Скопируйте файл «JitsiMeet.framework» отсюда в папку своего проекта.

введите здесь описание изображения

  • Скопируйте файл «WebRTC.framework» по пути «jitsi-meet-master ▸ node_modules ▸ react-native-webrtc ▸ ios» в папку вашего проекта.

Откуда мне получить структуру WebRTC

  • Сначала добавьте эти 2 в свою структуру, а затем во встроенные двоичные файлы

введите здесь описание изображения

Другая необходимая информация:

  • Битовый код не поддерживается, поэтому отключите его для своего проекта.
  • SDK использует код Swift, поэтому убедитесь, что вы выбрали Всегда встраивать стандартные библиотеки Swift в свой проект.
  • Поскольку SDK запрашивает доступ к камере и микрофону, не забудьте включить необходимые записи для NSCameraUsageDescription и NSMicrophoneUsageDescription в ваш файл Info.plist.
  • Наконец, поскольку SDK показывает и скрывает строку состояния в зависимости от состояния конференции, вы можете установить для UIViewControllerBasedStatusBarAppearance значение NO в файле Info.plist.

Симулятор: Экспортированный таким образом каркас не позволяет запускать приложение на Симуляторе. Чтобы запустить приложение на симуляторе, соберите приложение с выбранным симулятором и выполните указанные выше действия.

Выпуск:

  • При загрузке сборки в магазин приложений вы можете столкнуться со следующими проблемами:

введите здесь описание изображения

  • Чтобы избавиться от них, вам нужно будет добавить сценарий запуска в свой 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

Использованная литература:

person rptwsthi    schedule 10.01.2019

Процесс сборки Jitsi SDK:

  1. Клонируйте или загрузите папку SDK Jitsi (React Native Project)
  2. Папка Goto Jitsi
  3. npm install
  4. cd ios и сделайте установку pod
  5. Отключить битовый код в проекте
  6. Измените идентификатор пакета (если требуется) и выберите соответствующий сертификат.
  7. запустите jitsi-meet.xcworkspace в Xcode, он должен компилироваться и работать нормально
  8. Перейдите в расположение папки SDK (вне папки iOS)
  9. Выполните в терминале следующие команды:

mkdir -p ios / sdk / out

xcodebuild clean
-workspace ios / jitsi-meet.xcworkspace
-scheme JitsiMeetSDK

Архив xcodebuild
-workspace ios / jitsi-meet.xcworkspace
-scheme JitsiMeetSDK
-конфигурация Release
-sdk iphonesimulator
-destination = 'generic / platform = iOS Simulator '
-archivePath ios / sdk / out / ios-simulator
VALID_ARCHS = x86_64
ENABLE_BITCODE = NO
SKIP_INSTALL = NO
BUILD_LIBRARY_FOR_DISTRIBUTION = YES

Архив xcodebuild
-workspace ios / jitsi-meet.xcworkspace
-scheme JitsiMeetSDK
-configuration Release
-sdk iphoneos
-destination = 'generic / platform = iOS'
-archivePath ios / sdk / out / ios-device
VALID_ARCHS = arm64
ENABLE_BITCODE = NO
SKIP_INSTALL = NO
BUILD_LIBRARY_FOR_DISTRIBUTION = YES

xcodebuild -create-xcframework
-framework ios / sdk / out / ios-device.xcarchive / Products / Library / Frameworks / JitsiMeetSDK.framework
-framework ios / sdk / out / ios-simulator.xcarchive / Продукты / Библиотеки / Frameworks / JitsiMeetSDK.framework
-output ios / sdk / out / JitsiMeetSDK.xcframework

cp -a node_modules / react-native-webrtc / apple / WebRTC.xcframework ios / sdk / out

  1. После успешной сборки Jitsi Meet SDK для iOS 2 результирующих XCFrameworks будут находиться в каталоге ios / sdk / out.
  2. Перетащите соответствующие рамки в проект.
  3. Не забудьте изменить ENABLE_BITCODE на NO и Always Embed Swift Standard Libraries на YES
  4. Перейдите к Targets ›General и измените Frameworks, Libraries и Embed Content и измените Embed на Embed без подписи или Embed с подписью.
  5. Теперь импортируйте JitsiMeetSDK в свой контроллер представления, и все готово.

Ссылка: https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-ios-sdk

person Sagar Sukode    schedule 26.05.2021