agora-appbuilder-core 4.1.29 → 4.1.30-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +2 -0
- package/package.json +1 -1
- package/template/Gulpfile.js +34 -0
- package/template/_package-lock.json +2491 -3084
- package/template/android/app/build.gradle +33 -23
- package/template/android/app/src/main/AndroidManifest.xml +5 -3
- package/template/android/app/src/main/java/com/helloworld/MainApplication.java +14 -2
- package/template/android/build.gradle +42 -7
- package/template/android/gradle/wrapper/gradle-wrapper.properties +3 -3
- package/template/android/gradle.properties +0 -3
- package/template/android/settings.gradle +4 -2
- package/template/babel.config.js +1 -1
- package/template/defaultConfig.js +2 -2
- package/template/ios/HelloWorld.xcodeproj/project.pbxproj +8 -6
- package/template/ios/Podfile +3 -45
- package/template/ios/Podfile.lock +1806 -524
- package/template/metro.config.js +6 -1
- package/template/package.json +28 -20
- package/template/patches/@supersami+rn-foreground-service+1.1.1.patch +12 -0
- package/template/scripts/verify-android-native-libs.py +106 -0
- package/template/src/AppWrapper.tsx +2 -7
- package/template/src/atoms/Carousel.native.tsx +22 -5
- package/template/src/atoms/CustomSwitch.tsx +0 -1
- package/template/src/atoms/Dropdown.tsx +0 -1
- package/template/src/atoms/MeetingLink.tsx +5 -12
- package/template/src/atoms/Popup.tsx +26 -2
- package/template/src/components/AppSafeAreaView.android.tsx +15 -0
- package/template/src/components/AppSafeAreaView.tsx +1 -0
- package/template/src/components/Precall.native.tsx +40 -10
- package/template/src/components/Share.tsx +27 -6
- package/template/src/components/meeting-info-invite/MeetingInfo.tsx +21 -3
- package/template/src/components/meeting-info-invite/MeetingInfoGridTile.tsx +11 -2
- package/template/src/components/useVideoCall.tsx +35 -1
- package/template/src/language/default-labels/joinScreenLabels.ts +2 -2
- package/template/src/pages/Create.tsx +26 -3
- package/template/src/pages/video-call/ActionSheet.native.tsx +11 -11
- package/template/src/pages/video-call/VideoCallScreen.native.tsx +34 -5
- package/template/src/pages/video-call/__tests__/VideoCallScreen.native.test.tsx +95 -0
- package/template/src/subComponents/Clipboard.native.tsx +1 -1
- package/template/src/subComponents/caption/CaptionIcon.tsx +11 -14
- package/template/src/subComponents/caption/TranscriptIcon.tsx +10 -14
- package/template/src/utils/useIsTablet.ts +10 -0
- package/template/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java +0 -75
- package/template/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java +0 -20
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
apply plugin: "com.android.application"
|
|
2
2
|
apply plugin: "com.facebook.react"
|
|
3
3
|
|
|
4
|
+
dependencies {
|
|
5
|
+
// Declare before autolinking: pickFirst must select this shared AOSL version,
|
|
6
|
+
// rather than the older copy bundled in RTM. RTC and Chat need its new symbols.
|
|
7
|
+
// https://doc.shengwang.cn/faq/integration-issues/rtm2-rtc-integration-issue
|
|
8
|
+
implementation("io.agora.infra:aosl:1.3.5")
|
|
9
|
+
}
|
|
10
|
+
|
|
4
11
|
/**
|
|
5
12
|
* This is the configuration block to customize your React Native Android app.
|
|
6
13
|
* By default you don't need to apply any configuration, just uncomment the lines you need.
|
|
7
14
|
*/
|
|
8
15
|
react {
|
|
16
|
+
autolinkLibrariesWithApp()
|
|
17
|
+
// Bound Metro's memory use while Gradle compiles native modules in parallel.
|
|
18
|
+
extraPackagerArgs = ["--max-workers", "4"]
|
|
9
19
|
/* Folders */
|
|
10
20
|
// The root of your project, i.e. where "package.json" lives. Default is '..'
|
|
11
21
|
// root = file("../")
|
|
@@ -68,6 +78,18 @@ def enableProguardInReleaseBuilds = false
|
|
|
68
78
|
*/
|
|
69
79
|
def jscFlavor = 'org.webkit:android-jsc:+'
|
|
70
80
|
|
|
81
|
+
// Supply these through ~/.gradle/gradle.properties or environment variables.
|
|
82
|
+
def uploadSigning = [
|
|
83
|
+
storeFile: providers.gradleProperty('APPBUILDER_UPLOAD_STORE_FILE').orElse(providers.environmentVariable('APPBUILDER_UPLOAD_STORE_FILE')).orNull,
|
|
84
|
+
storePassword: providers.gradleProperty('APPBUILDER_UPLOAD_STORE_PASSWORD').orElse(providers.environmentVariable('APPBUILDER_UPLOAD_STORE_PASSWORD')).orNull,
|
|
85
|
+
keyAlias: providers.gradleProperty('APPBUILDER_UPLOAD_KEY_ALIAS').orElse(providers.environmentVariable('APPBUILDER_UPLOAD_KEY_ALIAS')).orNull,
|
|
86
|
+
keyPassword: providers.gradleProperty('APPBUILDER_UPLOAD_KEY_PASSWORD').orElse(providers.environmentVariable('APPBUILDER_UPLOAD_KEY_PASSWORD')).orNull,
|
|
87
|
+
]
|
|
88
|
+
def hasUploadSigning = uploadSigning.values().every { it != null && !it.isEmpty() }
|
|
89
|
+
if (uploadSigning.values().any { it != null } && !hasUploadSigning) {
|
|
90
|
+
throw new GradleException('Set all four APPBUILDER_UPLOAD_* signing properties to sign a Play release.')
|
|
91
|
+
}
|
|
92
|
+
|
|
71
93
|
android {
|
|
72
94
|
ndkVersion rootProject.ext.ndkVersion
|
|
73
95
|
|
|
@@ -88,25 +110,29 @@ android {
|
|
|
88
110
|
keyAlias 'androiddebugkey'
|
|
89
111
|
keyPassword 'android'
|
|
90
112
|
}
|
|
113
|
+
if (hasUploadSigning) {
|
|
114
|
+
release {
|
|
115
|
+
storeFile file(uploadSigning.storeFile)
|
|
116
|
+
storePassword uploadSigning.storePassword
|
|
117
|
+
keyAlias uploadSigning.keyAlias
|
|
118
|
+
keyPassword uploadSigning.keyPassword
|
|
119
|
+
}
|
|
120
|
+
}
|
|
91
121
|
}
|
|
92
122
|
buildTypes {
|
|
93
123
|
debug {
|
|
94
124
|
signingConfig signingConfigs.debug
|
|
95
125
|
}
|
|
96
126
|
release {
|
|
97
|
-
//
|
|
98
|
-
|
|
99
|
-
signingConfig signingConfigs.debug
|
|
127
|
+
// Without an upload key, release artifacts are signed for local QA only.
|
|
128
|
+
signingConfig hasUploadSigning ? signingConfigs.release : signingConfigs.debug
|
|
100
129
|
minifyEnabled enableProguardInReleaseBuilds
|
|
101
130
|
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
|
102
131
|
}
|
|
103
132
|
}
|
|
104
133
|
|
|
105
134
|
packagingOptions {
|
|
106
|
-
pickFirst '
|
|
107
|
-
pickFirst '**/lib/armeabi-v7a/libaosl.so'
|
|
108
|
-
pickFirst '**/lib/x86/libaosl.so'
|
|
109
|
-
pickFirst '**/lib/x86_64/libaosl.so'
|
|
135
|
+
pickFirst 'lib/**/libaosl.so'
|
|
110
136
|
}
|
|
111
137
|
}
|
|
112
138
|
|
|
@@ -114,25 +140,9 @@ dependencies {
|
|
|
114
140
|
// The version of react-native is set by the React Native Gradle Plugin
|
|
115
141
|
implementation("com.facebook.react:react-android")
|
|
116
142
|
|
|
117
|
-
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
|
|
118
|
-
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
|
|
119
|
-
exclude group:'com.squareup.okhttp3', module:'okhttp'
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}")
|
|
123
143
|
if (hermesEnabled.toBoolean()) {
|
|
124
144
|
implementation("com.facebook.react:hermes-android")
|
|
125
145
|
} else {
|
|
126
146
|
implementation jscFlavor
|
|
127
147
|
}
|
|
128
|
-
constraints {
|
|
129
|
-
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.21") {
|
|
130
|
-
because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
|
|
131
|
-
}
|
|
132
|
-
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21") {
|
|
133
|
-
because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
148
|
}
|
|
137
|
-
|
|
138
|
-
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
2
2
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
3
3
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
4
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
|
|
5
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
|
|
4
6
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
5
7
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
6
8
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
7
|
-
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme">
|
|
9
|
+
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme" android:enableOnBackInvokedCallback="false">
|
|
8
10
|
<activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:screenOrientation="portrait" android:exported="true">
|
|
9
11
|
<intent-filter>
|
|
10
12
|
<action android:name="android.intent.action.MAIN" />
|
|
@@ -15,7 +17,7 @@
|
|
|
15
17
|
<meta-data android:name="com.supersami.foregroundservice.notification_channel_name" android:value="AppBuilder"/>
|
|
16
18
|
<meta-data android:name="com.supersami.foregroundservice.notification_channel_description" android:value="AppBuilder is running"/>
|
|
17
19
|
<meta-data android:name="com.supersami.foregroundservice.notification_color" android:resource="@color/blue"/>
|
|
18
|
-
<service android:name="com.supersami.foregroundservice.ForegroundService" />
|
|
20
|
+
<service android:name="com.supersami.foregroundservice.ForegroundService" android:foregroundServiceType="microphone|mediaPlayback" />
|
|
19
21
|
<service android:name="com.supersami.foregroundservice.ForegroundServiceTask" />
|
|
20
22
|
</application>
|
|
21
|
-
</manifest>
|
|
23
|
+
</manifest>
|
|
@@ -3,11 +3,15 @@ package com.helloworld;
|
|
|
3
3
|
import android.app.Application;
|
|
4
4
|
import com.facebook.react.PackageList;
|
|
5
5
|
import com.facebook.react.ReactApplication;
|
|
6
|
+
import com.facebook.react.ReactHost;
|
|
6
7
|
import com.facebook.react.ReactNativeHost;
|
|
7
8
|
import com.facebook.react.ReactPackage;
|
|
8
9
|
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
|
|
9
10
|
import com.facebook.react.defaults.DefaultReactNativeHost;
|
|
11
|
+
import com.facebook.react.defaults.DefaultReactHost;
|
|
12
|
+
import com.facebook.react.soloader.OpenSourceMergedSoMapping;
|
|
10
13
|
import com.facebook.soloader.SoLoader;
|
|
14
|
+
import java.io.IOException;
|
|
11
15
|
import java.util.List;
|
|
12
16
|
import com.facebook.react.modules.network.OkHttpClientProvider;
|
|
13
17
|
|
|
@@ -51,15 +55,23 @@ public class MainApplication extends Application implements ReactApplication {
|
|
|
51
55
|
return mReactNativeHost;
|
|
52
56
|
}
|
|
53
57
|
|
|
58
|
+
@Override
|
|
59
|
+
public ReactHost getReactHost() {
|
|
60
|
+
return DefaultReactHost.getDefaultReactHost(getApplicationContext(), mReactNativeHost);
|
|
61
|
+
}
|
|
62
|
+
|
|
54
63
|
@Override
|
|
55
64
|
public void onCreate() {
|
|
56
65
|
super.onCreate();
|
|
57
|
-
|
|
66
|
+
try {
|
|
67
|
+
SoLoader.init(this, OpenSourceMergedSoMapping.INSTANCE);
|
|
68
|
+
} catch (IOException error) {
|
|
69
|
+
throw new RuntimeException("Unable to initialize React Native libraries", error);
|
|
70
|
+
}
|
|
58
71
|
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
59
72
|
// If you opted-in for the New Architecture, we load the native entry point for this app.
|
|
60
73
|
DefaultNewArchitectureEntryPoint.load();
|
|
61
74
|
}
|
|
62
|
-
ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
|
63
75
|
SSLPinningFactory sslPinningFactory = new SSLPinningFactory(getApplicationContext());
|
|
64
76
|
OkHttpClientProvider.setOkHttpClientFactory(sslPinningFactory);
|
|
65
77
|
}
|
|
@@ -2,23 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
buildscript {
|
|
4
4
|
ext {
|
|
5
|
-
buildToolsVersion = "
|
|
5
|
+
buildToolsVersion = "35.0.0"
|
|
6
6
|
minSdkVersion = 24
|
|
7
|
-
compileSdkVersion =
|
|
8
|
-
targetSdkVersion =
|
|
7
|
+
compileSdkVersion = 36
|
|
8
|
+
targetSdkVersion = 36
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
kotlinVersion = "1.8.21" // added this for datadog logs - https://docs.datadoghq.com/real_user_monitoring/mobile_and_tv_monitoring/setup/reactnative/#setup
|
|
10
|
+
ndkVersion = "27.1.12297006"
|
|
11
|
+
kotlinVersion = "2.0.21"
|
|
13
12
|
androidXAnnotation = "1.2.0"
|
|
14
13
|
androidXBrowser = "1.3.0"
|
|
15
14
|
}
|
|
16
15
|
subprojects { subproject ->
|
|
16
|
+
// Older native modules declare obsolete AGP versions in their own builds.
|
|
17
|
+
subproject.buildscript.repositories {
|
|
18
|
+
google()
|
|
19
|
+
mavenCentral()
|
|
20
|
+
}
|
|
21
|
+
subproject.buildscript.configurations.configureEach {
|
|
22
|
+
resolutionStrategy.force 'com.android.tools.build:gradle:8.10.1'
|
|
23
|
+
}
|
|
24
|
+
subproject.plugins.withId('com.android.library') {
|
|
25
|
+
subproject.android.ndkVersion = rootProject.ext.ndkVersion
|
|
26
|
+
subproject.android.buildFeatures.buildConfig = true
|
|
27
|
+
// NDK 27 needs this flag when compiling native libraries for 16 KB devices.
|
|
28
|
+
subproject.android.defaultConfig.externalNativeBuild.cmake.arguments.add('-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON')
|
|
29
|
+
// AGP 8 requires a namespace; legacy modules still put it in the manifest.
|
|
30
|
+
if (subproject.android.namespace == null) {
|
|
31
|
+
def manifest = subproject.file('src/main/AndroidManifest.xml')
|
|
32
|
+
if (manifest.exists()) {
|
|
33
|
+
def packageName = (manifest.text =~ /package\s*=\s*["']([^"']+)["']/)
|
|
34
|
+
if (packageName.find()) {
|
|
35
|
+
subproject.android.namespace = packageName.group(1)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
17
40
|
afterEvaluate{
|
|
18
41
|
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
|
|
19
42
|
android {
|
|
20
43
|
compileSdkVersion rootProject.ext.compileSdkVersion
|
|
21
44
|
buildToolsVersion rootProject.ext.buildToolsVersion
|
|
45
|
+
ndkVersion rootProject.ext.ndkVersion
|
|
46
|
+
externalNativeBuild.cmake.version = '3.22.1'
|
|
22
47
|
}
|
|
23
48
|
}
|
|
24
49
|
}
|
|
@@ -28,9 +53,19 @@ buildscript {
|
|
|
28
53
|
mavenCentral()
|
|
29
54
|
}
|
|
30
55
|
dependencies {
|
|
31
|
-
classpath("com.android.tools.build:gradle")
|
|
56
|
+
classpath("com.android.tools.build:gradle:8.10.1")
|
|
32
57
|
classpath("com.facebook.react:react-native-gradle-plugin")
|
|
58
|
+
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
|
|
33
59
|
}
|
|
34
60
|
}
|
|
35
61
|
|
|
62
|
+
apply plugin: "com.facebook.react.rootproject"
|
|
36
63
|
|
|
64
|
+
allprojects {
|
|
65
|
+
repositories {
|
|
66
|
+
maven {
|
|
67
|
+
url 'https://download.agora.io/maven/'
|
|
68
|
+
content { includeGroupByRegex 'io\\.agora\\.rtc.*' }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
distributionBase=GRADLE_USER_HOME
|
|
2
2
|
distributionPath=wrapper/dists
|
|
3
|
-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.
|
|
4
|
-
networkTimeout=
|
|
3
|
+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
|
|
4
|
+
networkTimeout=60000
|
|
5
5
|
zipStoreBase=GRADLE_USER_HOME
|
|
6
|
-
zipStorePath=wrapper/dists
|
|
6
|
+
zipStorePath=wrapper/dists
|
|
@@ -24,9 +24,6 @@ android.useAndroidX=true
|
|
|
24
24
|
# Automatically convert third-party libraries to use AndroidX
|
|
25
25
|
android.enableJetifier=true
|
|
26
26
|
|
|
27
|
-
# Version of flipper SDK to use with React Native
|
|
28
|
-
FLIPPER_VERSION=0.182.0
|
|
29
|
-
|
|
30
27
|
# Use this property to specify which architecture you want to build.
|
|
31
28
|
# You can also override it from the CLI using
|
|
32
29
|
# ./gradlew <task> -PreactNativeArchitectures=x86_64
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") }
|
|
2
|
+
plugins { id("com.facebook.react.settings") }
|
|
3
|
+
extensions.configure(com.facebook.react.ReactSettingsExtension) { ex -> ex.autolinkLibrariesFromCommand() }
|
|
1
4
|
rootProject.name = 'HelloWorld'
|
|
2
|
-
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
|
|
3
5
|
include ':app'
|
|
4
|
-
includeBuild('../node_modules/@react-native/gradle-plugin')
|
|
6
|
+
includeBuild('../node_modules/@react-native/gradle-plugin')
|
package/template/babel.config.js
CHANGED
|
@@ -14,7 +14,7 @@ const { getCustomizationApiPath } = require('./customization.config');
|
|
|
14
14
|
|
|
15
15
|
// This file is read only by react native for IOS & Android. Doesn't apply to electron, Web targets
|
|
16
16
|
module.exports = {
|
|
17
|
-
presets: ['module
|
|
17
|
+
presets: ['module:@react-native/babel-preset'],
|
|
18
18
|
plugins: [
|
|
19
19
|
['transform-define', configVars],
|
|
20
20
|
[
|
|
@@ -77,8 +77,8 @@ const DefaultConfig = {
|
|
|
77
77
|
CHAT_ORG_NAME: "",
|
|
78
78
|
CHAT_APP_NAME: "",
|
|
79
79
|
CHAT_URL: "",
|
|
80
|
-
CLI_VERSION: "3.1.
|
|
81
|
-
CORE_VERSION: "4.1.
|
|
80
|
+
CLI_VERSION: "3.1.30-beta.2",
|
|
81
|
+
CORE_VERSION: "4.1.30-beta.2",
|
|
82
82
|
DISABLE_LANDSCAPE_MODE: false,
|
|
83
83
|
STT_AUTO_START: false,
|
|
84
84
|
CLOUD_RECORDING_AUTO_START: false,
|
|
@@ -942,7 +942,7 @@
|
|
|
942
942
|
"$(inherited)",
|
|
943
943
|
);
|
|
944
944
|
INFOPLIST_FILE = HelloWorldTests/Info.plist;
|
|
945
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
|
945
|
+
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
|
946
946
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
|
947
947
|
OTHER_LDFLAGS = (
|
|
948
948
|
"-ObjC",
|
|
@@ -963,7 +963,7 @@
|
|
|
963
963
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
|
964
964
|
COPY_PHASE_STRIP = NO;
|
|
965
965
|
INFOPLIST_FILE = HelloWorldTests/Info.plist;
|
|
966
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
|
966
|
+
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
|
967
967
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
|
968
968
|
OTHER_LDFLAGS = (
|
|
969
969
|
"-ObjC",
|
|
@@ -989,7 +989,7 @@
|
|
|
989
989
|
DEVELOPMENT_TEAM = "";
|
|
990
990
|
ENABLE_BITCODE = NO;
|
|
991
991
|
INFOPLIST_FILE = HelloWorld/Info.plist;
|
|
992
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
|
992
|
+
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
|
993
993
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
|
994
994
|
OTHER_LDFLAGS = (
|
|
995
995
|
"$(inherited)",
|
|
@@ -1003,6 +1003,7 @@
|
|
|
1003
1003
|
SWIFT_OBJC_BRIDGING_HEADER = "HelloWorld-Bridging-Header.h";
|
|
1004
1004
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
1005
1005
|
SWIFT_VERSION = 5.0;
|
|
1006
|
+
TARGETED_DEVICE_FAMILY = "1,2";
|
|
1006
1007
|
VERSIONING_SYSTEM = "apple-generic";
|
|
1007
1008
|
};
|
|
1008
1009
|
name = Debug;
|
|
@@ -1019,7 +1020,7 @@
|
|
|
1019
1020
|
CURRENT_PROJECT_VERSION = 1;
|
|
1020
1021
|
DEVELOPMENT_TEAM = "";
|
|
1021
1022
|
INFOPLIST_FILE = HelloWorld/Info.plist;
|
|
1022
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
|
1023
|
+
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
|
1023
1024
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
|
1024
1025
|
OTHER_LDFLAGS = (
|
|
1025
1026
|
"$(inherited)",
|
|
@@ -1032,6 +1033,7 @@
|
|
|
1032
1033
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
|
1033
1034
|
SWIFT_OBJC_BRIDGING_HEADER = "HelloWorld-Bridging-Header.h";
|
|
1034
1035
|
SWIFT_VERSION = 5.0;
|
|
1036
|
+
TARGETED_DEVICE_FAMILY = "1,2";
|
|
1035
1037
|
VERSIONING_SYSTEM = "apple-generic";
|
|
1036
1038
|
};
|
|
1037
1039
|
name = Release;
|
|
@@ -1256,7 +1258,7 @@
|
|
|
1256
1258
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
1257
1259
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
1258
1260
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
1259
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
|
1261
|
+
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
|
1260
1262
|
LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
|
|
1261
1263
|
LIBRARY_SEARCH_PATHS = (
|
|
1262
1264
|
"$(SDKROOT)/usr/lib/swift",
|
|
@@ -1313,7 +1315,7 @@
|
|
|
1313
1315
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
1314
1316
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
1315
1317
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
1316
|
-
IPHONEOS_DEPLOYMENT_TARGET =
|
|
1318
|
+
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
|
1317
1319
|
LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
|
|
1318
1320
|
LIBRARY_SEARCH_PATHS = (
|
|
1319
1321
|
"$(SDKROOT)/usr/lib/swift",
|
package/template/ios/Podfile
CHANGED
|
@@ -12,42 +12,12 @@ class Pod::Installer::Xcode::TargetValidator
|
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
+
# Keep the legacy architecture used by the app and its Android configuration.
|
|
16
|
+
ENV['RCT_NEW_ARCH_ENABLED'] ||= '0'
|
|
17
|
+
|
|
15
18
|
platform :ios, min_ios_version_supported
|
|
16
19
|
prepare_react_native_project!
|
|
17
20
|
|
|
18
|
-
# ======================================
|
|
19
|
-
# BOOST PODSPEC CHECKSUM FIX
|
|
20
|
-
# This ensures all developers use the patched Boost source URL:
|
|
21
|
-
# https://archives.boost.io/release/1.76.0/source/boost_1_76_0.tar.bz2
|
|
22
|
-
# ======================================
|
|
23
|
-
require 'fileutils'
|
|
24
|
-
|
|
25
|
-
boost_src = File.join(__dir__, 'podspec-patches', 'boost.podspec')
|
|
26
|
-
boost_dst = File.join(__dir__, '..', 'node_modules', 'react-native',
|
|
27
|
-
'third-party-podspecs', 'boost.podspec')
|
|
28
|
-
|
|
29
|
-
if File.exist?(boost_src)
|
|
30
|
-
puts "➡️ Applying patched Boost podspec (checksum fix)"
|
|
31
|
-
FileUtils.cp(boost_src, boost_dst)
|
|
32
|
-
else
|
|
33
|
-
puts "⚠️ No patched Boost podspec found at #{boost_src}"
|
|
34
|
-
end
|
|
35
|
-
# ======================================
|
|
36
|
-
# BOOST PODSPEC CHECKSUM FIX
|
|
37
|
-
# ======================================
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
|
|
41
|
-
# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
|
|
42
|
-
#
|
|
43
|
-
# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
|
|
44
|
-
# ```js
|
|
45
|
-
# module.exports = {
|
|
46
|
-
# dependencies: {
|
|
47
|
-
# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
|
|
48
|
-
# ```
|
|
49
|
-
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
|
|
50
|
-
|
|
51
21
|
linkage = ENV['USE_FRAMEWORKS']
|
|
52
22
|
if linkage != nil
|
|
53
23
|
Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
|
|
@@ -58,19 +28,8 @@ target 'HelloWorld' do
|
|
|
58
28
|
config = use_native_modules!
|
|
59
29
|
pod 'TrustKit'
|
|
60
30
|
|
|
61
|
-
# Flags change depending on the env values.
|
|
62
|
-
flags = get_default_flags()
|
|
63
|
-
|
|
64
31
|
use_react_native!(
|
|
65
32
|
:path => config[:reactNativePath],
|
|
66
|
-
# Hermes is now enabled by default. Disable by setting this flag to false.
|
|
67
|
-
:hermes_enabled => flags[:hermes_enabled],
|
|
68
|
-
:fabric_enabled => flags[:fabric_enabled],
|
|
69
|
-
# Enables Flipper.
|
|
70
|
-
#
|
|
71
|
-
# Note that if you have use_frameworks! enabled, Flipper will not work and
|
|
72
|
-
# you should disable the next line.
|
|
73
|
-
:flipper_configuration => flipper_config,
|
|
74
33
|
# An absolute path to your application root.
|
|
75
34
|
:app_path => "#{Pod::Config.instance.installation_root}/.."
|
|
76
35
|
)
|
|
@@ -87,7 +46,6 @@ target 'HelloWorld' do
|
|
|
87
46
|
config[:reactNativePath],
|
|
88
47
|
:mac_catalyst_enabled => false
|
|
89
48
|
)
|
|
90
|
-
__apply_Xcode_12_5_M1_post_install_workaround(installer)
|
|
91
49
|
|
|
92
50
|
# === BEGIN: Bitcode Stripping ===
|
|
93
51
|
bitcode_strip_path = `xcrun --find bitcode_strip`.chomp
|