Skip to content

Commit f6fa903

Browse files
committed
feat(rn) switch to XCFramework and WebRTC M87
1 parent 3796db2 commit f6fa903

File tree

11 files changed

+78
-175
lines changed

11 files changed

+78
-175
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ buck-out/
6969
*.framework
7070
android/app/debug
7171
android/app/release
72+
ios/sdk/out
7273

7374
# precommit-hook
7475
.jshintignore

ios/Podfile

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
platform :ios, '11.0'
22
workspace 'jitsi-meet'
33
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
4+
install! 'cocoapods', :deterministic_uuids => false
45

56
target 'jitsi-meet' do
67
project 'app/app.xcodeproj'

ios/Podfile.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ PODS:
293293
- React
294294
- react-native-splash-screen (3.2.0):
295295
- React
296-
- react-native-webrtc (1.84.1):
296+
- react-native-webrtc (1.87.1):
297297
- React-Core
298298
- react-native-webview (10.9.0):
299299
- React
@@ -562,7 +562,7 @@ SPEC CHECKSUMS:
562562
react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae
563563
react-native-netinfo: 8d8db463bcc5db66a8ac5c48a7d86beb3b92f61a
564564
react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
565-
react-native-webrtc: edd689b0d5a462d7a6f6f52bca3f9414fc0ee11c
565+
react-native-webrtc: 40eca4cac200fda34fb843da07e3402211bbbd10
566566
react-native-webview: 6ee7868ca8eba635dbf7963986d1ab7959da0391
567567
React-RCTActionSheet: bcbc311dc3b47bc8efb2737ff0940239a45789a9
568568
React-RCTAnimation: 65f61080ce632f6dea23d52e354ffac9948396c6
@@ -582,6 +582,6 @@ SPEC CHECKSUMS:
582582
RNWatch: a5320c959c75e72845c07985f3e935e58998f1d3
583583
Yoga: 96b469c5e81ff51b917b92e8c3390642d4ded30c
584584

585-
PODFILE CHECKSUM: f2400f8e5a52c4d91697cbacba6956569efc5ab8
585+
PODFILE CHECKSUM: f6626cd705333112182cedbe175ae2f9006e8874
586586

587-
COCOAPODS: 1.9.3
587+
COCOAPODS: 1.10.0

ios/app/app.xcodeproj/project.pbxproj

+29-61
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 46;
6+
objectVersion = 52;
77
objects = {
88

99
/* Begin PBXBuildFile section */
@@ -13,8 +13,6 @@
1313
0B412F211EDEE95300B1A0A6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0B412F201EDEE95300B1A0A6 /* Main.storyboard */; };
1414
0B5418471F7C5D8C00A2DD86 /* MeetingRowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B5418461F7C5D8C00A2DD86 /* MeetingRowController.swift */; };
1515
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, ); }; };
1816
0BEA5C291F7B8F73000D0AB4 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0BEA5C271F7B8F73000D0AB4 /* Interface.storyboard */; };
1917
0BEA5C2B1F7B8F73000D0AB4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0BEA5C2A1F7B8F73000D0AB4 /* Assets.xcassets */; };
2018
0BEA5C321F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0BEA5C311F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
@@ -28,6 +26,8 @@
2826
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
2927
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
3028
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, ); }; };
3131
DE4C456121DE1E4E00EA0709 /* FIRUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = DE4C455F21DE1E4E00EA0709 /* FIRUtilities.m */; };
3232
E588011722789D43008B0561 /* JitsiMeetContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = E58801132278944E008B0561 /* JitsiMeetContext.swift */; };
3333
E5C97B63227A1EB400199214 /* JitsiMeetCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5C97B62227A1EB400199214 /* JitsiMeetCommands.swift */; };
@@ -57,8 +57,8 @@
5757
dstPath = "";
5858
dstSubfolderSpec = 10;
5959
files = (
60+
DE05038A256E904600DEE3A5 /* WebRTC.xcframework in Embed Frameworks */,
6061
0B26BE6F1EC5BC3C00EEFB41 /* JitsiMeet.framework in Embed Frameworks */,
61-
0BD6B4381EF82A6B00D1F4CD /* WebRTC.framework in Embed Frameworks */,
6262
);
6363
name = "Embed Frameworks";
6464
runOnlyForDeploymentPostprocessing = 0;
@@ -117,8 +117,10 @@
117117
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>"; };
118118
489E8EFE2C720D10F5961AEF /* libPods-jitsi-meet.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-jitsi-meet.a"; sourceTree = BUILT_PRODUCTS_DIR; };
119119
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>"; };
120121
DE4C455F21DE1E4E00EA0709 /* FIRUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRUtilities.m; sourceTree = "<group>"; };
121122
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>"; };
122124
E58801132278944E008B0561 /* JitsiMeetContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiMeetContext.swift; sourceTree = "<group>"; };
123125
E5C97B62227A1EB400199214 /* JitsiMeetCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiMeetCommands.swift; sourceTree = "<group>"; };
124126
/* End PBXFileReference section */
@@ -136,8 +138,8 @@
136138
buildActionMask = 2147483647;
137139
files = (
138140
0B26BE6E1EC5BC3C00EEFB41 /* JitsiMeet.framework in Frameworks */,
139-
0BD6B4371EF82A6B00D1F4CD /* WebRTC.framework in Frameworks */,
140141
695AF3ED6F686F9C5EE40F9A /* libPods-jitsi-meet.a in Frameworks */,
142+
DE050389256E904600DEE3A5 /* WebRTC.xcframework in Frameworks */,
141143
);
142144
runOnlyForDeploymentPostprocessing = 0;
143145
};
@@ -154,7 +156,9 @@
154156
0B26BE711EC5BC4D00EEFB41 /* Frameworks */ = {
155157
isa = PBXGroup;
156158
children = (
159+
DE050388256E904600DEE3A5 /* WebRTC.xcframework */,
157160
0B26BE6D1EC5BC3C00EEFB41 /* JitsiMeet.framework */,
161+
DEFDBBDB25656E3B00344B23 /* WebRTC.xcframework */,
158162
0BD6B4361EF82A6B00D1F4CD /* WebRTC.framework */,
159163
489E8EFE2C720D10F5961AEF /* libPods-jitsi-meet.a */,
160164
);
@@ -290,8 +294,6 @@
290294
13B07F8C1A680F5B00A75B9A /* Frameworks */,
291295
13B07F8E1A680F5B00A75B9A /* Resources */,
292296
0B26BE701EC5BC3C00EEFB41 /* Embed Frameworks */,
293-
B35383AD1DDA0083008F406A /* Adjust embedded framework architectures */,
294-
DE3A859324C701EA009B7D76 /* Copy WebRTC dSYM */,
295297
0BB7DA181EC9E695007AAE98 /* Adjust ATS */,
296298
DEF4813D224925A2002AD03A /* Copy Google Plist file */,
297299
DE11877A21EE09640078D059 /* Setup Google reverse URL handler */,
@@ -420,20 +422,6 @@
420422
shellPath = /bin/sh;
421423
shellScript = "../scripts/run-packager.sh\n";
422424
};
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-
};
437425
B6607F42A5CF0C76E98929E2 /* [CP] Check Pods Manifest.lock */ = {
438426
isa = PBXShellScriptBuildPhase;
439427
buildActionMask = 2147483647;
@@ -474,24 +462,6 @@
474462
shellPath = /bin/sh;
475463
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";
476464
};
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-
};
495465
DE4F6D6E22005C0400DE699E /* Setup Dropbox */ = {
496466
isa = PBXShellScriptBuildPhase;
497467
buildActionMask = 2147483647;
@@ -652,7 +622,8 @@
652622
PRODUCT_NAME = "$(TARGET_NAME)";
653623
SDKROOT = watchos;
654624
SKIP_INSTALL = YES;
655-
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
625+
SWIFT_COMPILATION_MODE = wholemodule;
626+
SWIFT_OPTIMIZATION_LEVEL = "-O";
656627
SWIFT_VERSION = 5.0;
657628
TARGETED_DEVICE_FAMILY = 4;
658629
WATCHOS_DEPLOYMENT_TARGET = 4.0;
@@ -679,7 +650,11 @@
679650
DEVELOPMENT_TEAM = FC967L3QRG;
680651
GCC_C_LANGUAGE_STANDARD = gnu11;
681652
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+
);
683658
PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.watchkit.extension;
684659
PRODUCT_NAME = "${TARGET_NAME}";
685660
SDKROOT = watchos;
@@ -713,12 +688,17 @@
713688
DEVELOPMENT_TEAM = FC967L3QRG;
714689
GCC_C_LANGUAGE_STANDARD = gnu11;
715690
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+
);
717696
PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.watchkit.extension;
718697
PRODUCT_NAME = "${TARGET_NAME}";
719698
SDKROOT = watchos;
720699
SKIP_INSTALL = YES;
721-
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
700+
SWIFT_COMPILATION_MODE = wholemodule;
701+
SWIFT_OPTIMIZATION_LEVEL = "-O";
722702
SWIFT_VERSION = 5.0;
723703
TARGETED_DEVICE_FAMILY = 4;
724704
WATCHOS_DEPLOYMENT_TARGET = 4.0;
@@ -729,7 +709,6 @@
729709
isa = XCBuildConfiguration;
730710
baseConfigurationReference = 4670A512A688E2DC34528282 /* Pods-jitsi-meet.debug.xcconfig */;
731711
buildSettings = {
732-
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
733712
ASSETCATALOG_COMPILER_APPICON_NAME = AppIconDebug;
734713
CODE_SIGN_ENTITLEMENTS = app.entitlements;
735714
CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -738,16 +717,11 @@
738717
DEAD_CODE_STRIPPING = NO;
739718
DEVELOPMENT_TEAM = FC967L3QRG;
740719
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 = (
746722
"$(inherited)",
747-
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
723+
"@executable_path/Frameworks",
748724
);
749-
INFOPLIST_FILE = src/Info.plist;
750-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
751725
LIBRARY_SEARCH_PATHS = "$(inherited)";
752726
OTHER_LDFLAGS = (
753727
"$(inherited)",
@@ -764,24 +738,18 @@
764738
isa = XCBuildConfiguration;
765739
baseConfigurationReference = 09AA3B93E4CC62D84B424690 /* Pods-jitsi-meet.release.xcconfig */;
766740
buildSettings = {
767-
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
768741
ASSETCATALOG_COMPILER_APPICON_NAME = AppIconRelease;
769742
CODE_SIGN_ENTITLEMENTS = app.entitlements;
770743
CODE_SIGN_IDENTITY = "iPhone Developer";
771744
CODE_SIGN_STYLE = Automatic;
772745
CURRENT_PROJECT_VERSION = 1;
773746
DEVELOPMENT_TEAM = FC967L3QRG;
774747
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 = (
780750
"$(inherited)",
781-
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
751+
"@executable_path/Frameworks",
782752
);
783-
INFOPLIST_FILE = src/Info.plist;
784-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
785753
LIBRARY_SEARCH_PATHS = "$(inherited)";
786754
OTHER_LDFLAGS = (
787755
"$(inherited)",

ios/scripts/bitcode.sh

-15
This file was deleted.

ios/scripts/fixup-frameworks.sh

-39
This file was deleted.

ios/scripts/release-sdk.sh

+32-8
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,36 @@ popd
2424

2525
# Build the SDK
2626
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
2957
if [[ $DO_GIT_TAG == 1 ]]; then
3058
git tag ios-sdk-${SDK_VERSION}
3159
fi
@@ -34,12 +62,8 @@ popd
3462
pushd ${RELEASE_REPO}
3563

3664
# 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/
4367

4468
# Add all files to git
4569
if [[ $DO_GIT_TAG == 1 ]]; then

0 commit comments

Comments
 (0)