Skip to content

Commit 4b9cba5

Browse files
feat: implement expo replaceAndroidBackupConfig to resolve android build conflicts with appsflyer and expo-secure-store
1 parent aa204f2 commit 4b9cba5

File tree

15 files changed

+222
-79
lines changed

15 files changed

+222
-79
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<full-backup-content>
3+
<!-- Exclude Adapty data (from adapty android-sdk) -->
4+
<exclude domain="sharedpref" path="AdaptySDKPrefs.xml"/>
5+
6+
<!-- Exclude SecureStore data (from expo-secure-store) -->
7+
<exclude domain="sharedpref" path="SecureStore"/>
8+
9+
<!-- Exclude AppsFlyer data -->
10+
<exclude domain="sharedpref" path="appsflyer-data"/>
11+
</full-backup-content>
12+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<data-extraction-rules>
3+
<cloud-backup>
4+
<!-- Exclude Adapty data (from adapty android-sdk) -->
5+
<exclude domain="sharedpref" path="AdaptySDKPrefs.xml"/>
6+
<!-- Exclude SecureStore data (from expo-secure-store) -->
7+
<exclude domain="sharedpref" path="SecureStore"/>
8+
<!-- Exclude AppsFlyer data -->
9+
<exclude domain="sharedpref" path="appsflyer-data"/>
10+
</cloud-backup>
11+
12+
<device-transfer>
13+
<!-- Exclude Adapty data (from adapty android-sdk) -->
14+
<exclude domain="sharedpref" path="AdaptySDKPrefs.xml"/>
15+
<!-- Exclude SecureStore data (from expo-secure-store) -->
16+
<exclude domain="sharedpref" path="SecureStore"/>
17+
<!-- Exclude AppsFlyer data -->
18+
<exclude domain="sharedpref" path="appsflyer-data"/>
19+
</device-transfer>
20+
</data-extraction-rules>
21+

app.plugin.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module.exports = require('./plugin/withAdapty');
2+

examples/FocusJournalExpo/android/app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
22
<uses-permission android:name="android.permission.INTERNET"/>
33
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
44
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
@@ -11,7 +11,7 @@
1111
<data android:scheme="https"/>
1212
</intent>
1313
</queries>
14-
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="true" android:theme="@style/AppTheme" android:supportsRtl="true" android:enableOnBackInvokedCallback="false">
14+
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="true" android:theme="@style/AppTheme" android:supportsRtl="true" android:enableOnBackInvokedCallback="false" tools:replace="android:fullBackupContent,android:dataExtractionRules" android:dataExtractionRules="@xml/rn_adapty_data_extraction_rules" android:fullBackupContent="@xml/rn_adapty_backup_rules">
1515
<meta-data android:name="expo.modules.updates.ENABLED" android:value="false"/>
1616
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
1717
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>

examples/FocusJournalExpo/app.json

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,21 @@
2929
},
3030
"web": {
3131
"favicon": "./assets/favicon.png"
32-
}
32+
},
33+
"plugins": [
34+
[
35+
"expo-secure-store",
36+
{
37+
"configureAndroidBackup": false
38+
}
39+
],
40+
[
41+
"react-native-adapty",
42+
{
43+
"replaceAndroidBackupConfig": true
44+
}
45+
],
46+
"react-native-appsflyer"
47+
]
3348
}
3449
}

examples/FocusJournalExpo/ios/FocusJournalExpo.xcodeproj/project.pbxproj

Lines changed: 58 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10-
1026C66E5ADB30271DFE69BC /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = ECC2CAAEDA44B4A69FB01F7F /* PrivacyInfo.xcprivacy */; };
1110
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
11+
37263E026593CE4025A62D65 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87164310CDAC452564AAD433 /* ExpoModulesProvider.swift */; };
1212
3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; };
13-
4B4FBA759B36FD4B6885B122 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3B5E1BE407740700F8BC24C /* ExpoModulesProvider.swift */; };
14-
601D433E05AF6C74BDD1A9EB /* libPods-FocusJournalExpo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D65AD488610E4E536E85437 /* libPods-FocusJournalExpo.a */; };
13+
5E9C943DE0AD99FDFC7ECAD4 /* libPods-FocusJournalExpo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D7D83F4F580D6775D0C7B338 /* libPods-FocusJournalExpo.a */; };
14+
870D1FDCB4BCEBC52F73AE68 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = BFE315254771B10130543045 /* PrivacyInfo.xcprivacy */; };
1515
BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; };
1616
F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F11748412D0307B40044C1D9 /* AppDelegate.swift */; };
1717
/* End PBXBuildFile section */
@@ -20,24 +20,24 @@
2020
13B07F961A680F5B00A75B9A /* FocusJournalExpo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FocusJournalExpo.app; sourceTree = BUILT_PRODUCTS_DIR; };
2121
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = FocusJournalExpo/Images.xcassets; sourceTree = "<group>"; };
2222
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = FocusJournalExpo/Info.plist; sourceTree = "<group>"; };
23-
13E42A537A21FDD8CACB69A9 /* Pods-FocusJournalExpo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FocusJournalExpo.debug.xcconfig"; path = "Target Support Files/Pods-FocusJournalExpo/Pods-FocusJournalExpo.debug.xcconfig"; sourceTree = "<group>"; };
24-
3D65AD488610E4E536E85437 /* libPods-FocusJournalExpo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FocusJournalExpo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
23+
87164310CDAC452564AAD433 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-FocusJournalExpo/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
2524
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = FocusJournalExpo/SplashScreen.storyboard; sourceTree = "<group>"; };
26-
B6B7926984B5969215F73DD3 /* Pods-FocusJournalExpo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FocusJournalExpo.release.xcconfig"; path = "Target Support Files/Pods-FocusJournalExpo/Pods-FocusJournalExpo.release.xcconfig"; sourceTree = "<group>"; };
2725
BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = "<group>"; };
28-
C3B5E1BE407740700F8BC24C /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-FocusJournalExpo/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
29-
ECC2CAAEDA44B4A69FB01F7F /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = FocusJournalExpo/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
26+
BFE315254771B10130543045 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = FocusJournalExpo/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
27+
D7D83F4F580D6775D0C7B338 /* libPods-FocusJournalExpo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FocusJournalExpo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
28+
E30A05CDBB8554035B7E5F64 /* Pods-FocusJournalExpo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FocusJournalExpo.release.xcconfig"; path = "Target Support Files/Pods-FocusJournalExpo/Pods-FocusJournalExpo.release.xcconfig"; sourceTree = "<group>"; };
3029
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
3130
F11748412D0307B40044C1D9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = FocusJournalExpo/AppDelegate.swift; sourceTree = "<group>"; };
3231
F11748442D0722820044C1D9 /* FocusJournalExpo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "FocusJournalExpo-Bridging-Header.h"; path = "FocusJournalExpo/FocusJournalExpo-Bridging-Header.h"; sourceTree = "<group>"; };
32+
FE77F9D72ED31456454B9635 /* Pods-FocusJournalExpo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FocusJournalExpo.debug.xcconfig"; path = "Target Support Files/Pods-FocusJournalExpo/Pods-FocusJournalExpo.debug.xcconfig"; sourceTree = "<group>"; };
3333
/* End PBXFileReference section */
3434

3535
/* Begin PBXFrameworksBuildPhase section */
3636
13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
3737
isa = PBXFrameworksBuildPhase;
3838
buildActionMask = 2147483647;
3939
files = (
40-
601D433E05AF6C74BDD1A9EB /* libPods-FocusJournalExpo.a in Frameworks */,
40+
5E9C943DE0AD99FDFC7ECAD4 /* libPods-FocusJournalExpo.a in Frameworks */,
4141
);
4242
runOnlyForDeploymentPostprocessing = 0;
4343
};
@@ -53,28 +53,26 @@
5353
13B07FB51A68108700A75B9A /* Images.xcassets */,
5454
13B07FB61A68108700A75B9A /* Info.plist */,
5555
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */,
56-
ECC2CAAEDA44B4A69FB01F7F /* PrivacyInfo.xcprivacy */,
56+
BFE315254771B10130543045 /* PrivacyInfo.xcprivacy */,
5757
);
5858
name = FocusJournalExpo;
5959
sourceTree = "<group>";
6060
};
61-
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
61+
296F61F4138E3BC58B5E5052 /* FocusJournalExpo */ = {
6262
isa = PBXGroup;
6363
children = (
64-
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
65-
3D65AD488610E4E536E85437 /* libPods-FocusJournalExpo.a */,
64+
87164310CDAC452564AAD433 /* ExpoModulesProvider.swift */,
6665
);
67-
name = Frameworks;
66+
name = FocusJournalExpo;
6867
sourceTree = "<group>";
6968
};
70-
5BB1C164F34BE9A01E4D7021 /* Pods */ = {
69+
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
7170
isa = PBXGroup;
7271
children = (
73-
13E42A537A21FDD8CACB69A9 /* Pods-FocusJournalExpo.debug.xcconfig */,
74-
B6B7926984B5969215F73DD3 /* Pods-FocusJournalExpo.release.xcconfig */,
72+
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
73+
D7D83F4F580D6775D0C7B338 /* libPods-FocusJournalExpo.a */,
7574
);
76-
name = Pods;
77-
path = Pods;
75+
name = Frameworks;
7876
sourceTree = "<group>";
7977
};
8078
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
@@ -91,8 +89,8 @@
9189
832341AE1AAA6A7D00B99B32 /* Libraries */,
9290
83CBBA001A601CBA00E9B192 /* Products */,
9391
2D16E6871FA4F8E400B85C8A /* Frameworks */,
94-
5BB1C164F34BE9A01E4D7021 /* Pods */,
95-
F518F0E86721EDEE28D255CD /* ExpoModulesProviders */,
92+
C0E8AB9011F44F5D697259FC /* Pods */,
93+
91BF2F0ACF43F4CBFF3EB859 /* ExpoModulesProviders */,
9694
);
9795
indentWidth = 2;
9896
sourceTree = "<group>";
@@ -107,12 +105,12 @@
107105
name = Products;
108106
sourceTree = "<group>";
109107
};
110-
A4F02485BDD93B46B952B0B5 /* FocusJournalExpo */ = {
108+
91BF2F0ACF43F4CBFF3EB859 /* ExpoModulesProviders */ = {
111109
isa = PBXGroup;
112110
children = (
113-
C3B5E1BE407740700F8BC24C /* ExpoModulesProvider.swift */,
111+
296F61F4138E3BC58B5E5052 /* FocusJournalExpo */,
114112
);
115-
name = FocusJournalExpo;
113+
name = ExpoModulesProviders;
116114
sourceTree = "<group>";
117115
};
118116
BB2F792B24A3F905000567C9 /* Supporting */ = {
@@ -124,12 +122,14 @@
124122
path = FocusJournalExpo/Supporting;
125123
sourceTree = "<group>";
126124
};
127-
F518F0E86721EDEE28D255CD /* ExpoModulesProviders */ = {
125+
C0E8AB9011F44F5D697259FC /* Pods */ = {
128126
isa = PBXGroup;
129127
children = (
130-
A4F02485BDD93B46B952B0B5 /* FocusJournalExpo */,
128+
FE77F9D72ED31456454B9635 /* Pods-FocusJournalExpo.debug.xcconfig */,
129+
E30A05CDBB8554035B7E5F64 /* Pods-FocusJournalExpo.release.xcconfig */,
131130
);
132-
name = ExpoModulesProviders;
131+
name = Pods;
132+
path = Pods;
133133
sourceTree = "<group>";
134134
};
135135
/* End PBXGroup section */
@@ -140,13 +140,13 @@
140140
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "FocusJournalExpo" */;
141141
buildPhases = (
142142
08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */,
143-
C7CFB96AEB616B83754A40ED /* [Expo] Configure project */,
143+
C5F097CD97C9D451988FEFF7 /* [Expo] Configure project */,
144144
13B07F871A680F5B00A75B9A /* Sources */,
145145
13B07F8C1A680F5B00A75B9A /* Frameworks */,
146146
13B07F8E1A680F5B00A75B9A /* Resources */,
147147
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
148148
800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */,
149-
9B6E44BF27069E487B909B6B /* [CP] Embed Pods Frameworks */,
149+
FCD270B47FCE76DC2FE16D5C /* [CP] Embed Pods Frameworks */,
150150
);
151151
buildRules = (
152152
);
@@ -196,7 +196,7 @@
196196
BB2F792D24A3F905000567C9 /* Expo.plist in Resources */,
197197
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
198198
3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */,
199-
1026C66E5ADB30271DFE69BC /* PrivacyInfo.xcprivacy in Resources */,
199+
870D1FDCB4BCEBC52F73AE68 /* PrivacyInfo.xcprivacy in Resources */,
200200
);
201201
runOnlyForDeploymentPostprocessing = 0;
202202
};
@@ -251,6 +251,7 @@
251251
"${PODS_ROOT}/Target Support Files/Pods-FocusJournalExpo/Pods-FocusJournalExpo-resources.sh",
252252
"${PODS_CONFIGURATION_BUILD_DIR}/Adapty/Adapty.bundle",
253253
"${PODS_CONFIGURATION_BUILD_DIR}/AdaptyUI/AdaptyUI.bundle",
254+
"${PODS_CONFIGURATION_BUILD_DIR}/AppsFlyerFramework/AppsFlyerLib_Privacy.bundle",
254255
"${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle",
255256
"${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle",
256257
"${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle",
@@ -263,6 +264,7 @@
263264
outputPaths = (
264265
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Adapty.bundle",
265266
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AdaptyUI.bundle",
267+
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AppsFlyerLib_Privacy.bundle",
266268
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle",
267269
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle",
268270
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle",
@@ -276,29 +278,7 @@
276278
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FocusJournalExpo/Pods-FocusJournalExpo-resources.sh\"\n";
277279
showEnvVarsInLog = 0;
278280
};
279-
9B6E44BF27069E487B909B6B /* [CP] Embed Pods Frameworks */ = {
280-
isa = PBXShellScriptBuildPhase;
281-
buildActionMask = 2147483647;
282-
files = (
283-
);
284-
inputPaths = (
285-
"${PODS_ROOT}/Target Support Files/Pods-FocusJournalExpo/Pods-FocusJournalExpo-frameworks.sh",
286-
"${PODS_XCFRAMEWORKS_BUILD_DIR}/React-Core-prebuilt/React.framework/React",
287-
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ReactNativeDependencies/ReactNativeDependencies.framework/ReactNativeDependencies",
288-
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
289-
);
290-
name = "[CP] Embed Pods Frameworks";
291-
outputPaths = (
292-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React.framework",
293-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ReactNativeDependencies.framework",
294-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
295-
);
296-
runOnlyForDeploymentPostprocessing = 0;
297-
shellPath = /bin/sh;
298-
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FocusJournalExpo/Pods-FocusJournalExpo-frameworks.sh\"\n";
299-
showEnvVarsInLog = 0;
300-
};
301-
C7CFB96AEB616B83754A40ED /* [Expo] Configure project */ = {
281+
C5F097CD97C9D451988FEFF7 /* [Expo] Configure project */ = {
302282
isa = PBXShellScriptBuildPhase;
303283
alwaysOutOfDate = 1;
304284
buildActionMask = 2147483647;
@@ -322,6 +302,28 @@
322302
shellPath = /bin/sh;
323303
shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-FocusJournalExpo/expo-configure-project.sh\"\n";
324304
};
305+
FCD270B47FCE76DC2FE16D5C /* [CP] Embed Pods Frameworks */ = {
306+
isa = PBXShellScriptBuildPhase;
307+
buildActionMask = 2147483647;
308+
files = (
309+
);
310+
inputPaths = (
311+
"${PODS_ROOT}/Target Support Files/Pods-FocusJournalExpo/Pods-FocusJournalExpo-frameworks.sh",
312+
"${PODS_XCFRAMEWORKS_BUILD_DIR}/React-Core-prebuilt/React.framework/React",
313+
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ReactNativeDependencies/ReactNativeDependencies.framework/ReactNativeDependencies",
314+
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
315+
);
316+
name = "[CP] Embed Pods Frameworks";
317+
outputPaths = (
318+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React.framework",
319+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ReactNativeDependencies.framework",
320+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
321+
);
322+
runOnlyForDeploymentPostprocessing = 0;
323+
shellPath = /bin/sh;
324+
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FocusJournalExpo/Pods-FocusJournalExpo-frameworks.sh\"\n";
325+
showEnvVarsInLog = 0;
326+
};
325327
/* End PBXShellScriptBuildPhase section */
326328

327329
/* Begin PBXSourcesBuildPhase section */
@@ -330,7 +332,7 @@
330332
buildActionMask = 2147483647;
331333
files = (
332334
F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */,
333-
4B4FBA759B36FD4B6885B122 /* ExpoModulesProvider.swift in Sources */,
335+
37263E026593CE4025A62D65 /* ExpoModulesProvider.swift in Sources */,
334336
);
335337
runOnlyForDeploymentPostprocessing = 0;
336338
};
@@ -339,7 +341,7 @@
339341
/* Begin XCBuildConfiguration section */
340342
13B07F941A680F5B00A75B9A /* Debug */ = {
341343
isa = XCBuildConfiguration;
342-
baseConfigurationReference = 13E42A537A21FDD8CACB69A9 /* Pods-FocusJournalExpo.debug.xcconfig */;
344+
baseConfigurationReference = FE77F9D72ED31456454B9635 /* Pods-FocusJournalExpo.debug.xcconfig */;
343345
buildSettings = {
344346
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
345347
CLANG_ENABLE_MODULES = YES;
@@ -375,7 +377,7 @@
375377
};
376378
13B07F951A680F5B00A75B9A /* Release */ = {
377379
isa = XCBuildConfiguration;
378-
baseConfigurationReference = B6B7926984B5969215F73DD3 /* Pods-FocusJournalExpo.release.xcconfig */;
380+
baseConfigurationReference = E30A05CDBB8554035B7E5F64 /* Pods-FocusJournalExpo.release.xcconfig */;
379381
buildSettings = {
380382
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
381383
CLANG_ENABLE_MODULES = YES;

examples/FocusJournalExpo/ios/FocusJournalExpo/AppDelegate.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class AppDelegate: ExpoAppDelegate {
3838
open url: URL,
3939
options: [UIApplication.OpenURLOptionsKey: Any] = [:]
4040
) -> Bool {
41+
AppsFlyerAttribution.shared().handleOpen(url, options: options)
4142
return super.application(app, open: url, options: options) || RCTLinkingManager.application(app, open: url, options: options)
4243
}
4344

@@ -47,6 +48,7 @@ public class AppDelegate: ExpoAppDelegate {
4748
continue userActivity: NSUserActivity,
4849
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
4950
) -> Bool {
51+
AppsFlyerAttribution.shared().continue(userActivity, restorationHandler: nil)
5052
let result = RCTLinkingManager.application(application, continue: userActivity, restorationHandler: restorationHandler)
5153
return super.application(application, continue: userActivity, restorationHandler: restorationHandler) || result
5254
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
//
22
// Use this file to import your target's public headers that you would like to expose to Swift.
33
//
4+
#import <RNAppsFlyer.h>

0 commit comments

Comments
 (0)