diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 92aa763..bde49a5 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -26,7 +26,6 @@ - diff --git a/android/gradlew b/android/gradlew old mode 100755 new mode 100644 diff --git a/app/(tabs)/countdown.tsx b/app/(tabs)/countdown.tsx index a08c6a0..5fd98dc 100644 --- a/app/(tabs)/countdown.tsx +++ b/app/(tabs)/countdown.tsx @@ -1,11 +1,10 @@ import React, { useState, useEffect } from 'react'; -import { StyleSheet, ActivityIndicator, TouchableOpacity, View } from 'react-native'; +import { StyleSheet, ActivityIndicator, TouchableOpacity } from 'react-native'; import { ThemedText } from '@/components/ThemedText'; import { ThemedView } from '@/components/ThemedView'; -import { SafeAreaView } from 'react-native-safe-area-context'; // Import for safe area handling import { LinearGradient } from 'expo-linear-gradient'; import axios from 'axios'; -import ChangeDateDrawer from '@/components/ChangeDateDrawer'; // Date drawer component +import ChangeDateDrawer from '@/components/ChangeDateDrawer'; const API_KEY = process.env.EXPO_PUBLIC_API_KEY; const BASE_URL = process.env.EXPO_PUBLIC_BASE_URL; @@ -17,6 +16,7 @@ const fetchCountdownDate = async () => { params: { apiKey: API_KEY } }); if (response.data && response.data[0] && response.data[0].countdown) { + //console.log('Countdown date:', response.data[0].countdown); return new Date(response.data[0].countdown); } else { console.error('Unexpected API response format:', response.data); @@ -98,32 +98,29 @@ export default function TabTwoScreen() { start={{ x: 0, y: 0 }} end={{ x: 1, y: 1 }} > - - - Countdown to Next Visit - - {/* Countdown items displayed horizontally with flexbox */} - - - - - - setIsDateDrawerVisible(true)} - > - Change Date - - {targetDate && ( - setIsDateDrawerVisible(false)} - onDateChange={handleDateChange} - currentDate={targetDate} - /> - )} + + Countdown to Next Visit + + + + + - + setIsDateDrawerVisible(true)} + > + Change Date + + {targetDate && ( + setIsDateDrawerVisible(false)} + onDateChange={handleDateChange} + currentDate={targetDate} + /> + )} + ); } @@ -138,39 +135,31 @@ function CountdownItem({ value, label }: { value: number; label: string }) { } const styles = StyleSheet.create({ - safeContainer: { - flex: 1, - backgroundColor: 'transparent', // Background color for safety area view - }, container: { flex: 1, - backgroundColor: 'transparent', - }, - innerContainer: { - flex: 1, - justifyContent: 'center', alignItems: 'center', - paddingHorizontal: 20, // Padding around the edges backgroundColor: 'transparent', }, title: { - fontSize: 40, // Shrinking the title for smaller screens - lineHeight: 50, - fontWeight: '600', + fontSize: 64, + lineHeight: 64, + fontWeight: 'bold', + marginTop: 100, + marginBottom: 60, textAlign: 'center', - paddingHorizontal: 10, + paddingHorizontal: 20, }, countdownContainer: { flexDirection: 'row', - justifyContent: 'space-around', // Spread countdown items more evenly + justifyContent: 'center', alignItems: 'center', - width: '100%', backgroundColor: 'transparent', - marginVertical: 40, // Added some space between countdown and title/button + marginBottom: 180, }, countdownItem: { + margin: 10, + lineHeight: 42, alignItems: 'center', - marginHorizontal: 10, // Each item has horizontal spacing backgroundColor: 'transparent', }, countdownValue: { @@ -179,18 +168,18 @@ const styles = StyleSheet.create({ fontWeight: 'bold', }, countdownLabel: { - fontSize: 18, // Reducing size of the label for better fit - lineHeight: 24, + fontSize: 32, + lineHeight: 42, }, changeButton: { backgroundColor: '#730FF8', - padding: 12, - borderRadius: 8, - marginTop: 20, + padding: 15, + borderRadius: 10, + marginTop: 40, }, changeButtonText: { color: 'white', - fontSize: 18, + fontSize: 22, fontWeight: 'bold', }, -}); \ No newline at end of file +}); diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx index 653874b..3d5af4a 100644 --- a/app/(tabs)/index.tsx +++ b/app/(tabs)/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { StyleSheet, SafeAreaView } from 'react-native'; +import { StyleSheet } from 'react-native'; import { ThemedText } from '@/components/ThemedText'; import { ThemedView } from '@/components/ThemedView'; import { LinearGradient } from 'expo-linear-gradient'; @@ -50,11 +50,9 @@ export default function HomeScreen() { start={{ x: 0, y: 0 }} end={{ x: 1, y: 1 }} > - - - {message} - - + + {message} + ); } diff --git a/app/(tabs)/sendmessage.tsx b/app/(tabs)/sendmessage.tsx index 0c62d43..f26232d 100644 --- a/app/(tabs)/sendmessage.tsx +++ b/app/(tabs)/sendmessage.tsx @@ -7,49 +7,44 @@ import { Keyboard, TouchableWithoutFeedback, KeyboardAvoidingView, - Platform, - SafeAreaView, // SafeAreaView import for handling safe areas - View + Platform, + View } from 'react-native'; import { ThemedText } from '@/components/ThemedText'; +import { ThemedView } from '@/components/ThemedView'; import { LinearGradient } from 'expo-linear-gradient'; import AsyncStorage from '@react-native-async-storage/async-storage'; import axios from 'axios'; -// Environment variables const API_KEY = process.env.EXPO_PUBLIC_API_KEY; const BASE_URL = process.env.EXPO_PUBLIC_BASE_URL; export default function SendMessageScreen() { const [message, setMessage] = useState(''); - const [userId, setUserId] = useState(null); // Use number type for userId - const [inputHeight, setInputHeight] = useState(120); // Set initial height for TextInput + const [userId, setUserId] = useState(null); + const [inputHeight, setInputHeight] = useState(100); - // Update TextInput height dynamically const updateInputHeight = (height: number) => { - setInputHeight(Math.max(120, height)); // Ensure it doesn't shrink below 120px + setInputHeight(Math.max(100, height)); }; - // On component mount, get the user ID from AsyncStorage useEffect(() => { - const getUserId = async () => { - try { - const storedUser = await AsyncStorage.getItem('@user'); - if (storedUser) { - const user = JSON.parse(storedUser); - setUserId(user.id); - } - } catch (error) { - console.error('Failed to get user ID:', error); - } - }; - getUserId(); }, []); - // Function to send a message + const getUserId = async () => { + try { + const storedUser = await AsyncStorage.getItem('@user'); + if (storedUser) { + const user = JSON.parse(storedUser); + setUserId(user.id); + } + } catch (error) { + console.error('Failed to get user ID:', error); + } + }; + const sendMessage = async () => { - // Input validation if (!message.trim()) { Alert.alert('Error', 'Please enter a message'); return; @@ -65,8 +60,8 @@ export default function SendMessageScreen() { params: { apiKey: API_KEY, userId, message } }); Alert.alert('Success', 'Message sent successfully'); - setMessage(''); // Clear the message input on success - Keyboard.dismiss(); // Dismiss the keyboard + setMessage(''); + Keyboard.dismiss(); } catch (error) { console.error('Failed to send message:', error); Alert.alert('Error', 'Failed to send message. Please try again.'); @@ -74,87 +69,75 @@ export default function SendMessageScreen() { }; return ( - // Ensure keyboard behaves correctly on both iOS and Android - - - {/* SafeAreaView for notch and layout safety */} - - - - - updateInputHeight(event.nativeEvent.contentSize.height) - } - /> - {/* Send Message Button */} - - Send Message - - - - + + + + + + updateInputHeight(event.nativeEvent.contentSize.height) + } + /> + + Send Message + + + ); } const styles = StyleSheet.create({ - safeContainer: { - flex: 1, - backgroundColor: 'transparent', // Ensure full-screen safe area - }, container: { flex: 1, - backgroundColor: 'transparent', - }, - chatContainer: { - flex: 1, - justifyContent: 'center', alignItems: 'center', - paddingHorizontal: 20, // Ensures padding around the input and button + padding: 20, + backgroundColor: 'transparent', + width: '100%', }, input: { width: '100%', - minHeight: 150, // Minimum height for the TextInput + minHeight: 120, borderColor: 'transparent', borderWidth: 1, borderRadius: 10, padding: 10, - marginBottom: 10, - fontSize: 32, // Adjust font size to shrink for smaller devices - lineHeight: 40, // Adjust line height for better readability + marginBottom: 20, + marginTop: 160, + fontSize: 42, + lineHeight: 60, textAlign: 'center', color: '#FFFFFF', fontWeight: 'bold', - //backgroundColor: 'rgba(0, 0, 0, 0.1)', // Subtle background for text input - backgroundColor: 'transparent', // Transparent background + backgroundColor: 'transparent', }, button: { backgroundColor: '#730FF8', - paddingVertical: 12, - paddingHorizontal: 20, + padding: 15, + borderColor: '#730FF8', borderRadius: 10, }, buttonText: { color: 'white', - fontSize: 18, + fontSize: 22, fontWeight: 'bold', }, -}); \ No newline at end of file +}); diff --git a/app/_layout.tsx b/app/_layout.tsx index 65575f1..d118897 100644 --- a/app/_layout.tsx +++ b/app/_layout.tsx @@ -62,14 +62,11 @@ export default function RootLayout() { }, [loaded]); const handleUserSelected = async (selectedUser: User) => { - setUser(selectedUser); + console.log('User selected:', selectedUser); // Debug log try { await AsyncStorage.setItem('@user', JSON.stringify(selectedUser)); - - // Store the Push Token to your server when the user is selected (optional) - if (expoPushToken) { - await savePushToken(selectedUser.id, expoPushToken); // Hypothetical function to send token to server - } + console.log('User data stored in AsyncStorage:', selectedUser); // Debug log + setUser(selectedUser); } catch (e) { console.error('Failed to save user or push token', e); } @@ -89,34 +86,37 @@ export default function RootLayout() { useEffect(() => { // Register for push notifications and set the push token registerForPushNotificationsAsync().then(async (token) => { - if (token) { - setExpoPushToken(token); + const storedUser = await AsyncStorage.getItem('@user'); + if (!storedUser) { + console.log('No user found in AsyncStorage'); // Debug log + return; + } + try { + const storedUser = await AsyncStorage.getItem('@user'); + console.log('Stored user data:', storedUser); // Debug log - // Upload push token to backend when successfully received - try { - const storedUser = await AsyncStorage.getItem('@user'); - if (storedUser) { - const user = JSON.parse(storedUser); + if (storedUser) { + const user = JSON.parse(storedUser); + console.log('Parsed user data:', user); // Debug log - // Send the push token to your Next.js API, along with the user's ID - await fetch(`${BASE_URL}/api/updatePushToken`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - apiKey: API_KEY, - userId: user.id, // The logged-in user's ID - pushToken: token, // The Expo push token collected - }), - }); - console.log('Push token successfully sent to backend'); - } else { - console.log('No user found in AsyncStorage'); - } - } catch (error) { - console.error('Failed to send push token to backend', error); + // Send the push token to your Next.js API + await fetch(`${BASE_URL}/updatePushToken`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + apiKey: API_KEY, + userId: user.id, + pushToken: token, + }), + }); + console.log('Push token update request sent with user ID:', user.id); // Debug log + } else { + console.log('No user found in AsyncStorage'); } + } catch (error) { + console.error('Failed to send push token to backend', error); } }); @@ -214,10 +214,3 @@ async function registerForPushNotificationsAsync() { return token; } - -// (Optional) A function to store push tokens in your backend server -async function savePushToken(userId: number, expoPushToken: string) { - // You would need to implement this function to save the user's push token to your backend. - // For example, you could send a POST request to your Next.js API that stores expoPushToken - console.log('Saving push token for user:', userId, 'with token:', expoPushToken); -} diff --git a/build-1726163811972.ipa b/build-1726163811972.ipa new file mode 100644 index 0000000..f634a23 Binary files /dev/null and b/build-1726163811972.ipa differ diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 4e1f46f..64153ed 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,15 +1,11 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - EXApplication (5.9.1): - - ExpoModulesCore - EXConstants (16.0.2): - ExpoModulesCore - EXJSONUtils (0.13.1) - EXManifests (0.14.3): - ExpoModulesCore - - EXNotifications (0.28.16): - - ExpoModulesCore - Expo (51.0.32): - ExpoModulesCore - expo-dev-client (4.0.26): @@ -221,8 +217,6 @@ PODS: - Yoga - ExpoAsset (10.0.10): - ExpoModulesCore - - ExpoDevice (6.0.2): - - ExpoModulesCore - ExpoFileSystem (17.0.1): - ExpoModulesCore - ExpoFont (12.0.10): @@ -1544,18 +1538,15 @@ PODS: DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - - EXApplication (from `../node_modules/expo-application/ios`) - EXConstants (from `../node_modules/expo-constants/ios`) - EXJSONUtils (from `../node_modules/expo-json-utils/ios`) - EXManifests (from `../node_modules/expo-manifests/ios`) - - EXNotifications (from `../node_modules/expo-notifications/ios`) - Expo (from `../node_modules/expo`) - expo-dev-client (from `../node_modules/expo-dev-client/ios`) - expo-dev-launcher (from `../node_modules/expo-dev-launcher`) - expo-dev-menu (from `../node_modules/expo-dev-menu`) - expo-dev-menu-interface (from `../node_modules/expo-dev-menu-interface/ios`) - ExpoAsset (from `../node_modules/expo-asset/ios`) - - ExpoDevice (from `../node_modules/expo-device/ios`) - ExpoFileSystem (from `../node_modules/expo-file-system/ios`) - ExpoFont (from `../node_modules/expo-font/ios`) - ExpoHead (from `../node_modules/expo-router/ios`) @@ -1637,16 +1628,12 @@ EXTERNAL SOURCES: :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" - EXApplication: - :path: "../node_modules/expo-application/ios" EXConstants: :path: "../node_modules/expo-constants/ios" EXJSONUtils: :path: "../node_modules/expo-json-utils/ios" EXManifests: :path: "../node_modules/expo-manifests/ios" - EXNotifications: - :path: "../node_modules/expo-notifications/ios" Expo: :path: "../node_modules/expo" expo-dev-client: @@ -1659,8 +1646,6 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-dev-menu-interface/ios" ExpoAsset: :path: "../node_modules/expo-asset/ios" - ExpoDevice: - :path: "../node_modules/expo-device/ios" ExpoFileSystem: :path: "../node_modules/expo-file-system/ios" ExpoFont: @@ -1804,18 +1789,15 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - EXApplication: c08200c34daca7af7fd76ac4b9d606077410e8ad EXConstants: 409690fbfd5afea964e5e9d6c4eb2c2b59222c59 EXJSONUtils: 30c17fd9cc364d722c0946a550dfbf1be92ef6a4 EXManifests: c1fab4c3237675e7b0299ea8df0bcb14baca4f42 - EXNotifications: b1b174716b287e161350a18de1d253aabceeea2d Expo: 33132a667698a3259a4e6c0af1b4936388e5fa33 expo-dev-client: 4f9100af6be210a360aa67f42649881251aa362a expo-dev-launcher: c8e85bf244a2492448c88adbc3585ca13572f7b9 expo-dev-menu: 0db38ce92be7228dadb588f7069e037fd9d165d8 expo-dev-menu-interface: be32c09f1e03833050f0ee290dcc86b3ad0e73e4 ExpoAsset: 323700f291684f110fb55f0d4022a3362ea9f875 - ExpoDevice: fc94f0e42ecdfd897e7590f2874fc64dfa7e9b1c ExpoFileSystem: 80bfe850b1f9922c16905822ecbf97acd711dc51 ExpoFont: 00756e6c796d8f7ee8d211e29c8b619e75cbf238 ExpoHead: fcb28a68ed4ba28f177394d2dfb8a0a8824cd103 diff --git a/ios/fuse.xcodeproj/project.pbxproj b/ios/fuse.xcodeproj/project.pbxproj index 973a45b..c61a51a 100644 --- a/ios/fuse.xcodeproj/project.pbxproj +++ b/ios/fuse.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 46; objects = { /* Begin PBXBuildFile section */ @@ -30,7 +30,7 @@ 6C2E3173556A471DD304B334 /* Pods-fuse.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-fuse.debug.xcconfig"; path = "Target Support Files/Pods-fuse/Pods-fuse.debug.xcconfig"; sourceTree = ""; }; 7A4D352CD337FB3A3BF06240 /* Pods-fuse.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-fuse.release.xcconfig"; path = "Target Support Files/Pods-fuse/Pods-fuse.release.xcconfig"; sourceTree = ""; }; AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = fuse/SplashScreen.storyboard; sourceTree = ""; }; - B50056BB879EC1FE9A5251D0 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = fuse/PrivacyInfo.xcprivacy; sourceTree = ""; }; + B50056BB879EC1FE9A5251D0 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = fuse/PrivacyInfo.xcprivacy; sourceTree = ""; }; BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; E3C56C9C8A70435F80C980CD /* fuse-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "fuse-Bridging-Header.h"; path = "fuse/fuse-Bridging-Header.h"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; @@ -273,11 +273,8 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-fuse/Pods-fuse-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/EXApplication/ExpoApplication_privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/EXNotifications/ExpoNotifications_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/ExpoDevice/ExpoDevice_privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/ExpoSystemUI/ExpoSystemUI_privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle", @@ -306,11 +303,8 @@ ); name = "[CP] Copy Pods Resources"; outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoApplication_privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoNotifications_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoDevice_privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoSystemUI_privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle", @@ -391,14 +385,9 @@ "FB_SONARKIT_ENABLED=1", ); INFOPLIST_FILE = fuse/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Fuse; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.lifestyle"; IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 1.0; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -424,14 +413,9 @@ CODE_SIGN_ENTITLEMENTS = fuse/fuse.entitlements; CURRENT_PROJECT_VERSION = 1; INFOPLIST_FILE = fuse/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Fuse; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.lifestyle"; IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 1.0; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -499,14 +483,14 @@ IPHONEOS_DEPLOYMENT_TARGET = 13.4; LD = ""; LDPLUSPLUS = ""; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_LDFLAGS = "$(inherited) "; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; @@ -558,13 +542,13 @@ IPHONEOS_DEPLOYMENT_TARGET = 13.4; LD = ""; LDPLUSPLUS = ""; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = "$(inherited) "; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; diff --git a/ios/fuse/Info.plist b/ios/fuse/Info.plist index c4bdcd9..436cf15 100644 --- a/ios/fuse/Info.plist +++ b/ios/fuse/Info.plist @@ -31,12 +31,6 @@ com.gibbyb.fuse - - CFBundleURLSchemes - - exp+fuse - - CFBundleVersion 1 @@ -52,8 +46,6 @@ NSUserActivityTypes $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route - $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route - $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route UILaunchStoryboardName SplashScreen diff --git a/ios/fuse/PrivacyInfo.xcprivacy b/ios/fuse/PrivacyInfo.xcprivacy index c6b452e..5bb83c5 100644 --- a/ios/fuse/PrivacyInfo.xcprivacy +++ b/ios/fuse/PrivacyInfo.xcprivacy @@ -4,16 +4,6 @@ NSPrivacyAccessedAPITypes - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategoryFileTimestamp - NSPrivacyAccessedAPITypeReasons - - C617.1 - 0A2A.1 - 3B52.1 - - NSPrivacyAccessedAPIType NSPrivacyAccessedAPICategoryUserDefaults @@ -24,10 +14,12 @@ NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPICategoryFileTimestamp NSPrivacyAccessedAPITypeReasons - 35F9.1 + 0A2A.1 + 3B52.1 + C617.1 @@ -39,6 +31,14 @@ 85F4.1 + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + NSPrivacyCollectedDataTypes diff --git a/ios/fuse/fuse.entitlements b/ios/fuse/fuse.entitlements index 018a6e2..f683276 100644 --- a/ios/fuse/fuse.entitlements +++ b/ios/fuse/fuse.entitlements @@ -1,8 +1,5 @@ - - aps-environment - development - + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index dfd3e17..3997ab5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "expo-font": "~12.0.9", "expo-linear-gradient": "~13.0.2", "expo-linking": "~6.3.1", - "expo-notifications": "~0.28.16", + "expo-notifications": "~0.28.17", "expo-router": "~3.5.23", "expo-splash-screen": "~0.27.5", "expo-status-bar": "~1.12.1", @@ -10354,9 +10354,9 @@ } }, "node_modules/expo-notifications": { - "version": "0.28.16", - "resolved": "https://registry.npmjs.org/expo-notifications/-/expo-notifications-0.28.16.tgz", - "integrity": "sha512-sj4oDip+uFNmxieGHkfS2Usrwbw2jfOTfQ22a7z5tdSo/vD6jWMlCHOnJifqYLjPxyqf9SLTsQWO3bmk7MY2Yg==", + "version": "0.28.17", + "resolved": "https://registry.npmjs.org/expo-notifications/-/expo-notifications-0.28.17.tgz", + "integrity": "sha512-tuhc/X385O1gLSBEsPpXSqmmBK6Ve6zG8u6YFa1kXILbyy83DHJuHB5ELJKo/HZdstlYeFjkDCei4haOuxCLCQ==", "license": "MIT", "dependencies": { "@expo/image-utils": "^0.5.0", diff --git a/package.json b/package.json index 7901093..d6b615f 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "react-native-vector-icons": "^10.1.0", "react-native-web": "~0.19.10", "expo-dev-client": "~4.0.26", - "expo-notifications": "~0.28.16", + "expo-notifications": "~0.28.17", "expo-device": "~6.0.2" }, "devDependencies": {