diff --git a/ios/NeulandNext.xcodeproj/project.pbxproj b/ios/NeulandNext.xcodeproj/project.pbxproj index 6053cecd..c73bba5a 100644 --- a/ios/NeulandNext.xcodeproj/project.pbxproj +++ b/ios/NeulandNext.xcodeproj/project.pbxproj @@ -24,7 +24,6 @@ 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = NeulandNext/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = NeulandNext/AppDelegate.mm; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = NeulandNext/Images.xcassets; sourceTree = ""; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = NeulandNext/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = NeulandNext/main.m; sourceTree = ""; }; 25124D82DC7147C1A383882B /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "NeulandNext/noop-file.swift"; sourceTree = ""; }; 476495428FB292A45408F26C /* Pods-NeulandNext.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NeulandNext.release.xcconfig"; path = "Target Support Files/Pods-NeulandNext/Pods-NeulandNext.release.xcconfig"; sourceTree = ""; }; @@ -32,6 +31,8 @@ 6D9C36C5590640DA61E545A1 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = NeulandNext/PrivacyInfo.xcprivacy; sourceTree = ""; }; 9951B4687B577A7A4970F897 /* Pods-NeulandNext.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NeulandNext.debug.xcconfig"; path = "Target Support Files/Pods-NeulandNext/Pods-NeulandNext.debug.xcconfig"; sourceTree = ""; }; AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = NeulandNext/SplashScreen.storyboard; sourceTree = ""; }; + B7A12D0E2C2C8ACB00FDAB26 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = en; path = en.lproj/Info.plist; sourceTree = ""; }; + B7A12D102C2C8ADB00FDAB26 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = de; path = de.lproj/Info.plist; sourceTree = ""; }; BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; BE89E54F9B2F4C95465DBC97 /* libPods-NeulandNext.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NeulandNext.a"; sourceTree = BUILT_PRODUCTS_DIR; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; @@ -58,7 +59,7 @@ 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 13B07FB01A68108700A75B9A /* AppDelegate.mm */, 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, + B7A12D0F2C2C8ACB00FDAB26 /* Info.plist */, 13B07FB71A68108700A75B9A /* main.m */, 25124D82DC7147C1A383882B /* noop-file.swift */, AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, @@ -197,6 +198,7 @@ knownRegions = ( en, Base, + de, ); mainGroup = 83CBB9F61A601CBA00E9B192; packageReferences = ( @@ -241,6 +243,20 @@ shellPath = /bin/sh; shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n/bin/sh `\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('@sentry/react-native/package.json')) + '/scripts/sentry-xcode.sh'\"` `\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; }; + 1515044FA4184334AD7857BB /* Remove signature files (Xcode 15 workaround) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Remove signature files (Xcode 15 workaround)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"$XCODE_VERSION_MAJOR\" = \"1500\" ]; then\n echo \"Remove signature files (Xcode 15 workaround)\";\n rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\";\n fi"; + }; 416B75F9501048ACA40DB650 /* Remove signature files (Xcode 15 workaround) */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -452,23 +468,6 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NeulandNext/Pods-NeulandNext-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 1515044FA4184334AD7857BB /* Remove signature files (Xcode 15 workaround) */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - name = "Remove signature files (Xcode 15 workaround)"; - inputPaths = ( - ); - outputPaths = ( - ); - shellPath = /bin/sh; - shellScript = "if [ \"$XCODE_VERSION_MAJOR\" = \"1500\" ]; then - echo \"Remove signature files (Xcode 15 workaround)\"; - rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\"; - fi"; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -485,6 +484,19 @@ }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXVariantGroup section */ + B7A12D0F2C2C8ACB00FDAB26 /* Info.plist */ = { + isa = PBXVariantGroup; + children = ( + B7A12D0E2C2C8ACB00FDAB26 /* en */, + B7A12D102C2C8ADB00FDAB26 /* de */, + ); + name = Info.plist; + path = NeulandNext; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + /* Begin XCBuildConfiguration section */ 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; @@ -518,7 +530,7 @@ ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = "de.neuland-ingolstadt.neuland-app"; - PRODUCT_NAME = "NeulandNext"; + PRODUCT_NAME = NeulandNext; SWIFT_OBJC_BRIDGING_HEADER = "NeulandNext/NeulandNext-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -539,7 +551,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = FSXB76X6V2; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = NeulandNext/Info.plist; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; IPHONEOS_DEPLOYMENT_TARGET = 13.4; @@ -555,7 +567,7 @@ ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = "de.neuland-ingolstadt.neuland-app"; - PRODUCT_NAME = "NeulandNext"; + PRODUCT_NAME = NeulandNext; SWIFT_OBJC_BRIDGING_HEADER = "NeulandNext/NeulandNext-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/ios/NeulandNext/Info.plist b/ios/NeulandNext/Info.plist index 7f2febdb..a9c15975 100644 --- a/ios/NeulandNext/Info.plist +++ b/ios/NeulandNext/Info.plist @@ -76,7 +76,7 @@ $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 - CFBundleLocalizations + Allow $(PRODUCT_NAME) to access your location en de diff --git a/ios/NeulandNext/de.lproj/Info.plist b/ios/NeulandNext/de.lproj/Info.plist new file mode 100644 index 00000000..0b96670d --- /dev/null +++ b/ios/NeulandNext/de.lproj/Info.plist @@ -0,0 +1,172 @@ + + + + + CADisableMinimumFrameDurationOnPhone + + CFBundleAllowMixedLocalizations + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Neuland Next + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIcons + + CFBundleAlternateIcons + + Default + + CFBundleIconFiles + + Default + + UIPrerenderedIcon + + + ModernDark + + CFBundleIconFiles + + ModernDark + + UIPrerenderedIcon + + + ModernGreen + + CFBundleIconFiles + + ModernGreen + + UIPrerenderedIcon + + + Retro + + CFBundleIconFiles + + Retro + + UIPrerenderedIcon + + + RainbowDark + + CFBundleIconFiles + + RainbowDark + + UIPrerenderedIcon + + + RainbowMoonLight + + CFBundleIconFiles + + RainbowMoonLight + + UIPrerenderedIcon + + + + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLocalizations + + en + de + + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 0.8.1 + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleURLSchemes + + neuland + de.neuland-ingolstadt.neuland-app + + + + CFBundleURLSchemes + + exp+neuland-app-native + + + + CFBundleVersion + 1 + ITSAppUsesNonExemptEncryption + + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSAllowsLocalNetworking + + + NSFaceIDUsageDescription + Erlaube $(PRODUCT_NAME) Face ID zu verwenden. + NSLocationAlwaysAndWhenInUseUsageDescription + Erlaube $(PRODUCT_NAME) deinen Standort zu verwenden. + NSLocationAlwaysUsageDescription + Erlaube $(PRODUCT_NAME) Zugriff auf deinen Standort. + NSLocationWhenInUseUsageDescription + Erlaube $(PRODUCT_NAME) Zugriff auf deinen Standort. + NSUserActivityTypes + + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + + RCTAsyncStorageExcludeFromBackup + + UIBackgroundModes + + fetch + + UILaunchStoryboardName + SplashScreen + UIRequiredDeviceCapabilities + + arm64 + + UIRequiresFullScreen + + UIStatusBarStyle + UIStatusBarStyleDefault + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIUserInterfaceStyle + Automatic + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/NeulandNext/en.lproj/Info.plist b/ios/NeulandNext/en.lproj/Info.plist new file mode 100644 index 00000000..8d8d2839 --- /dev/null +++ b/ios/NeulandNext/en.lproj/Info.plist @@ -0,0 +1,172 @@ + + + + + CADisableMinimumFrameDurationOnPhone + + CFBundleAllowMixedLocalizations + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Neuland Next + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIcons + + CFBundleAlternateIcons + + Default + + CFBundleIconFiles + + Default + + UIPrerenderedIcon + + + ModernDark + + CFBundleIconFiles + + ModernDark + + UIPrerenderedIcon + + + ModernGreen + + CFBundleIconFiles + + ModernGreen + + UIPrerenderedIcon + + + Retro + + CFBundleIconFiles + + Retro + + UIPrerenderedIcon + + + RainbowDark + + CFBundleIconFiles + + RainbowDark + + UIPrerenderedIcon + + + RainbowMoonLight + + CFBundleIconFiles + + RainbowMoonLight + + UIPrerenderedIcon + + + + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLocalizations + + en + de + + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 0.8.1 + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleURLSchemes + + neuland + de.neuland-ingolstadt.neuland-app + + + + CFBundleURLSchemes + + exp+neuland-app-native + + + + CFBundleVersion + 1 + ITSAppUsesNonExemptEncryption + + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSAllowsLocalNetworking + + + NSFaceIDUsageDescription + Allow $(PRODUCT_NAME) to use Face ID. + NSLocationAlwaysAndWhenInUseUsageDescription + Allow $(PRODUCT_NAME) to use your location. + NSLocationAlwaysUsageDescription + Allow $(PRODUCT_NAME) to access your location. + NSLocationWhenInUseUsageDescription + Allow $(PRODUCT_NAME) to access your location. + NSUserActivityTypes + + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + + RCTAsyncStorageExcludeFromBackup + + UIBackgroundModes + + fetch + + UILaunchStoryboardName + SplashScreen + UIRequiredDeviceCapabilities + + arm64 + + UIRequiresFullScreen + + UIStatusBarStyle + UIStatusBarStyleDefault + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIUserInterfaceStyle + Automatic + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/TestFlight/WhatToTest.de_DE.txt b/ios/TestFlight/WhatToTest.de_DE.txt new file mode 100644 index 00000000..6c3fbb45 --- /dev/null +++ b/ios/TestFlight/WhatToTest.de_DE.txt @@ -0,0 +1,8 @@ +Was ist neu? +- neues Karten-Design mit Darkmode +- Vorschlag für die nächste Vorlesung auf der Karte +- Speiseplan der Mensa Neuburg +- mehr Details zu CL-Veranstaltungen +- neues Standard-App-Icon +- neues Easter Egg zum Freischalten des Retro-App-Icons +- Fehlerbehebungen und Verbesserungen \ No newline at end of file diff --git a/ios/TestFlight/WhatToTest.en-US.txt b/ios/TestFlight/WhatToTest.en-US.txt new file mode 100644 index 00000000..4c5b553b --- /dev/null +++ b/ios/TestFlight/WhatToTest.en-US.txt @@ -0,0 +1,8 @@ +What's new? +- new map design with darkmode support +- next lecture suggestion on map +- Neuburg canteen meal plan +- more CL event details +- new default app icon +- new easter egg to unlock retro app icon +- bug fixes and improvements \ No newline at end of file