From f6fa903f8f1980bcf7a25aad1c9e201ab5a2a4eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Wed, 18 Nov 2020 15:17:00 +0100 Subject: [PATCH] feat(rn) switch to XCFramework and WebRTC M87 --- .gitignore | 1 + ios/Podfile | 1 + ios/Podfile.lock | 8 +- ios/app/app.xcodeproj/project.pbxproj | 94 ++++++------------- ios/scripts/bitcode.sh | 15 --- ios/scripts/fixup-frameworks.sh | 39 -------- ios/scripts/release-sdk.sh | 40 ++++++-- ios/sdk/sdk.xcodeproj/project.pbxproj | 25 ----- .../xcshareddata/xcschemes/JitsiMeet.xcscheme | 20 +--- package-lock.json | 12 ++- package.json | 2 +- 11 files changed, 80 insertions(+), 177 deletions(-) delete mode 100755 ios/scripts/bitcode.sh delete mode 100755 ios/scripts/fixup-frameworks.sh diff --git a/.gitignore b/.gitignore index e3a417044..1e5da3933 100644 --- a/.gitignore +++ b/.gitignore @@ -69,6 +69,7 @@ buck-out/ *.framework android/app/debug android/app/release +ios/sdk/out # precommit-hook .jshintignore diff --git a/ios/Podfile b/ios/Podfile index 286d3947b..79933610a 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,6 +1,7 @@ platform :ios, '11.0' workspace 'jitsi-meet' require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' +install! 'cocoapods', :deterministic_uuids => false target 'jitsi-meet' do project 'app/app.xcodeproj' diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 9b3c49ca3..80be252ca 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -293,7 +293,7 @@ PODS: - React - react-native-splash-screen (3.2.0): - React - - react-native-webrtc (1.84.1): + - react-native-webrtc (1.87.1): - React-Core - react-native-webview (10.9.0): - React @@ -562,7 +562,7 @@ SPEC CHECKSUMS: react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae react-native-netinfo: 8d8db463bcc5db66a8ac5c48a7d86beb3b92f61a react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865 - react-native-webrtc: edd689b0d5a462d7a6f6f52bca3f9414fc0ee11c + react-native-webrtc: 40eca4cac200fda34fb843da07e3402211bbbd10 react-native-webview: 6ee7868ca8eba635dbf7963986d1ab7959da0391 React-RCTActionSheet: bcbc311dc3b47bc8efb2737ff0940239a45789a9 React-RCTAnimation: 65f61080ce632f6dea23d52e354ffac9948396c6 @@ -582,6 +582,6 @@ SPEC CHECKSUMS: RNWatch: a5320c959c75e72845c07985f3e935e58998f1d3 Yoga: 96b469c5e81ff51b917b92e8c3390642d4ded30c -PODFILE CHECKSUM: f2400f8e5a52c4d91697cbacba6956569efc5ab8 +PODFILE CHECKSUM: f6626cd705333112182cedbe175ae2f9006e8874 -COCOAPODS: 1.9.3 +COCOAPODS: 1.10.0 diff --git a/ios/app/app.xcodeproj/project.pbxproj b/ios/app/app.xcodeproj/project.pbxproj index 22bd9d96d..ec5541fcd 100644 --- a/ios/app/app.xcodeproj/project.pbxproj +++ b/ios/app/app.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 52; objects = { /* Begin PBXBuildFile section */ @@ -13,8 +13,6 @@ 0B412F211EDEE95300B1A0A6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0B412F201EDEE95300B1A0A6 /* Main.storyboard */; }; 0B5418471F7C5D8C00A2DD86 /* MeetingRowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B5418461F7C5D8C00A2DD86 /* MeetingRowController.swift */; }; 0B7001701F7C51CC005944F4 /* InCallController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B70016F1F7C51CC005944F4 /* InCallController.swift */; }; - 0BD6B4371EF82A6B00D1F4CD /* WebRTC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BD6B4361EF82A6B00D1F4CD /* WebRTC.framework */; }; - 0BD6B4381EF82A6B00D1F4CD /* WebRTC.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0BD6B4361EF82A6B00D1F4CD /* WebRTC.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 0BEA5C291F7B8F73000D0AB4 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0BEA5C271F7B8F73000D0AB4 /* Interface.storyboard */; }; 0BEA5C2B1F7B8F73000D0AB4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0BEA5C2A1F7B8F73000D0AB4 /* Assets.xcassets */; }; 0BEA5C321F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0BEA5C311F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; @@ -28,6 +26,8 @@ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 695AF3ED6F686F9C5EE40F9A /* libPods-jitsi-meet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 489E8EFE2C720D10F5961AEF /* libPods-jitsi-meet.a */; }; + DE050389256E904600DEE3A5 /* WebRTC.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE050388256E904600DEE3A5 /* WebRTC.xcframework */; }; + DE05038A256E904600DEE3A5 /* WebRTC.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DE050388256E904600DEE3A5 /* WebRTC.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; DE4C456121DE1E4E00EA0709 /* FIRUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = DE4C455F21DE1E4E00EA0709 /* FIRUtilities.m */; }; E588011722789D43008B0561 /* JitsiMeetContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = E58801132278944E008B0561 /* JitsiMeetContext.swift */; }; E5C97B63227A1EB400199214 /* JitsiMeetCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5C97B62227A1EB400199214 /* JitsiMeetCommands.swift */; }; @@ -57,8 +57,8 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( + DE05038A256E904600DEE3A5 /* WebRTC.xcframework in Embed Frameworks */, 0B26BE6F1EC5BC3C00EEFB41 /* JitsiMeet.framework in Embed Frameworks */, - 0BD6B4381EF82A6B00D1F4CD /* WebRTC.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -117,8 +117,10 @@ 4670A512A688E2DC34528282 /* Pods-jitsi-meet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-jitsi-meet.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-jitsi-meet/Pods-jitsi-meet.debug.xcconfig"; sourceTree = ""; }; 489E8EFE2C720D10F5961AEF /* libPods-jitsi-meet.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-jitsi-meet.a"; sourceTree = BUILT_PRODUCTS_DIR; }; B3B083EB1D4955FF0069CEE7 /* app.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = app.entitlements; sourceTree = ""; }; + DE050388256E904600DEE3A5 /* WebRTC.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = WebRTC.xcframework; path = "../../node_modules/react-native-webrtc/apple/WebRTC.xcframework"; sourceTree = ""; }; DE4C455F21DE1E4E00EA0709 /* FIRUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRUtilities.m; sourceTree = ""; }; DE4C456021DE1E4E00EA0709 /* FIRUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIRUtilities.h; sourceTree = ""; }; + DEFDBBDB25656E3B00344B23 /* WebRTC.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = WebRTC.xcframework; path = "../../node_modules/react-native-webrtc/ios/WebRTC.xcframework"; sourceTree = ""; }; E58801132278944E008B0561 /* JitsiMeetContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiMeetContext.swift; sourceTree = ""; }; E5C97B62227A1EB400199214 /* JitsiMeetCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiMeetCommands.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -136,8 +138,8 @@ buildActionMask = 2147483647; files = ( 0B26BE6E1EC5BC3C00EEFB41 /* JitsiMeet.framework in Frameworks */, - 0BD6B4371EF82A6B00D1F4CD /* WebRTC.framework in Frameworks */, 695AF3ED6F686F9C5EE40F9A /* libPods-jitsi-meet.a in Frameworks */, + DE050389256E904600DEE3A5 /* WebRTC.xcframework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -154,7 +156,9 @@ 0B26BE711EC5BC4D00EEFB41 /* Frameworks */ = { isa = PBXGroup; children = ( + DE050388256E904600DEE3A5 /* WebRTC.xcframework */, 0B26BE6D1EC5BC3C00EEFB41 /* JitsiMeet.framework */, + DEFDBBDB25656E3B00344B23 /* WebRTC.xcframework */, 0BD6B4361EF82A6B00D1F4CD /* WebRTC.framework */, 489E8EFE2C720D10F5961AEF /* libPods-jitsi-meet.a */, ); @@ -290,8 +294,6 @@ 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 0B26BE701EC5BC3C00EEFB41 /* Embed Frameworks */, - B35383AD1DDA0083008F406A /* Adjust embedded framework architectures */, - DE3A859324C701EA009B7D76 /* Copy WebRTC dSYM */, 0BB7DA181EC9E695007AAE98 /* Adjust ATS */, DEF4813D224925A2002AD03A /* Copy Google Plist file */, DE11877A21EE09640078D059 /* Setup Google reverse URL handler */, @@ -420,20 +422,6 @@ shellPath = /bin/sh; shellScript = "../scripts/run-packager.sh\n"; }; - B35383AD1DDA0083008F406A /* Adjust embedded framework architectures */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Adjust embedded framework architectures"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "../scripts/fixup-frameworks.sh\n"; - }; B6607F42A5CF0C76E98929E2 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -474,24 +462,6 @@ shellPath = /bin/sh; shellScript = "INFO_PLIST=\"$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH\"\nGOOGLE_PLIST=\"$PROJECT_DIR/GoogleService-Info.plist\"\n\nif [[ -f $GOOGLE_PLIST ]]; then\n REVERSED_CLIENT_ID=$(/usr/libexec/PlistBuddy -c \"Print :REVERSED_CLIENT_ID:\" $GOOGLE_PLIST)\n /usr/libexec/PlistBuddy -c \"Set :CFBundleURLTypes:1:CFBundleURLSchemes:0 $REVERSED_CLIENT_ID\" $INFO_PLIST\nfi\n"; }; - DE3A859324C701EA009B7D76 /* Copy WebRTC dSYM */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Copy WebRTC dSYM"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "set -x\n\nif [[ \"${CONFIGURATION}\" != \"Debug\" ]]; then\n cp -r ../../node_modules/react-native-webrtc/ios/WebRTC.dSYM ${DWARF_DSYM_FOLDER_PATH}/\nfi\n"; - }; DE4F6D6E22005C0400DE699E /* Setup Dropbox */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -652,7 +622,8 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = watchos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 4; WATCHOS_DEPLOYMENT_TARGET = 4.0; @@ -679,7 +650,11 @@ DEVELOPMENT_TEAM = FC967L3QRG; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = watchos/extension/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.watchkit.extension; PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = watchos; @@ -713,12 +688,17 @@ DEVELOPMENT_TEAM = FC967L3QRG; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = watchos/extension/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.watchkit.extension; PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = watchos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 4; WATCHOS_DEPLOYMENT_TARGET = 4.0; @@ -729,7 +709,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 4670A512A688E2DC34528282 /* Pods-jitsi-meet.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIconDebug; CODE_SIGN_ENTITLEMENTS = app.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -738,16 +717,11 @@ DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = FC967L3QRG; ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "../../node_modules/react-native-webrtc/ios", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - ); INFOPLIST_FILE = src/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = "$(inherited)"; OTHER_LDFLAGS = ( "$(inherited)", @@ -764,7 +738,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 09AA3B93E4CC62D84B424690 /* Pods-jitsi-meet.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIconRelease; CODE_SIGN_ENTITLEMENTS = app.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -772,16 +745,11 @@ CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = FC967L3QRG; ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "../../node_modules/react-native-webrtc/ios", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - ); INFOPLIST_FILE = src/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = "$(inherited)"; OTHER_LDFLAGS = ( "$(inherited)", diff --git a/ios/scripts/bitcode.sh b/ios/scripts/bitcode.sh deleted file mode 100755 index 788a268ae..000000000 --- a/ios/scripts/bitcode.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# This script will download a bitcode build of the WebRTC framework, if needed. - -if [[ ! "$CONFIGURATION" = "Debug" ]]; then - RN_WEBRTC="$SRCROOT/../../node_modules/react-native-webrtc" - - if otool -arch arm64 -l $RN_WEBRTC/ios/WebRTC.framework/WebRTC | grep -q LLVM; then - echo "WebRTC framework has bitcode" - else - echo "WebRTC framework has NO bitcode" - $RN_WEBRTC/tools/downloadBitcode.sh - fi -fi - diff --git a/ios/scripts/fixup-frameworks.sh b/ios/scripts/fixup-frameworks.sh deleted file mode 100755 index c8b43d049..000000000 --- a/ios/scripts/fixup-frameworks.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -# This script gets executed from Xcode to fixup the embedded frameworks and -# bundle the necessary architectures. - - -APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" - -# This script loops through the frameworks embedded in the application and -# removes unused architectures. -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" - - EXTRACTED_ARCHS=() - - for ARCH in $ARCHS - do - if lipo -info "$FRAMEWORK_EXECUTABLE_PATH" | grep -q -v "^Non-fat" - then - echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME" - lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH" - EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH") - fi - done - - if [ -n "$EXTRACTED_ARCHS" ] - then - 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" - fi -done diff --git a/ios/scripts/release-sdk.sh b/ios/scripts/release-sdk.sh index c1285fce6..0803cca5b 100755 --- a/ios/scripts/release-sdk.sh +++ b/ios/scripts/release-sdk.sh @@ -24,8 +24,36 @@ popd # Build the SDK pushd ${PROJECT_REPO} -rm -rf ios/sdk/JitsiMeet.framework -xcodebuild -workspace ios/jitsi-meet.xcworkspace -scheme JitsiMeet -destination='generic/platform=iOS' -configuration Release ENABLE_BITCODE=NO clean archive +rm -rf ios/sdk/out +xcodebuild clean \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeet +xcodebuild archive \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeet \ + -configuration 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 archive \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeet \ + -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/JitsiMeet.framework \ + -framework ios/sdk/out/ios-simulator.xcarchive/Products/Library/Frameworks/JitsiMeet.framework \ + -output ios/sdk/out/JitsiMeet.xcframework if [[ $DO_GIT_TAG == 1 ]]; then git tag ios-sdk-${SDK_VERSION} fi @@ -34,12 +62,8 @@ popd pushd ${RELEASE_REPO} # Put the new files in the repo -cp -r ${PROJECT_REPO}/ios/sdk/JitsiMeet.framework Frameworks/ -cp -r ${PROJECT_REPO}/node_modules/react-native-webrtc/ios/WebRTC.framework Frameworks/ - -# Strip bitcode -xcrun bitcode_strip -r Frameworks/JitsiMeet.framework/JitsiMeet -o Frameworks/JitsiMeet.framework/JitsiMeet -xcrun bitcode_strip -r Frameworks/WebRTC.framework/WebRTC -o Frameworks/WebRTC.framework/WebRTC +cp -a ${PROJECT_REPO}/ios/sdk/out/JitsiMeet.xcframework Frameworks/ +cp -a ${PROJECT_REPO}/node_modules/react-native-webrtc/apple/WebRTC.xcframework Frameworks/ # Add all files to git if [[ $DO_GIT_TAG == 1 ]]; then diff --git a/ios/sdk/sdk.xcodeproj/project.pbxproj b/ios/sdk/sdk.xcodeproj/project.pbxproj index c899d49e7..00ec1dfb7 100644 --- a/ios/sdk/sdk.xcodeproj/project.pbxproj +++ b/ios/sdk/sdk.xcodeproj/project.pbxproj @@ -321,7 +321,6 @@ buildConfigurationList = 0BD906ED1EC0C00300C8C18E /* Build configuration list for PBXNativeTarget "JitsiMeet" */; buildPhases = ( 26796D8589142D80C8AFDA51 /* [CP] Check Pods Manifest.lock */, - DE3D81D6228B50FB00A6C149 /* Bitcode */, 0BD906E01EC0C00300C8C18E /* Sources */, 0BD906E11EC0C00300C8C18E /* Frameworks */, 0BD906E21EC0C00300C8C18E /* Headers */, @@ -454,24 +453,6 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet-resources.sh\"\n"; showEnvVarsInLog = 0; }; - DE3D81D6228B50FB00A6C149 /* Bitcode */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = Bitcode; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "../scripts/bitcode.sh\n"; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -635,7 +616,6 @@ baseConfigurationReference = 98E09B5C73D9036B4ED252FC /* Pods-JitsiMeet.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -646,7 +626,6 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_BITCODE = NO; INFOPLIST_FILE = src/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.JitsiMeetSDK.ios; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -655,7 +634,6 @@ SUPPORTS_MACCATALYST = NO; SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; SWIFT_VERSION = 5.0; }; name = Debug; @@ -665,7 +643,6 @@ baseConfigurationReference = 9C77CA3CC919B081F1A52982 /* Pods-JitsiMeet.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -676,7 +653,6 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_BITCODE = YES; INFOPLIST_FILE = src/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.JitsiMeetSDK.ios; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -684,7 +660,6 @@ SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SWIFT_OBJC_BRIDGING_HEADER = ""; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; SWIFT_VERSION = 5.0; }; name = Release; diff --git a/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme b/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme index 8ca2c9432..aa11b3ecb 100644 --- a/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme +++ b/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme @@ -1,7 +1,7 @@ + version = "1.3"> @@ -72,23 +72,5 @@ - - - - - - - - - - diff --git a/package-lock.json b/package-lock.json index 9a7ef5723..eb7a684a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6989,6 +6989,11 @@ "gud": "^1.0.0" } }, + "cross-os": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/cross-os/-/cross-os-1.3.0.tgz", + "integrity": "sha512-9kViqCcAwlPLTeSDPlyC2FdMQ5UVPtGZUnGV8vYDcBA3olJ/hDR7H6IfrNJft2DlKONleHf8CMhD+7Uv2tBnEw==" + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -14279,11 +14284,12 @@ "integrity": "sha512-iqdJ1KpZbR4XGahgVmaeibB7kDhyMT7wrylINgJaYBY38IAiI0LF32VX1umO4pko6n21YF5I/kSeNQ+OXGqqow==" }, "react-native-webrtc": { - "version": "1.84.1", - "resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-1.84.1.tgz", - "integrity": "sha512-ewZBgKE+YhLaivo9Wh6aiaEp8ZRvFMqblrkDl1nptQiNNH6CungoAzSOxGDnHWAxepRfiUrW5qnADrsYKmaNeQ==", + "version": "1.87.1", + "resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-1.87.1.tgz", + "integrity": "sha512-XIztid40ohLUoOIDqpavskyAPzopWIjNOoC/y3AtTymt+o+W/rIHZ9Qw8JZCaIjWh2AIrcO2wtb/f1aMWSz2Zw==", "requires": { "base64-js": "^1.1.2", + "cross-os": "^1.3.0", "event-target-shim": "^1.0.5", "prop-types": "^15.5.10", "uuid": "^3.3.2" diff --git a/package.json b/package.json index c48e9e662..d0285f87b 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "react-native-svg-transformer": "0.14.3", "react-native-url-polyfill": "1.2.0", "react-native-watch-connectivity": "0.4.3", - "react-native-webrtc": "1.84.1", + "react-native-webrtc": "1.87.1", "react-native-webview": "10.9.0", "react-native-youtube-iframe": "1.2.3", "react-redux": "7.1.0",