diff --git a/platform/ios/app-swift/BUILD.bazel b/platform/ios/app-swift/BUILD.bazel
index 1c8eff70c..36cb9db88 100644
--- a/platform/ios/app-swift/BUILD.bazel
+++ b/platform/ios/app-swift/BUILD.bazel
@@ -41,6 +41,7 @@ swift_library(
ios_application(
name = "MapLibreApp",
+ app_icons = glob(["app_icons_ios.xcassets/**"]),
bundle_id = "{}.maplibre.app".format(BUNDLE_ID_PREFIX),
families = [
"iphone",
diff --git a/platform/ios/app-swift/Info.plist b/platform/ios/app-swift/Info.plist
index 9ece1a40c..509a42e5c 100644
--- a/platform/ios/app-swift/Info.plist
+++ b/platform/ios/app-swift/Info.plist
@@ -36,11 +36,12 @@
UIRequiredDeviceCapabilities
- armv7
+ arm64
UISupportedInterfaceOrientations
UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight
diff --git a/platform/ios/app-swift/app_icons_ios.xcassets/app_icon.appiconset/Contents.json b/platform/ios/app-swift/app_icons_ios.xcassets/app_icon.appiconset/Contents.json
new file mode 100644
index 000000000..090dee7c9
--- /dev/null
+++ b/platform/ios/app-swift/app_icons_ios.xcassets/app_icon.appiconset/Contents.json
@@ -0,0 +1,104 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "2x",
+ "size" : "38x38"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "3x",
+ "size" : "38x38"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "2x",
+ "size" : "64x64"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "3x",
+ "size" : "64x64"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "2x",
+ "size" : "68x68"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "maplibre-app-icon.png",
+ "idiom" : "universal",
+ "platform" : "ios",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/platform/ios/app-swift/app_icons_ios.xcassets/app_icon.appiconset/maplibre-app-icon.png b/platform/ios/app-swift/app_icons_ios.xcassets/app_icon.appiconset/maplibre-app-icon.png
new file mode 100644
index 000000000..5d4921fa3
Binary files /dev/null and b/platform/ios/app-swift/app_icons_ios.xcassets/app_icon.appiconset/maplibre-app-icon.png differ
diff --git a/platform/ios/app/Assets.xcassets/AppIcon.appiconset/maplibre-app-icon.png b/platform/ios/app/Assets.xcassets/AppIcon.appiconset/maplibre-app-icon.png
index 7dd4c4671..5d4921fa3 100644
Binary files a/platform/ios/app/Assets.xcassets/AppIcon.appiconset/maplibre-app-icon.png and b/platform/ios/app/Assets.xcassets/AppIcon.appiconset/maplibre-app-icon.png differ
diff --git a/platform/ios/bazel/macros.bzl b/platform/ios/bazel/macros.bzl
index 496106584..af2b49751 100644
--- a/platform/ios/bazel/macros.bzl
+++ b/platform/ios/bazel/macros.bzl
@@ -39,7 +39,7 @@ def _env_info_plist_impl(ctx):
for var in "${vars[@]}"; do
if [ -n "${!var}" ]; then
- if plutil -p $out | grep -q "$var"; then
+ if plutil -p $out | grep -q "$var"; then
# skip if there is a key present (let the user manually override)
#plutil -replace $var -string ${!var} $out
echo "User $var key detected. Update ignored"