Browse Source

feat(rn) switch to XCFramework and WebRTC M87

master
Saúl Ibarra Corretgé 3 years ago
parent
commit
f6fa903f8f

+ 1
- 0
.gitignore View File

@@ -69,6 +69,7 @@ buck-out/
69 69
 *.framework
70 70
 android/app/debug
71 71
 android/app/release
72
+ios/sdk/out
72 73
 
73 74
 # precommit-hook
74 75
 .jshintignore

+ 1
- 0
ios/Podfile View File

@@ -1,6 +1,7 @@
1 1
 platform :ios, '11.0'
2 2
 workspace 'jitsi-meet'
3 3
 require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
4
+install! 'cocoapods', :deterministic_uuids => false
4 5
 
5 6
 target 'jitsi-meet' do
6 7
   project 'app/app.xcodeproj'

+ 4
- 4
ios/Podfile.lock View File

@@ -293,7 +293,7 @@ PODS:
293 293
     - React
294 294
   - react-native-splash-screen (3.2.0):
295 295
     - React
296
-  - react-native-webrtc (1.84.1):
296
+  - react-native-webrtc (1.87.1):
297 297
     - React-Core
298 298
   - react-native-webview (10.9.0):
299 299
     - React
@@ -562,7 +562,7 @@ SPEC CHECKSUMS:
562 562
   react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae
563 563
   react-native-netinfo: 8d8db463bcc5db66a8ac5c48a7d86beb3b92f61a
564 564
   react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
565
-  react-native-webrtc: edd689b0d5a462d7a6f6f52bca3f9414fc0ee11c
565
+  react-native-webrtc: 40eca4cac200fda34fb843da07e3402211bbbd10
566 566
   react-native-webview: 6ee7868ca8eba635dbf7963986d1ab7959da0391
567 567
   React-RCTActionSheet: bcbc311dc3b47bc8efb2737ff0940239a45789a9
568 568
   React-RCTAnimation: 65f61080ce632f6dea23d52e354ffac9948396c6
@@ -582,6 +582,6 @@ SPEC CHECKSUMS:
582 582
   RNWatch: a5320c959c75e72845c07985f3e935e58998f1d3
583 583
   Yoga: 96b469c5e81ff51b917b92e8c3390642d4ded30c
584 584
 
585
-PODFILE CHECKSUM: f2400f8e5a52c4d91697cbacba6956569efc5ab8
585
+PODFILE CHECKSUM: f6626cd705333112182cedbe175ae2f9006e8874
586 586
 
587
-COCOAPODS: 1.9.3
587
+COCOAPODS: 1.10.0

+ 29
- 61
ios/app/app.xcodeproj/project.pbxproj View File

@@ -3,7 +3,7 @@
3 3
 	archiveVersion = 1;
4 4
 	classes = {
5 5
 	};
6
-	objectVersion = 46;
6
+	objectVersion = 52;
7 7
 	objects = {
8 8
 
9 9
 /* Begin PBXBuildFile section */
@@ -13,8 +13,6 @@
13 13
 		0B412F211EDEE95300B1A0A6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0B412F201EDEE95300B1A0A6 /* Main.storyboard */; };
14 14
 		0B5418471F7C5D8C00A2DD86 /* MeetingRowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B5418461F7C5D8C00A2DD86 /* MeetingRowController.swift */; };
15 15
 		0B7001701F7C51CC005944F4 /* InCallController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B70016F1F7C51CC005944F4 /* InCallController.swift */; };
16
-		0BD6B4371EF82A6B00D1F4CD /* WebRTC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BD6B4361EF82A6B00D1F4CD /* WebRTC.framework */; };
17
-		0BD6B4381EF82A6B00D1F4CD /* WebRTC.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0BD6B4361EF82A6B00D1F4CD /* WebRTC.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
18 16
 		0BEA5C291F7B8F73000D0AB4 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0BEA5C271F7B8F73000D0AB4 /* Interface.storyboard */; };
19 17
 		0BEA5C2B1F7B8F73000D0AB4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0BEA5C2A1F7B8F73000D0AB4 /* Assets.xcassets */; };
20 18
 		0BEA5C321F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0BEA5C311F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
@@ -28,6 +26,8 @@
28 26
 		13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
29 27
 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
30 28
 		695AF3ED6F686F9C5EE40F9A /* libPods-jitsi-meet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 489E8EFE2C720D10F5961AEF /* libPods-jitsi-meet.a */; };
29
+		DE050389256E904600DEE3A5 /* WebRTC.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE050388256E904600DEE3A5 /* WebRTC.xcframework */; };
30
+		DE05038A256E904600DEE3A5 /* WebRTC.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DE050388256E904600DEE3A5 /* WebRTC.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
31 31
 		DE4C456121DE1E4E00EA0709 /* FIRUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = DE4C455F21DE1E4E00EA0709 /* FIRUtilities.m */; };
32 32
 		E588011722789D43008B0561 /* JitsiMeetContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = E58801132278944E008B0561 /* JitsiMeetContext.swift */; };
33 33
 		E5C97B63227A1EB400199214 /* JitsiMeetCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5C97B62227A1EB400199214 /* JitsiMeetCommands.swift */; };
@@ -57,8 +57,8 @@
57 57
 			dstPath = "";
58 58
 			dstSubfolderSpec = 10;
59 59
 			files = (
60
+				DE05038A256E904600DEE3A5 /* WebRTC.xcframework in Embed Frameworks */,
60 61
 				0B26BE6F1EC5BC3C00EEFB41 /* JitsiMeet.framework in Embed Frameworks */,
61
-				0BD6B4381EF82A6B00D1F4CD /* WebRTC.framework in Embed Frameworks */,
62 62
 			);
63 63
 			name = "Embed Frameworks";
64 64
 			runOnlyForDeploymentPostprocessing = 0;
@@ -117,8 +117,10 @@
117 117
 		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 = "<group>"; };
118 118
 		489E8EFE2C720D10F5961AEF /* libPods-jitsi-meet.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-jitsi-meet.a"; sourceTree = BUILT_PRODUCTS_DIR; };
119 119
 		B3B083EB1D4955FF0069CEE7 /* app.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = app.entitlements; sourceTree = "<group>"; };
120
+		DE050388256E904600DEE3A5 /* WebRTC.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = WebRTC.xcframework; path = "../../node_modules/react-native-webrtc/apple/WebRTC.xcframework"; sourceTree = "<group>"; };
120 121
 		DE4C455F21DE1E4E00EA0709 /* FIRUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRUtilities.m; sourceTree = "<group>"; };
121 122
 		DE4C456021DE1E4E00EA0709 /* FIRUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIRUtilities.h; sourceTree = "<group>"; };
123
+		DEFDBBDB25656E3B00344B23 /* WebRTC.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = WebRTC.xcframework; path = "../../node_modules/react-native-webrtc/ios/WebRTC.xcframework"; sourceTree = "<group>"; };
122 124
 		E58801132278944E008B0561 /* JitsiMeetContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiMeetContext.swift; sourceTree = "<group>"; };
123 125
 		E5C97B62227A1EB400199214 /* JitsiMeetCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiMeetCommands.swift; sourceTree = "<group>"; };
124 126
 /* End PBXFileReference section */
@@ -136,8 +138,8 @@
136 138
 			buildActionMask = 2147483647;
137 139
 			files = (
138 140
 				0B26BE6E1EC5BC3C00EEFB41 /* JitsiMeet.framework in Frameworks */,
139
-				0BD6B4371EF82A6B00D1F4CD /* WebRTC.framework in Frameworks */,
140 141
 				695AF3ED6F686F9C5EE40F9A /* libPods-jitsi-meet.a in Frameworks */,
142
+				DE050389256E904600DEE3A5 /* WebRTC.xcframework in Frameworks */,
141 143
 			);
142 144
 			runOnlyForDeploymentPostprocessing = 0;
143 145
 		};
@@ -154,7 +156,9 @@
154 156
 		0B26BE711EC5BC4D00EEFB41 /* Frameworks */ = {
155 157
 			isa = PBXGroup;
156 158
 			children = (
159
+				DE050388256E904600DEE3A5 /* WebRTC.xcframework */,
157 160
 				0B26BE6D1EC5BC3C00EEFB41 /* JitsiMeet.framework */,
161
+				DEFDBBDB25656E3B00344B23 /* WebRTC.xcframework */,
158 162
 				0BD6B4361EF82A6B00D1F4CD /* WebRTC.framework */,
159 163
 				489E8EFE2C720D10F5961AEF /* libPods-jitsi-meet.a */,
160 164
 			);
@@ -290,8 +294,6 @@
290 294
 				13B07F8C1A680F5B00A75B9A /* Frameworks */,
291 295
 				13B07F8E1A680F5B00A75B9A /* Resources */,
292 296
 				0B26BE701EC5BC3C00EEFB41 /* Embed Frameworks */,
293
-				B35383AD1DDA0083008F406A /* Adjust embedded framework architectures */,
294
-				DE3A859324C701EA009B7D76 /* Copy WebRTC dSYM */,
295 297
 				0BB7DA181EC9E695007AAE98 /* Adjust ATS */,
296 298
 				DEF4813D224925A2002AD03A /* Copy Google Plist file */,
297 299
 				DE11877A21EE09640078D059 /* Setup Google reverse URL handler */,
@@ -420,20 +422,6 @@
420 422
 			shellPath = /bin/sh;
421 423
 			shellScript = "../scripts/run-packager.sh\n";
422 424
 		};
423
-		B35383AD1DDA0083008F406A /* Adjust embedded framework architectures */ = {
424
-			isa = PBXShellScriptBuildPhase;
425
-			buildActionMask = 2147483647;
426
-			files = (
427
-			);
428
-			inputPaths = (
429
-			);
430
-			name = "Adjust embedded framework architectures";
431
-			outputPaths = (
432
-			);
433
-			runOnlyForDeploymentPostprocessing = 0;
434
-			shellPath = /bin/sh;
435
-			shellScript = "../scripts/fixup-frameworks.sh\n";
436
-		};
437 425
 		B6607F42A5CF0C76E98929E2 /* [CP] Check Pods Manifest.lock */ = {
438 426
 			isa = PBXShellScriptBuildPhase;
439 427
 			buildActionMask = 2147483647;
@@ -474,24 +462,6 @@
474 462
 			shellPath = /bin/sh;
475 463
 			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";
476 464
 		};
477
-		DE3A859324C701EA009B7D76 /* Copy WebRTC dSYM */ = {
478
-			isa = PBXShellScriptBuildPhase;
479
-			buildActionMask = 2147483647;
480
-			files = (
481
-			);
482
-			inputFileListPaths = (
483
-			);
484
-			inputPaths = (
485
-			);
486
-			name = "Copy WebRTC dSYM";
487
-			outputFileListPaths = (
488
-			);
489
-			outputPaths = (
490
-			);
491
-			runOnlyForDeploymentPostprocessing = 0;
492
-			shellPath = /bin/sh;
493
-			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";
494
-		};
495 465
 		DE4F6D6E22005C0400DE699E /* Setup Dropbox */ = {
496 466
 			isa = PBXShellScriptBuildPhase;
497 467
 			buildActionMask = 2147483647;
@@ -652,7 +622,8 @@
652 622
 				PRODUCT_NAME = "$(TARGET_NAME)";
653 623
 				SDKROOT = watchos;
654 624
 				SKIP_INSTALL = YES;
655
-				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
625
+				SWIFT_COMPILATION_MODE = wholemodule;
626
+				SWIFT_OPTIMIZATION_LEVEL = "-O";
656 627
 				SWIFT_VERSION = 5.0;
657 628
 				TARGETED_DEVICE_FAMILY = 4;
658 629
 				WATCHOS_DEPLOYMENT_TARGET = 4.0;
@@ -679,7 +650,11 @@
679 650
 				DEVELOPMENT_TEAM = FC967L3QRG;
680 651
 				GCC_C_LANGUAGE_STANDARD = gnu11;
681 652
 				INFOPLIST_FILE = watchos/extension/Info.plist;
682
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
653
+				LD_RUNPATH_SEARCH_PATHS = (
654
+					"$(inherited)",
655
+					"@executable_path/Frameworks",
656
+					"@executable_path/../../Frameworks",
657
+				);
683 658
 				PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.watchkit.extension;
684 659
 				PRODUCT_NAME = "${TARGET_NAME}";
685 660
 				SDKROOT = watchos;
@@ -713,12 +688,17 @@
713 688
 				DEVELOPMENT_TEAM = FC967L3QRG;
714 689
 				GCC_C_LANGUAGE_STANDARD = gnu11;
715 690
 				INFOPLIST_FILE = watchos/extension/Info.plist;
716
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
691
+				LD_RUNPATH_SEARCH_PATHS = (
692
+					"$(inherited)",
693
+					"@executable_path/Frameworks",
694
+					"@executable_path/../../Frameworks",
695
+				);
717 696
 				PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.watchkit.extension;
718 697
 				PRODUCT_NAME = "${TARGET_NAME}";
719 698
 				SDKROOT = watchos;
720 699
 				SKIP_INSTALL = YES;
721
-				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
700
+				SWIFT_COMPILATION_MODE = wholemodule;
701
+				SWIFT_OPTIMIZATION_LEVEL = "-O";
722 702
 				SWIFT_VERSION = 5.0;
723 703
 				TARGETED_DEVICE_FAMILY = 4;
724 704
 				WATCHOS_DEPLOYMENT_TARGET = 4.0;
@@ -729,7 +709,6 @@
729 709
 			isa = XCBuildConfiguration;
730 710
 			baseConfigurationReference = 4670A512A688E2DC34528282 /* Pods-jitsi-meet.debug.xcconfig */;
731 711
 			buildSettings = {
732
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
733 712
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIconDebug;
734 713
 				CODE_SIGN_ENTITLEMENTS = app.entitlements;
735 714
 				CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -738,16 +717,11 @@
738 717
 				DEAD_CODE_STRIPPING = NO;
739 718
 				DEVELOPMENT_TEAM = FC967L3QRG;
740 719
 				ENABLE_BITCODE = NO;
741
-				FRAMEWORK_SEARCH_PATHS = (
742
-					"$(inherited)",
743
-					"../../node_modules/react-native-webrtc/ios",
744
-				);
745
-				HEADER_SEARCH_PATHS = (
720
+				INFOPLIST_FILE = src/Info.plist;
721
+				LD_RUNPATH_SEARCH_PATHS = (
746 722
 					"$(inherited)",
747
-					/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
723
+					"@executable_path/Frameworks",
748 724
 				);
749
-				INFOPLIST_FILE = src/Info.plist;
750
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
751 725
 				LIBRARY_SEARCH_PATHS = "$(inherited)";
752 726
 				OTHER_LDFLAGS = (
753 727
 					"$(inherited)",
@@ -764,7 +738,6 @@
764 738
 			isa = XCBuildConfiguration;
765 739
 			baseConfigurationReference = 09AA3B93E4CC62D84B424690 /* Pods-jitsi-meet.release.xcconfig */;
766 740
 			buildSettings = {
767
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
768 741
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIconRelease;
769 742
 				CODE_SIGN_ENTITLEMENTS = app.entitlements;
770 743
 				CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -772,16 +745,11 @@
772 745
 				CURRENT_PROJECT_VERSION = 1;
773 746
 				DEVELOPMENT_TEAM = FC967L3QRG;
774 747
 				ENABLE_BITCODE = YES;
775
-				FRAMEWORK_SEARCH_PATHS = (
776
-					"$(inherited)",
777
-					"../../node_modules/react-native-webrtc/ios",
778
-				);
779
-				HEADER_SEARCH_PATHS = (
748
+				INFOPLIST_FILE = src/Info.plist;
749
+				LD_RUNPATH_SEARCH_PATHS = (
780 750
 					"$(inherited)",
781
-					/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
751
+					"@executable_path/Frameworks",
782 752
 				);
783
-				INFOPLIST_FILE = src/Info.plist;
784
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
785 753
 				LIBRARY_SEARCH_PATHS = "$(inherited)";
786 754
 				OTHER_LDFLAGS = (
787 755
 					"$(inherited)",

+ 0
- 15
ios/scripts/bitcode.sh View File

@@ -1,15 +0,0 @@
1
-#!/bin/bash
2
-
3
-# This script will download a bitcode build of the WebRTC framework, if needed.
4
-
5
-if [[ ! "$CONFIGURATION" = "Debug" ]]; then
6
-    RN_WEBRTC="$SRCROOT/../../node_modules/react-native-webrtc"
7
-
8
-    if otool -arch arm64 -l $RN_WEBRTC/ios/WebRTC.framework/WebRTC | grep -q LLVM; then
9
-        echo "WebRTC framework has bitcode"
10
-    else
11
-        echo "WebRTC framework has NO bitcode"
12
-        $RN_WEBRTC/tools/downloadBitcode.sh
13
-    fi
14
-fi
15
-

+ 0
- 39
ios/scripts/fixup-frameworks.sh View File

@@ -1,39 +0,0 @@
1
-#!/bin/bash
2
-
3
-# This script gets executed from Xcode to fixup the embedded frameworks and
4
-# bundle the necessary architectures.
5
-
6
-
7
-APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
8
-
9
-# This script loops through the frameworks embedded in the application and
10
-# removes unused architectures.
11
-find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
12
-do
13
-    FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
14
-    FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
15
-    echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
16
-
17
-    EXTRACTED_ARCHS=()
18
-
19
-    for ARCH in $ARCHS
20
-    do
21
-        if lipo -info "$FRAMEWORK_EXECUTABLE_PATH" | grep -q -v "^Non-fat"
22
-        then
23
-            echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
24
-            lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
25
-            EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
26
-        fi
27
-    done
28
-
29
-    if [ -n "$EXTRACTED_ARCHS" ]
30
-    then
31
-        echo "Merging extracted architectures: ${ARCHS}"
32
-        lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
33
-        rm "${EXTRACTED_ARCHS[@]}"
34
-
35
-        echo "Replacing original executable with thinned version"
36
-        rm "$FRAMEWORK_EXECUTABLE_PATH"
37
-        mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
38
-    fi
39
-done

+ 32
- 8
ios/scripts/release-sdk.sh View File

@@ -24,8 +24,36 @@ popd
24 24
 
25 25
 # Build the SDK
26 26
 pushd ${PROJECT_REPO}
27
-rm -rf ios/sdk/JitsiMeet.framework
28
-xcodebuild -workspace ios/jitsi-meet.xcworkspace -scheme JitsiMeet -destination='generic/platform=iOS' -configuration Release ENABLE_BITCODE=NO clean archive
27
+rm -rf ios/sdk/out
28
+xcodebuild clean \
29
+    -workspace ios/jitsi-meet.xcworkspace \
30
+    -scheme JitsiMeet
31
+xcodebuild archive \
32
+    -workspace ios/jitsi-meet.xcworkspace \
33
+    -scheme JitsiMeet  \
34
+    -configuration Release \
35
+    -sdk iphonesimulator \
36
+    -destination='generic/platform=iOS Simulator' \
37
+    -archivePath ios/sdk/out/ios-simulator \
38
+    VALID_ARCHS=x86_64 \
39
+    ENABLE_BITCODE=NO \
40
+    SKIP_INSTALL=NO \
41
+    BUILD_LIBRARY_FOR_DISTRIBUTION=YES
42
+xcodebuild archive \
43
+    -workspace ios/jitsi-meet.xcworkspace \
44
+    -scheme JitsiMeet  \
45
+    -configuration Release \
46
+    -sdk iphoneos \
47
+    -destination='generic/platform=iOS' \
48
+    -archivePath ios/sdk/out/ios-device \
49
+    VALID_ARCHS=arm64 \
50
+    ENABLE_BITCODE=NO \
51
+    SKIP_INSTALL=NO \
52
+    BUILD_LIBRARY_FOR_DISTRIBUTION=YES
53
+xcodebuild -create-xcframework \
54
+    -framework ios/sdk/out/ios-device.xcarchive/Products/Library/Frameworks/JitsiMeet.framework \
55
+    -framework ios/sdk/out/ios-simulator.xcarchive/Products/Library/Frameworks/JitsiMeet.framework \
56
+    -output ios/sdk/out/JitsiMeet.xcframework
29 57
 if [[ $DO_GIT_TAG == 1 ]]; then
30 58
     git tag ios-sdk-${SDK_VERSION}
31 59
 fi
@@ -34,12 +62,8 @@ popd
34 62
 pushd ${RELEASE_REPO}
35 63
 
36 64
 # Put the new files in the repo
37
-cp -r ${PROJECT_REPO}/ios/sdk/JitsiMeet.framework Frameworks/
38
-cp -r ${PROJECT_REPO}/node_modules/react-native-webrtc/ios/WebRTC.framework Frameworks/
39
-
40
-# Strip bitcode
41
-xcrun bitcode_strip -r Frameworks/JitsiMeet.framework/JitsiMeet -o Frameworks/JitsiMeet.framework/JitsiMeet
42
-xcrun bitcode_strip -r Frameworks/WebRTC.framework/WebRTC -o Frameworks/WebRTC.framework/WebRTC
65
+cp -a ${PROJECT_REPO}/ios/sdk/out/JitsiMeet.xcframework Frameworks/
66
+cp -a ${PROJECT_REPO}/node_modules/react-native-webrtc/apple/WebRTC.xcframework Frameworks/
43 67
 
44 68
 # Add all files to git
45 69
 if [[ $DO_GIT_TAG == 1 ]]; then

+ 0
- 25
ios/sdk/sdk.xcodeproj/project.pbxproj View File

@@ -321,7 +321,6 @@
321 321
 			buildConfigurationList = 0BD906ED1EC0C00300C8C18E /* Build configuration list for PBXNativeTarget "JitsiMeet" */;
322 322
 			buildPhases = (
323 323
 				26796D8589142D80C8AFDA51 /* [CP] Check Pods Manifest.lock */,
324
-				DE3D81D6228B50FB00A6C149 /* Bitcode */,
325 324
 				0BD906E01EC0C00300C8C18E /* Sources */,
326 325
 				0BD906E11EC0C00300C8C18E /* Frameworks */,
327 326
 				0BD906E21EC0C00300C8C18E /* Headers */,
@@ -454,24 +453,6 @@
454 453
 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet-resources.sh\"\n";
455 454
 			showEnvVarsInLog = 0;
456 455
 		};
457
-		DE3D81D6228B50FB00A6C149 /* Bitcode */ = {
458
-			isa = PBXShellScriptBuildPhase;
459
-			buildActionMask = 2147483647;
460
-			files = (
461
-			);
462
-			inputFileListPaths = (
463
-			);
464
-			inputPaths = (
465
-			);
466
-			name = Bitcode;
467
-			outputFileListPaths = (
468
-			);
469
-			outputPaths = (
470
-			);
471
-			runOnlyForDeploymentPostprocessing = 0;
472
-			shellPath = /bin/sh;
473
-			shellScript = "../scripts/bitcode.sh\n";
474
-		};
475 456
 /* End PBXShellScriptBuildPhase section */
476 457
 
477 458
 /* Begin PBXSourcesBuildPhase section */
@@ -635,7 +616,6 @@
635 616
 			baseConfigurationReference = 98E09B5C73D9036B4ED252FC /* Pods-JitsiMeet.debug.xcconfig */;
636 617
 			buildSettings = {
637 618
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
638
-				BUILD_LIBRARY_FOR_DISTRIBUTION = NO;
639 619
 				CLANG_ENABLE_MODULES = YES;
640 620
 				CODE_SIGN_IDENTITY = "";
641 621
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
@@ -646,7 +626,6 @@
646 626
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
647 627
 				ENABLE_BITCODE = NO;
648 628
 				INFOPLIST_FILE = src/Info.plist;
649
-				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
650 629
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
651 630
 				PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.JitsiMeetSDK.ios;
652 631
 				PRODUCT_NAME = "$(TARGET_NAME)";
@@ -655,7 +634,6 @@
655 634
 				SUPPORTS_MACCATALYST = NO;
656 635
 				SWIFT_OBJC_BRIDGING_HEADER = "";
657 636
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
658
-				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
659 637
 				SWIFT_VERSION = 5.0;
660 638
 			};
661 639
 			name = Debug;
@@ -665,7 +643,6 @@
665 643
 			baseConfigurationReference = 9C77CA3CC919B081F1A52982 /* Pods-JitsiMeet.release.xcconfig */;
666 644
 			buildSettings = {
667 645
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
668
-				BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
669 646
 				CLANG_ENABLE_MODULES = YES;
670 647
 				CODE_SIGN_IDENTITY = "";
671 648
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
@@ -676,7 +653,6 @@
676 653
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
677 654
 				ENABLE_BITCODE = YES;
678 655
 				INFOPLIST_FILE = src/Info.plist;
679
-				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
680 656
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
681 657
 				PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.JitsiMeetSDK.ios;
682 658
 				PRODUCT_NAME = "$(TARGET_NAME)";
@@ -684,7 +660,6 @@
684 660
 				SKIP_INSTALL = YES;
685 661
 				SUPPORTS_MACCATALYST = NO;
686 662
 				SWIFT_OBJC_BRIDGING_HEADER = "";
687
-				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
688 663
 				SWIFT_VERSION = 5.0;
689 664
 			};
690 665
 			name = Release;

+ 1
- 19
ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme View File

@@ -1,7 +1,7 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <Scheme
3 3
    LastUpgradeVersion = "1020"
4
-   version = "1.7">
4
+   version = "1.3">
5 5
    <BuildAction
6 6
       parallelizeBuildables = "YES"
7 7
       buildImplicitDependencies = "YES">
@@ -72,23 +72,5 @@
72 72
    <ArchiveAction
73 73
       buildConfiguration = "Release"
74 74
       revealArchiveInOrganizer = "YES">
75
-      <PostActions>
76
-         <ExecutionAction
77
-            ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
78
-            <ActionContent
79
-               title = "Run Script"
80
-               scriptText = "exec &gt; /tmp/${PROJECT_NAME}_archive.log 2&gt;&amp;1&#10;&#10;UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal&#10;&#10;if [ &quot;true&quot; == ${ALREADYINVOKED:-false} ]&#10;then&#10;echo &quot;RECURSION: Detected, stopping&quot;&#10;else&#10;export ALREADYINVOKED=&quot;true&quot;&#10;&#10;# make sure the output directory exists&#10;mkdir -p &quot;${UNIVERSAL_OUTPUTFOLDER}&quot;&#10;&#10;echo &quot;Building for iPhoneSimulator&quot;&#10;xcodebuild -workspace &quot;${WORKSPACE_PATH}&quot; -scheme &quot;${TARGET_NAME}&quot; -configuration ${CONFIGURATION} -sdk iphonesimulator -destination &apos;platform=iOS Simulator,name=iPhone 8&apos; ONLY_ACTIVE_ARCH=NO ARCHS=&apos;x86_64&apos; BUILD_DIR=&quot;${BUILD_DIR}&quot; BUILD_ROOT=&quot;${BUILD_ROOT}&quot; ENABLE_BITCODE=YES OTHER_CFLAGS=&quot;-fembed-bitcode&quot; BITCODE_GENERATION_MODE=bitcode build&#10;&#10;# Step 1. Copy the framework structure (from iphoneos build) to the universal folder&#10;echo &quot;Copying to output folder&quot;&#10;cp -R &quot;${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FULL_PRODUCT_NAME}&quot; &quot;${UNIVERSAL_OUTPUTFOLDER}/&quot;&#10;&#10;# Step 2. Copy Swift modules from iphonesimulator build (if it exists) to the copied framework directory&#10;SIMULATOR_SWIFT_MODULES_DIR=&quot;${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework/Modules/${TARGET_NAME}.swiftmodule/.&quot;&#10;if [ -d &quot;${SIMULATOR_SWIFT_MODULES_DIR}&quot; ]; then&#10;cp -R &quot;${SIMULATOR_SWIFT_MODULES_DIR}&quot; &quot;${UNIVERSAL_OUTPUTFOLDER}/${TARGET_NAME}.framework/Modules/${TARGET_NAME}.swiftmodule&quot;&#10;fi&#10;&#10;# Step 3. Create universal binary file using lipo and place the combined executable in the copied framework directory&#10;echo &quot;Combining executables&quot;&#10;lipo -create -output &quot;${UNIVERSAL_OUTPUTFOLDER}/${EXECUTABLE_PATH}&quot; &quot;${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${EXECUTABLE_PATH}&quot; &quot;${BUILD_DIR}/${CONFIGURATION}-iphoneos/${EXECUTABLE_PATH}&quot;&#10;&#10;fi&#10;&#10;# Step 4. Convenience step to copy the framework to the project&amp;apos;s directory&#10;echo &quot;Copying to project dir&amp;quot&quot;&#10;yes | cp -Rf ${UNIVERSAL_OUTPUTFOLDER}/${FULL_PRODUCT_NAME} ${PROJECT_DIR}&#10;">
81
-               <EnvironmentBuildable>
82
-                  <BuildableReference
83
-                     BuildableIdentifier = "primary"
84
-                     BlueprintIdentifier = "0BD906E41EC0C00300C8C18E"
85
-                     BuildableName = "JitsiMeet.framework"
86
-                     BlueprintName = "JitsiMeet"
87
-                     ReferencedContainer = "container:sdk.xcodeproj">
88
-                  </BuildableReference>
89
-               </EnvironmentBuildable>
90
-            </ActionContent>
91
-         </ExecutionAction>
92
-      </PostActions>
93 75
    </ArchiveAction>
94 76
 </Scheme>

+ 9
- 3
package-lock.json View File

@@ -6989,6 +6989,11 @@
6989 6989
         "gud": "^1.0.0"
6990 6990
       }
6991 6991
     },
6992
+    "cross-os": {
6993
+      "version": "1.3.0",
6994
+      "resolved": "https://registry.npmjs.org/cross-os/-/cross-os-1.3.0.tgz",
6995
+      "integrity": "sha512-9kViqCcAwlPLTeSDPlyC2FdMQ5UVPtGZUnGV8vYDcBA3olJ/hDR7H6IfrNJft2DlKONleHf8CMhD+7Uv2tBnEw=="
6996
+    },
6992 6997
     "cross-spawn": {
6993 6998
       "version": "6.0.5",
6994 6999
       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -14279,11 +14284,12 @@
14279 14284
       "integrity": "sha512-iqdJ1KpZbR4XGahgVmaeibB7kDhyMT7wrylINgJaYBY38IAiI0LF32VX1umO4pko6n21YF5I/kSeNQ+OXGqqow=="
14280 14285
     },
14281 14286
     "react-native-webrtc": {
14282
-      "version": "1.84.1",
14283
-      "resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-1.84.1.tgz",
14284
-      "integrity": "sha512-ewZBgKE+YhLaivo9Wh6aiaEp8ZRvFMqblrkDl1nptQiNNH6CungoAzSOxGDnHWAxepRfiUrW5qnADrsYKmaNeQ==",
14287
+      "version": "1.87.1",
14288
+      "resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-1.87.1.tgz",
14289
+      "integrity": "sha512-XIztid40ohLUoOIDqpavskyAPzopWIjNOoC/y3AtTymt+o+W/rIHZ9Qw8JZCaIjWh2AIrcO2wtb/f1aMWSz2Zw==",
14285 14290
       "requires": {
14286 14291
         "base64-js": "^1.1.2",
14292
+        "cross-os": "^1.3.0",
14287 14293
         "event-target-shim": "^1.0.5",
14288 14294
         "prop-types": "^15.5.10",
14289 14295
         "uuid": "^3.3.2"

+ 1
- 1
package.json View File

@@ -84,7 +84,7 @@
84 84
     "react-native-svg-transformer": "0.14.3",
85 85
     "react-native-url-polyfill": "1.2.0",
86 86
     "react-native-watch-connectivity": "0.4.3",
87
-    "react-native-webrtc": "1.84.1",
87
+    "react-native-webrtc": "1.87.1",
88 88
     "react-native-webview": "10.9.0",
89 89
     "react-native-youtube-iframe": "1.2.3",
90 90
     "react-redux": "7.1.0",

Loading…
Cancel
Save