Running a default Simulator:
open -a Simulator.app
List of devices:
xcrun simctl list
To build my app for iOS I tried to run CMake from the command line without QT Creator:
cmake -S /Users/admin/dev/repos/examples/src/LinesGame/LinesGameQt -B . -DCMAKE_GENERATOR:STRING=Xcode \
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=./.qtc/package-manager/auto-setup.cmake -DQT_QMAKE_EXECUTABLE:FILEPATH=/Users/admin/dev/libs/QT6/release/iOS/bin/qmake6 \
-DCMAKE_PREFIX_PATH:PATH=/Users/admin/dev/libs/QT6/release/iOS \
-DCMAKE_C_COMPILER:FILEPATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang \
-DCMAKE_CXX_COMPILER:FILEPATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ \
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/admin/dev/libs/QT6/release/iOS/lib/cmake/Qt6/qt.toolchain.cmake \
-DCMAKE_OSX_ARCHITECTURES:STRING=arm64 -DCMAKE_OSX_SYSROOT:STRING=iphoneos -DCMAKE_CXX_FLAGS_INIT:STRING= \
-DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM:STRING=XXXXXXX
Build QT for MacOS separately in Debug and Release configuration:
tar xf qt-everywhere-src-6.4.2.tar.xz
cd ~/build/qt
export MY_QT_SRC_DIR=~/repos/qt-everywhere-src-6.4.2
export MY_MODE=release
#export MY_MODE=debug
export MY_INSTALL_PATH=~/libs/QT6.4/${MY_MODE}/MacOs
${MY_QT_SRC_DIR}/configure -prefix $MY_INSTALL_PATH -c++std c++20 -opensource -confirm-license \
-static -static-runtime -${MY_MODE} -force-debug-info \
-no-openssl -securetransport -DQT_NO_EXCEPTIONS=1 \
-skip qt3d -skip qt5compat -skip qtactiveqt -skip qtcharts -skip qtcoap -skip qtconnectivity \
-skip qtdatavis3d -skip qtdoc -skip qtlottie -skip qtmqtt -skip qtnetworkauth -skip qtopcua \
-skip qtserialport -skip qtpositioning -skip qtquicktimeline -skip qtquick3d -skip qtremoteobjects \
-skip qtscxml -skip qtsensors -skip qtserialbus -skip qtvirtualkeyboard -skip qtwayland \
-skip qtwebchannel -skip qtwebengine -skip qtwebview -skip qtquick3dphysics -skip qtspeech -skip qtlocation \
-skip qthttpserver \
-- -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \
&& cmake --build . --parallel \
&& cmake --install .
After several hours of playing sounds my iOS app crashes and the QT Creator displays the following stack trace:
1 caulk::thread::join() (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/caulk.framework/caulk 0x7fff49a06293
2 std::__shared_ptr_emplace<AURemoteIO::IOThread, std::allocator<AURemoteIO::IOThread>>::__on_zero_shared() (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff438a7469
3 AURemoteIO::Stop() (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff438a58d3
4 ausdk::AUMethodStop(void *) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff438f3529
5 QDarwinAudioSink::audioDeviceStop() qdarwinaudiosink.mm 619 0x10ffa7afd
6 QDarwinAudioSink::audioDeviceIdle() qdarwinaudiosink.mm 629 0x10ffa7b68
7 QDarwinAudioSink::renderCallback(void *, unsigned int *, AudioTimeStamp const *, unsigned int, unsigned int, AudioBufferList *) qdarwinaudiosink.mm 446 0x10ffa7ab7
8 ausdk::AUInputElement::PullInput(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff438f12d2
9 AUInputFormatConverter2::InputProc(OpaqueAudioConverter *, unsigned int *, AudioBufferList *, AudioStreamPacketDescription * *, void *) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff4382cf27
10 acv1::AudioConverterChain::CallInputProc(unsigned int) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AudioToolboxCore.framework/AudioToolboxCore 0x7fff30323840
11 acv1::AudioConverterChain::FillBufferFromInputProc(unsigned int *, CADeprecated::CABufferList *) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AudioToolboxCore.framework/AudioToolboxCore 0x7fff3032467f
12 acv1::BufferedAudioConverter::GetInputBytes(unsigned int, unsigned int&, CADeprecated::CABufferList const *&) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AudioToolboxCore.framework/AudioToolboxCore 0x7fff3045c7bd
13 acv1::CBRConverter::RenderOutput(CADeprecated::CABufferList *, unsigned int, unsigned int&, AudioStreamPacketDescription *) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AudioToolboxCore.framework/AudioToolboxCore 0x7fff303091bc
14 acv1::BufferedAudioConverter::FillBuffer(unsigned int&, AudioBufferList&, AudioStreamPacketDescription *) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AudioToolboxCore.framework/AudioToolboxCore 0x7fff3045c589
15 acv1::AudioConverterChain::RenderOutput(CADeprecated::CABufferList *, unsigned int, unsigned int&, AudioStreamPacketDescription *) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AudioToolboxCore.framework/AudioToolboxCore 0x7fff303235bb
16 acv1::BufferedAudioConverter::FillBuffer(unsigned int&, AudioBufferList&, AudioStreamPacketDescription *) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AudioToolboxCore.framework/AudioToolboxCore 0x7fff3045c589
17 acv1::_AudioConverterFillComplexBuffer(OpaqueAudioConverter *, int ( *)(OpaqueAudioConverter *, unsigned int *, AudioBufferList *, AudioStreamPacketDescription * *, void *), void *, unsigned int *, AudioBufferList *, AudioStreamPacketDescription *, AudioStreamPacketDependencyInfo *) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AudioToolboxCore.framework/AudioToolboxCore 0x7fff30491df6
18 AudioConverterFillComplexBuffer (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AudioToolboxCore.framework/AudioToolboxCore 0x7fff303a3680
19 AUConverterBase::RenderBus(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff4382b617
20 AURemoteIO::RenderBus(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff438a4317
21 ausdk::AUBase::DoRender(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int, AudioBufferList&) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff438f06a9
22 AURemoteIO::PerformIO(unsigned int, unsigned int, unsigned int, AudioTimeStamp const&, AudioTimeStamp const&, AudioBufferList const *, AudioBufferList *, unsigned int&) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff438af7df
23 _XPerformIO (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff438e9817
24 mshMIGPerform (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libAudioToolboxUtility.dylib 0x7fff2e30936a
25 MSHMIGDispatchMessage (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libAudioToolboxUtility.dylib 0x7fff2e309759
26 void * caulk::thread_proxy<std::tuple<caulk::thread::attributes, AURemoteIO::IOThread::IOThread(AURemoteIO&, caulk::thread::attributes const&, caulk::mach::os_workgroup const&)::'lambda'(), std::tuple<>>>(void *) (x86_64) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/AudioToolbox.framework/libEmbeddedSystemAUs.dylib 0x7fff438a7200
27 _pthread_start (x86_64) /usr/lib/system/libsystem_pthread.dylib 0x7fff6da2b8fc
28 thread_start (x86_64) /usr/lib/system/libsystem_pthread.dylib 0x7fff6da27443
I built QT6.4. for MacOS first and then configured QT6.4 release build for iOS as follows:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
cd ~/build/qt
export MY_QT_SRC_DIR=~/repos/qt-everywhere-src-6.4.0
export MY_HOST_PATH=~/libs/QT6.4/MacOs
export MY_INSTALL_PATH=~/libs/QT6.4/iOs
export MY_MODE=release
${MY_QT_SRC_DIR}/configure -prefix $MY_INSTALL_PATH -qt-host-path $MY_HOST_PATH \
-platform macx-ios-clang -c++std c++20 -opensource -confirm-license \
-static -static-runtime -$MY_MODE -force-debug-info \
-no-openssl -securetransport -DQT_NO_EXCEPTIONS=1 \
-skip qt3d -skip qt5compat -skip qtactiveqt -skip qtcharts -skip qtcoap -skip qtconnectivity \
-skip qtdatavis3d -skip qtdoc -skip qtlottie -skip qtmqtt -skip qtnetworkauth -skip qtopcua \
-skip qtserialport -skip qtpositioning -skip qtquicktimeline -skip qtquick3d -skip qtremoteobjects \
-skip qtscxml -skip qtsensors -skip qtserialbus -skip qtvirtualkeyboard -skip qtwayland \
-skip qtwebchannel -skip qtwebengine -skip qtwebview -skip qtquick3dphysics -skip qtspeech -skip qtlocation \
-skip qthttpserver
I built QT 6.2.2. for MacOS first and then configured QT 6.2.2 for iOS as follows:
./configure -c++std c++20 -opensource -confirm-license -no-openssl -securetransport -DQT_NO_EXCEPTIONS=1 \
-platform macx-ios-clang -release -qt-host-path /usr/local/Qt-6.2.2 -prefix /usr/local/Qt-6.2.2-ios \
-skip qt3d -skip qt5compat -skip qtactiveqt -skip qtcharts -skip qtcoap -skip qtconnectivity \
-skip qtdatavis3d -skip qtdoc -skip qtlottie -skip qtmqtt -skip qtnetworkauth -skip qtopcua \
-skip qtserialport -skip qtpositioning -skip qtquicktimeline -skip qtquick3d -skip qtremoteobjects \
-skip qtscxml -skip qtsensors -skip qtserialbus -skip qtvirtualkeyboard -skip qtwayland \
-skip qtwebchannel -skip qtwebengine -skip qtwebview
In my previous post I described my first attempt to built QT 6.2.2 for MacOS. Probably my mistake was that I did not switch to full XCode with the command:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
and that I used the configuration script with a wrong syntax and missed --
in the command line. Probably the following configuration can be a step to a right direction:
./configure -c++std c++20 -opensource -confirm-license -no-openssl -securetransport -DQT_NO_EXCEPTIONS=1 \
-skip qt3d -skip qt5compat -skip qtactiveqt -skip qtcharts -skip qtcoap -skip qtconnectivity \
-skip qtdatavis3d -skip qtdoc -skip qtlottie -skip qtmqtt -skip qtnetworkauth -skip qtopcua \
-skip qtserialport -skip qtpositioning -skip qtquicktimeline -skip qtquick3d -skip qtremoteobjects \
-skip qtscxml -skip qtsensors -skip qtserialbus -skip qtvirtualkeyboard -skip qtwayland \
-skip qtwebchannel -skip qtwebengine -skip qtwebview \
-- -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"