From c810265049aab8ad21428ecdc58f5934d6160683 Mon Sep 17 00:00:00 2001 From: Selim Ustel Date: Fri, 5 Dec 2025 15:10:33 +0100 Subject: [PATCH 1/3] add info-dev.plist for dev target --- ios/Podfile.lock | 2 +- ios/nativeTemplate.xcodeproj/project.pbxproj | 12 ++- ios/nativeTemplate/Info-dev.plist | 105 +++++++++++++++++++ ios/nativeTemplate/Info.plist | 17 ++- 4 files changed, 123 insertions(+), 13 deletions(-) create mode 100644 ios/nativeTemplate/Info-dev.plist diff --git a/ios/Podfile.lock b/ios/Podfile.lock index e7c605a0e..fcbc89a76 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2538,7 +2538,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 - DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb + DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 FBLazyVector: e32d34492c519a2194ec9d7f5e7a79d11b73f91c fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd diff --git a/ios/nativeTemplate.xcodeproj/project.pbxproj b/ios/nativeTemplate.xcodeproj/project.pbxproj index 1f2f8c15e..cecb6992e 100644 --- a/ios/nativeTemplate.xcodeproj/project.pbxproj +++ b/ios/nativeTemplate.xcodeproj/project.pbxproj @@ -28,6 +28,8 @@ 2C887FDA24B88A0E0003DC53 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2C887FD924B88A0E0003DC53 /* LaunchScreen.storyboard */; }; 2C887FDB24B88A0E0003DC53 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2C887FD924B88A0E0003DC53 /* LaunchScreen.storyboard */; }; 572D87C4D9F46E7564D1FE09 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = DBB22F41E3AF5D95F9759402 /* PrivacyInfo.xcprivacy */; }; + 6E2A5EF72EE2F17800FB5359 /* Info-dev.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6E2A5EF62EE2F17800FB5359 /* Info-dev.plist */; }; + 6E2A5EF82EE2F17800FB5359 /* Info-dev.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6E2A5EF62EE2F17800FB5359 /* Info-dev.plist */; }; 9DF4091425A46A56E2A9A405 /* libPods-nativeTemplate.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 73F36AC2CCD37CCD4E7B1BB8 /* libPods-nativeTemplate.a */; }; 9E9B12F82EAB8BA500714B41 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E9B12F62EAB8BA500714B41 /* AppDelegate.swift */; }; 9E9B12FA2EAB8C2800714B41 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E9B12F92EAB8C2800714B41 /* AppDelegate.swift */; }; @@ -70,6 +72,7 @@ 4D55DFFF6D52DC368FE13A23 /* Pods-nativeTemplate.releasedevapp.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-nativeTemplate.releasedevapp.xcconfig"; path = "Target Support Files/Pods-nativeTemplate/Pods-nativeTemplate.releasedevapp.xcconfig"; sourceTree = ""; }; 64F8A8A81DAAF68662AD5926 /* Pods-nativeTemplate.releasedevapp.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-nativeTemplate.releasedevapp.xcconfig"; path = "Target Support Files/Pods-nativeTemplate/Pods-nativeTemplate.releasedevapp.xcconfig"; sourceTree = ""; }; 6ABE4BDB54D431090249D8EC /* Pods-dev.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-dev.release.xcconfig"; path = "Target Support Files/Pods-dev/Pods-dev.release.xcconfig"; sourceTree = ""; }; + 6E2A5EF62EE2F17800FB5359 /* Info-dev.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-dev.plist"; path = "nativeTemplate/Info-dev.plist"; sourceTree = ""; }; 73F36AC2CCD37CCD4E7B1BB8 /* libPods-nativeTemplate.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-nativeTemplate.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 7EEDF4024CB6865C31DBA5BB /* Pods-nativeTemplate.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-nativeTemplate.release.xcconfig"; path = "Target Support Files/Pods-nativeTemplate/Pods-nativeTemplate.release.xcconfig"; sourceTree = ""; }; 9A27E05F0AD54B417B79E303 /* Pods-dev.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-dev.debug.xcconfig"; path = "Target Support Files/Pods-dev/Pods-dev.debug.xcconfig"; sourceTree = ""; }; @@ -134,6 +137,7 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, 2C887FD924B88A0E0003DC53 /* LaunchScreen.storyboard */, + 6E2A5EF62EE2F17800FB5359 /* Info-dev.plist */, 2C005A7823D5B1E200003E29 /* nativeTemplate.entitlements */, 9E9B12F62EAB8BA500714B41 /* AppDelegate.swift */, 9E9B12FF2EAB8D2600714B41 /* MendixAppDelegate.swift */, @@ -361,6 +365,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 6E2A5EF82EE2F17800FB5359 /* Info-dev.plist in Resources */, C5A009082BE291FE00F10EC1 /* PrivacyInfo.xcprivacy in Resources */, 2C887FDA24B88A0E0003DC53 /* LaunchScreen.storyboard in Resources */, 1A0B83DB22E09B2600EA1E51 /* Bundle in Resources */, @@ -376,6 +381,7 @@ files = ( 1A0B3AFD23992F8200388BF7 /* Images.xcassets in Resources */, 1A0B3AD32397E15800388BF7 /* MendixApp.storyboard in Resources */, + 6E2A5EF72EE2F17800FB5359 /* Info-dev.plist in Resources */, 1A0B3AEF2399058B00388BF7 /* config.release.xcconfig in Resources */, 2C887FDB24B88A0E0003DC53 /* LaunchScreen.storyboard in Resources */, 1A0B3AD62397EA8500388BF7 /* glyphicons-halflings-regular.ttf in Resources */, @@ -872,7 +878,7 @@ "$(inherited)", "${SRCROOT}/../node_modules/@mendix/native/ios/**", ); - INFOPLIST_FILE = NativeTemplate/Info.plist; + INFOPLIST_FILE = "nativeTemplate/Info-dev.plist"; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -929,7 +935,7 @@ "$(inherited)", "${SRCROOT}/../node_modules/@mendix/native/ios/**", ); - INFOPLIST_FILE = NativeTemplate/Info.plist; + INFOPLIST_FILE = "nativeTemplate/Info-dev.plist"; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -1133,7 +1139,7 @@ "$(inherited)", "${SRCROOT}/../node_modules/@mendix/native/ios/**", ); - INFOPLIST_FILE = NativeTemplate/Info.plist; + INFOPLIST_FILE = "nativeTemplate/Info-dev.plist"; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/ios/nativeTemplate/Info-dev.plist b/ios/nativeTemplate/Info-dev.plist new file mode 100644 index 000000000..98659b68f --- /dev/null +++ b/ios/nativeTemplate/Info-dev.plist @@ -0,0 +1,105 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + $(BUNDLE_DISPLAY_NAME) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + GoogleMapsApiKey + + LSApplicationQueriesSchemes + + mailto + tel + + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSAllowsLocalNetworking + + + NSBluetoothAlwaysUsageDescription + This app may need access to your Bluetooth connection + NSBluetoothPeripheralUsageDescription + This app may need access to your Bluetooth connection + NSCalendarsUsageDescription + This app requires access to the calendar + NSCameraUsageDescription + The camera can be used to open apps by scanning a QR code. + NSFaceIDUsageDescription + Enabling Face ID allows you quick and secure access to your account. + NSLocationAlwaysAndWhenInUseUsageDescription + To use that feature the app needs access to your location. + NSLocationAlwaysUsageDescription + To use that feature the app needs access to your location. + NSLocationWhenInUseUsageDescription + To use that feature the app needs access to your location. + NSMicrophoneUsageDescription + To use that feature the app needs access to your microphone. + NSPhotoLibraryUsageDescription + To use that feature the app needs access to your photo library. + Runtime url + $(RUNTIME_URL) + TargetName + ${TARGET_NAME} + UIAppFonts + + glyphicons-halflings-regular.ttf + AntDesign.ttf + Entypo.ttf + EvilIcons.ttf + Feather.ttf + FontAwesome.ttf + FontAwesome5_Brands.ttf + FontAwesome5_Regular.ttf + FontAwesome5_Solid.ttf + Fontisto.ttf + Foundation.ttf + Ionicons.ttf + MaterialCommunityIcons.ttf + MaterialIcons.ttf + Octicons.ttf + SimpleLineIcons.ttf + Zocial.ttf + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + ${MAIN_STORY_BOARD} + UIRequiredDeviceCapabilities + + arm64 + + UIRequiresFullScreen + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeRight + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationPortraitUpsideDown + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/nativeTemplate/Info.plist b/ios/nativeTemplate/Info.plist index eb2ba7158..a8d10a12d 100644 --- a/ios/nativeTemplate/Info.plist +++ b/ios/nativeTemplate/Info.plist @@ -2,11 +2,6 @@ - LSApplicationQueriesSchemes - - mailto - tel - CFBundleDevelopmentRegion en CFBundleDisplayName @@ -29,15 +24,19 @@ 1 GoogleMapsApiKey + LSApplicationQueriesSchemes + + mailto + tel + LSRequiresIPhoneOS NSAppTransportSecurity - NSAllowsArbitraryLoads NSAllowsLocalNetworking - + NSBluetoothAlwaysUsageDescription This app may need access to your Bluetooth connection @@ -49,12 +48,12 @@ The camera can be used to open apps by scanning a QR code. NSFaceIDUsageDescription Enabling Face ID allows you quick and secure access to your account. + NSLocationAlwaysAndWhenInUseUsageDescription + To use that feature the app needs access to your location. NSLocationAlwaysUsageDescription To use that feature the app needs access to your location. NSLocationWhenInUseUsageDescription To use that feature the app needs access to your location. - NSLocationAlwaysAndWhenInUseUsageDescription - To use that feature the app needs access to your location. NSMicrophoneUsageDescription To use that feature the app needs access to your microphone. NSPhotoLibraryUsageDescription From 5a50f725c5e6f450400a1616a477b77c1c0b286b Mon Sep 17 00:00:00 2001 From: Selim Ustel Date: Mon, 8 Dec 2025 16:09:27 +0100 Subject: [PATCH 2/3] add script to copy of the info.plist content to dev info.plist, and edit the NSAllowsLocalNetworking --- ios/Podfile | 1 + ios/mendix_utils.rb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/ios/Podfile b/ios/Podfile index 1cf83aa80..f6d038c79 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -23,6 +23,7 @@ platform :ios, deployment_target prepare_react_native_project! generate_mendix_delegate +setupInfoDevPlist linkage = ENV['USE_FRAMEWORKS'] if linkage != nil diff --git a/ios/mendix_utils.rb b/ios/mendix_utils.rb index f41c2c59c..3dcc4f365 100644 --- a/ios/mendix_utils.rb +++ b/ios/mendix_utils.rb @@ -177,3 +177,22 @@ def include_script_phases(phases) def get_excluded_capabilities ["nativeOTA"] end + +def setupInfoDevPlist + source_plist = "nativeTemplate/Info.plist" + dest_plist = "nativeTemplate/Info-dev.plist" + + # Read the source plist as text + content = File.read(source_plist) + + # Replace NSAllowsLocalNetworking with + content.gsub!( + /(NSAllowsLocalNetworking<\/key>\s*)/, + '\1' + ) + + # Write back the modified content + File.open(dest_plist, "w") do |file| + file << content + end +end From 0bcf25e4877e33ddfa7e10ffbea7956b210e3503 Mon Sep 17 00:00:00 2001 From: Selim Ustel Date: Wed, 10 Dec 2025 14:14:06 +0100 Subject: [PATCH 3/3] update podfile.lock and project --- ios/Podfile.lock | 4 ++-- ios/nativeTemplate.xcodeproj/project.pbxproj | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index fcbc89a76..e7fe94186 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2542,7 +2542,7 @@ SPEC CHECKSUMS: fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 FBLazyVector: e32d34492c519a2194ec9d7f5e7a79d11b73f91c fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd - glog: eb93e2f488219332457c3c4eafd2738ddc7e80b8 + glog: 69ef571f3de08433d766d614c73a9838a06bf7eb hermes-engine: 2771b98fb813fdc6f92edd7c9c0035ecabf9fee7 IQKeyboardManager: c8665b3396bd0b79402b4c573eac345a31c7d485 libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7 @@ -2636,6 +2636,6 @@ SPEC CHECKSUMS: SSZipArchive: 8a6ee5677c8e304bebc109e39cf0da91ccef22ea Yoga: e14bad835e12b6c7e2260fc320bd00e0f4b45add -PODFILE CHECKSUM: bd6c88a4c9599e978dc53573bb32d0ff5fe3a42f +PODFILE CHECKSUM: 532b439839464076449499a1a589dce62fdeb5e5 COCOAPODS: 1.16.2 diff --git a/ios/nativeTemplate.xcodeproj/project.pbxproj b/ios/nativeTemplate.xcodeproj/project.pbxproj index cecb6992e..cd6f832a4 100644 --- a/ios/nativeTemplate.xcodeproj/project.pbxproj +++ b/ios/nativeTemplate.xcodeproj/project.pbxproj @@ -136,8 +136,8 @@ EBC80A5F22DF41DD007E5F3D /* Config */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, - 2C887FD924B88A0E0003DC53 /* LaunchScreen.storyboard */, 6E2A5EF62EE2F17800FB5359 /* Info-dev.plist */, + 2C887FD924B88A0E0003DC53 /* LaunchScreen.storyboard */, 2C005A7823D5B1E200003E29 /* nativeTemplate.entitlements */, 9E9B12F62EAB8BA500714B41 /* AppDelegate.swift */, 9E9B12FF2EAB8D2600714B41 /* MendixAppDelegate.swift */,