diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf
index 51a87e3eab741f88e7d5b3c3f290011302fa8072..5da95f16bf89766c1a64c6d7ca397f22232b771d 100644
--- a/mkspecs/macx-ios-clang/features/default_post.prf
+++ b/mkspecs/macx-ios-clang/features/default_post.prf
@@ -201,7 +201,7 @@ macx-xcode {
     arch_iphonesimulator.value = $$QMAKE_IOS_SIMULATOR_ARCHS
 
     QMAKE_MAC_XCODE_SETTINGS += arch_iphoneos arch_iphonesimulator
-    unset(QMAKE_XCODE_ARCHS)
+    QMAKE_XCODE_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS
 } else {
     # Be more specific about which architecture we're targeting
     contains(QT_ARCH, arm.*): \
diff --git a/mkspecs/macx-ios-clang/features/qt.prf b/mkspecs/macx-ios-clang/features/qt.prf
index a5b00377eedb240e4081bcbad1b5bbf80a51dd48..7ca3198dbef5fe88953bfd8fb74630fb121847a1 100644
--- a/mkspecs/macx-ios-clang/features/qt.prf
+++ b/mkspecs/macx-ios-clang/features/qt.prf
@@ -32,17 +32,19 @@ equals(TEMPLATE, app):contains(QT, gui(-private)?) {
         # called 'qt_main' now.
 
         macx-xcode {
-            objects_dir = "${OBJECT_FILE_DIR}-${CURRENT_VARIANT}/${CURRENT_ARCH}"
+            objects_dir = "${OBJECT_FILE_DIR}-${CURRENT_VARIANT}"
+            archs = "${ARCHS}"
         } else {
             objects_dir = $$OBJECTS_DIR
             isEmpty(objects_dir): \
                 objects_dir = .
+            archs = "$$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS"
         }
 
         !isEmpty(QMAKE_PRE_LINK): \
             QMAKE_PRE_LINK += ";"
 
-        QMAKE_PRE_LINK += $$QMAKESPEC/rename_main.sh $${objects_dir}
+        QMAKE_PRE_LINK += $$QMAKESPEC/rename_main.sh $${objects_dir} \"$${archs}\"
     }
 }
 
diff --git a/mkspecs/macx-ios-clang/rename_main.sh b/mkspecs/macx-ios-clang/rename_main.sh
index b1321e855ee8a35eb2a86b3e0e86bf703b233611..040140b7eeb8ed635c546c9678976ca1f54fc323 100755
--- a/mkspecs/macx-ios-clang/rename_main.sh
+++ b/mkspecs/macx-ios-clang/rename_main.sh
@@ -41,10 +41,14 @@
 ##
 #############################################################################
 
-if [ $# -eq 0 ]; then
-    echo "usage: $0 <path to object files>"
+if [ $# -ne 2 ]; then
+    echo "$0: wrong number of arguments for internal tool used by iOS mkspec"
 else
-    for f in $(find $1 -name '*.o'); do
+    arch_paths=""
+    for a in $2; do
+        arch_paths="$arch_paths $1/$a"
+    done
+    for f in $(find $arch_paths -name '*.o'); do
         # Skip object files without the _main symbol
         nm $f 2>/dev/null | grep -q 'T _main$' || continue