diff --git a/contrib/mobile/CMakeLists.txt b/contrib/mobile/CMakeLists.txt
index 5ac87d54f1066f1ffa1e6bca400bffa9ed8b3528..f37e434cdbc4cc707b8af8f44759701bf4778fe1 100644
--- a/contrib/mobile/CMakeLists.txt
+++ b/contrib/mobile/CMakeLists.txt
@@ -57,11 +57,12 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
   endif(PETSC_FRAMEWORK)
   # add target
   add_custom_target(xcodeProject
+    cd ${CMAKE_CURRENT_SOURCE_DIR}/utils/ && ${CMAKE_CURRENT_SOURCE_DIR}/utils/make_icon_ios.sh
     COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/
+    COMMAND ${CMAKE_COMMAND} -E copy_directory  ${CMAKE_CURRENT_SOURCE_DIR}/utils/ios.iconset/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
+    COMMAND ${CMAKE_COMMAND} -E copy_directory  ${CMAKE_CURRENT_SOURCE_DIR}/iOS/Default-568h@2x.png ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Default-568h@2x.png
     COMMAND ${CMAKE_COMMAND} -E copy_directory  ${CMAKE_CURRENT_SOURCE_DIR}/iOS/Onelab/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
     COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/iOS/Onelab.xcodeproj/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab.xcodeproj/
-    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/iOS/ic_launcher.png ${CMAKE_CURRENT_BINARY_DIR}/Onelab/
-    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/iOS/ic_launcher_retina.png ${CMAKE_CURRENT_BINARY_DIR}/Onelab/
     COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawContext.cpp ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
     COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawContext.h ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
     COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawGeom.cpp ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
diff --git a/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj b/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj
index 6b434f3bcac38de1443a0cd8085a13b72fdd9468..1a3805161d9b06357aff22cdffdcc200c83cfa33 100644
--- a/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj
+++ b/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj
@@ -9,6 +9,14 @@
 /* Begin PBXBuildFile section */
 		9C1C10FA17BA5E7D00BFD483 /* OptionsViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C1C10F917BA5E7D00BFD483 /* OptionsViewController.mm */; };
 		9C6A645817A7C3DB00DEDAFC /* drawString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9C6A645617A7C3DB00DEDAFC /* drawString.cpp */; };
+		9C928629180D217B00AAABD4 /* icon_app_ipad_61.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C928622180D217A00AAABD4 /* icon_app_ipad_61.png */; };
+		9C92862A180D217B00AAABD4 /* icon_app_ipad_retina_61.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C928623180D217A00AAABD4 /* icon_app_ipad_retina_61.png */; };
+		9C92862B180D217B00AAABD4 /* icon_app_ipad_retina.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C928624180D217A00AAABD4 /* icon_app_ipad_retina.png */; };
+		9C92862C180D217B00AAABD4 /* icon_app_ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C928625180D217A00AAABD4 /* icon_app_ipad.png */; };
+		9C92862D180D217B00AAABD4 /* icon_app_iphone_61.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C928626180D217A00AAABD4 /* icon_app_iphone_61.png */; };
+		9C92862E180D217B00AAABD4 /* icon_app_iphone_retina_61.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C928627180D217A00AAABD4 /* icon_app_iphone_retina_61.png */; };
+		9C92862F180D217B00AAABD4 /* icon_app_iphone_retina.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C928628180D217B00AAABD4 /* icon_app_iphone_retina.png */; };
+		9C928633180D297C00AAABD4 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C928632180D297C00AAABD4 /* Default-568h@2x.png */; };
 		9C95B7F61726C88E00C0CCE2 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C95B7F51726C88E00C0CCE2 /* main.mm */; };
 		9C96083B1712C16300E1D4A0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96083A1712C16300E1D4A0 /* UIKit.framework */; };
 		9C96083D1712C16300E1D4A0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96083C1712C16300E1D4A0 /* Foundation.framework */; };
@@ -22,8 +30,6 @@
 		9C96089D1712C7F600E1D4A0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96089C1712C7F600E1D4A0 /* QuartzCore.framework */; };
 		9C96089F1712C8EB00E1D4A0 /* emulatorFix.c in Sources */ = {isa = PBXBuildFile; fileRef = 9C96089E1712C8EB00E1D4A0 /* emulatorFix.c */; };
 		9C9608AC1712EF0900E1D4A0 /* iPadStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9C9608AA1712EF0900E1D4A0 /* iPadStoryboard.storyboard */; };
-		9C9F8BCD174B5A1B004332C5 /* ic_launcher_retina.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C9F8BCC174B5A1B004332C5 /* ic_launcher_retina.png */; };
-		9C9F8BCF174B5A23004332C5 /* ic_launcher.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C9F8BCE174B5A23004332C5 /* ic_launcher.png */; };
 		9CC6EBB717BA0A38001CA21A /* drawGeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9CC6EBB617BA0A38001CA21A /* drawGeom.cpp */; };
 		9CC6EBB917BA1CC7001CA21A /* drawMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9CC6EBB817BA1CC7001CA21A /* drawMesh.cpp */; };
 		9CC85C021790286C00F241C4 /* files in Resources */ = {isa = PBXBuildFile; fileRef = 9CC85C011790286C00F241C4 /* files */; };
@@ -48,6 +54,14 @@
 		9C1C10F917BA5E7D00BFD483 /* OptionsViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OptionsViewController.mm; sourceTree = "<group>"; };
 		9C6A645617A7C3DB00DEDAFC /* drawString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = drawString.cpp; sourceTree = "<group>"; usesTabs = 1; };
 		9C6A645717A7C3DB00DEDAFC /* drawString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = drawString.h; sourceTree = "<group>"; usesTabs = 1; };
+		9C928622180D217A00AAABD4 /* icon_app_ipad_61.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_app_ipad_61.png; sourceTree = "<group>"; };
+		9C928623180D217A00AAABD4 /* icon_app_ipad_retina_61.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_app_ipad_retina_61.png; sourceTree = "<group>"; };
+		9C928624180D217A00AAABD4 /* icon_app_ipad_retina.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_app_ipad_retina.png; sourceTree = "<group>"; };
+		9C928625180D217A00AAABD4 /* icon_app_ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_app_ipad.png; sourceTree = "<group>"; };
+		9C928626180D217A00AAABD4 /* icon_app_iphone_61.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_app_iphone_61.png; sourceTree = "<group>"; };
+		9C928627180D217A00AAABD4 /* icon_app_iphone_retina_61.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_app_iphone_retina_61.png; sourceTree = "<group>"; };
+		9C928628180D217B00AAABD4 /* icon_app_iphone_retina.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_app_iphone_retina.png; sourceTree = "<group>"; };
+		9C928632180D297C00AAABD4 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
 		9C95B7F51726C88E00C0CCE2 /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; };
 		9C9608361712C16300E1D4A0 /* Onelab.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Onelab.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		9C96083A1712C16300E1D4A0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
@@ -68,8 +82,6 @@
 		9C96089E1712C8EB00E1D4A0 /* emulatorFix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = emulatorFix.c; sourceTree = "<group>"; usesTabs = 1; };
 		9C9608AB1712EF0900E1D4A0 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/iPadStoryboard.storyboard; sourceTree = "<group>"; };
 		9C99754C17390DEE0036EC24 /* iosGModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iosGModel.h; sourceTree = "<group>"; usesTabs = 1; };
-		9C9F8BCC174B5A1B004332C5 /* ic_launcher_retina.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_launcher_retina.png; sourceTree = "<group>"; };
-		9C9F8BCE174B5A23004332C5 /* ic_launcher.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_launcher.png; sourceTree = "<group>"; };
 		9CC6EBB617BA0A38001CA21A /* drawGeom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = drawGeom.cpp; sourceTree = "<group>"; usesTabs = 1; };
 		9CC6EBB817BA1CC7001CA21A /* drawMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = drawMesh.cpp; sourceTree = "<group>"; };
 		9CC85C011790286C00F241C4 /* files */ = {isa = PBXFileReference; lastKnownFileType = folder; path = files; sourceTree = "<group>"; };
@@ -121,11 +133,24 @@
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
+		9C928621180D216500AAABD4 /* icons */ = {
+			isa = PBXGroup;
+			children = (
+				9C928622180D217A00AAABD4 /* icon_app_ipad_61.png */,
+				9C928623180D217A00AAABD4 /* icon_app_ipad_retina_61.png */,
+				9C928624180D217A00AAABD4 /* icon_app_ipad_retina.png */,
+				9C928625180D217A00AAABD4 /* icon_app_ipad.png */,
+				9C928626180D217A00AAABD4 /* icon_app_iphone_61.png */,
+				9C928627180D217A00AAABD4 /* icon_app_iphone_retina_61.png */,
+				9C928628180D217B00AAABD4 /* icon_app_iphone_retina.png */,
+			);
+			name = icons;
+			sourceTree = "<group>";
+		};
 		9C96082B1712C16300E1D4A0 = {
 			isa = PBXGroup;
 			children = (
-				9C9F8BCE174B5A23004332C5 /* ic_launcher.png */,
-				9C9F8BCC174B5A1B004332C5 /* ic_launcher_retina.png */,
+				9C928632180D297C00AAABD4 /* Default-568h@2x.png */,
 				9C9608401712C16300E1D4A0 /* Onelab */,
 				9C9608391712C16300E1D4A0 /* Frameworks */,
 				9C9608371712C16300E1D4A0 /* Products */,
@@ -161,6 +186,7 @@
 		9C9608401712C16300E1D4A0 /* Onelab */ = {
 			isa = PBXGroup;
 			children = (
+				9C928621180D216500AAABD4 /* icons */,
 				9CC85C011790286C00F241C4 /* files */,
 				9C9608AA1712EF0900E1D4A0 /* iPadStoryboard.storyboard */,
 				9CE1A65817B0FB9600E5152F /* iPhoneiPodStoryboard.storyboard */,
@@ -270,10 +296,16 @@
 			buildActionMask = 2147483647;
 			files = (
 				9C9608AC1712EF0900E1D4A0 /* iPadStoryboard.storyboard in Resources */,
-				9C9F8BCD174B5A1B004332C5 /* ic_launcher_retina.png in Resources */,
-				9C9F8BCF174B5A23004332C5 /* ic_launcher.png in Resources */,
+				9C928633180D297C00AAABD4 /* Default-568h@2x.png in Resources */,
 				9CC85C021790286C00F241C4 /* files in Resources */,
+				9C92862D180D217B00AAABD4 /* icon_app_iphone_61.png in Resources */,
+				9C92862A180D217B00AAABD4 /* icon_app_ipad_retina_61.png in Resources */,
+				9C92862F180D217B00AAABD4 /* icon_app_iphone_retina.png in Resources */,
+				9C92862C180D217B00AAABD4 /* icon_app_ipad.png in Resources */,
 				9CE1A65A17B0FB9700E5152F /* iPhoneiPodStoryboard.storyboard in Resources */,
+				9C928629180D217B00AAABD4 /* icon_app_ipad_61.png in Resources */,
+				9C92862B180D217B00AAABD4 /* icon_app_ipad_retina.png in Resources */,
+				9C92862E180D217B00AAABD4 /* icon_app_iphone_retina_61.png in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -359,6 +391,7 @@
 				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = 2;
+				VALID_ARCHS = "armv7 armv7s";
 			};
 			name = Debug;
 		};
@@ -388,6 +421,7 @@
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = 2;
 				VALIDATE_PRODUCT = YES;
+				VALID_ARCHS = "armv7 armv7s";
 			};
 			name = Release;
 		};
diff --git a/contrib/mobile/iOS/ic_launcher.png b/contrib/mobile/iOS/ic_launcher.png
deleted file mode 100644
index 0f700e7b64a142a517b544a6f8ead990363456bd..0000000000000000000000000000000000000000
Binary files a/contrib/mobile/iOS/ic_launcher.png and /dev/null differ
diff --git a/contrib/mobile/iOS/ic_launcher_retina.png b/contrib/mobile/iOS/ic_launcher_retina.png
deleted file mode 100644
index b4e47dddbd234d2893e89b54b51be51468d9c9e1..0000000000000000000000000000000000000000
Binary files a/contrib/mobile/iOS/ic_launcher_retina.png and /dev/null differ
diff --git a/contrib/mobile/utils/make_icon_ios.sh b/contrib/mobile/utils/make_icon_ios.sh
new file mode 100755
index 0000000000000000000000000000000000000000..43752d7091db8c42383eaf55405cd46bb2f45e67
--- /dev/null
+++ b/contrib/mobile/utils/make_icon_ios.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+mkdir ios.iconset
+# App icons (iPad)
+convert -scale 152 ../../../utils/icons/gmsh_1024x1024.png ios.iconset/icon_app_ipad_retina.png
+convert -scale 144 ../../../utils/icons/gmsh_1024x1024.png ios.iconset/icon_app_ipad_retina_61.png
+convert -scale 76 ../../../utils/icons/gmsh_1024x1024.png ios.iconset/icon_app_ipad.png
+convert -scale 72 ../../../utils/icons/gmsh_1024x1024.png ios.iconset/icon_app_ipad_61.png
+
+# App icons (iPhone)
+convert -scale 120 ../../../utils/icons/gmsh_1024x1024.png ios.iconset/icon_app_iphone_retina.png
+convert -scale 114 ../../../utils/icons/gmsh_1024x1024.png ios.iconset/icon_app_iphone_retina_61.png
+convert -scale 57 ../../../utils/icons/gmsh_1024x1024.png ios.iconset/icon_app_iphone_61.png