I am using Xcode 9.4.1 and Qt 5.11 and currently have a working .pro file for running my Qt application on iOS.
Just for fun I wanted to try qbs as I really like the syntax. I have now tried to write a .qbs file that mirrors my .pro file.
Everything compiles fine, but when linking I get the following issues when trying to run the ios-simulator (and similar for ios, but with different architecture):
Undefined symbols for architecture x86_64:
"_AVAudioSessionCategoryPlayback", referenced from:
-[MyClass enable] in MediaPlayer.mm.o
"_MPMediaItemPropertyArtist", referenced from:
-[MyClass setMediaInfo:artist:] in MediaPlayer.mm.o
"_MPMediaItemPropertyTitle", referenced from:
-[MyClass setMediaInfo:artist:] in MediaPlayer.mm.o
"_OBJC_CLASS_$_AVAudioSession", referenced from:
objc-class-ref in MediaPlayer.mm.o
"_OBJC_CLASS_$_MPNowPlayingInfoCenter", referenced from:
objc-class-ref in MediaPlayer.mm.o
"_OBJC_CLASS_$_MPRemoteCommandCenter", referenced from:
objc-class-ref in MediaPlayer.mm.o
ld: symbol(s) not found for architecture x86_64
What I have done in my .pro file to include frameworks are:
LIBS += -framework MediaPlayer -framework AVFoundation
And for the .qbs I have written:
cpp.frameworks: base.concat(["MediaPlayer", "AVFoundation"])
also tried:
cpp.frameworkPaths: base.concat(["/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks"])
cpp.frameworks: base.concat(["MediaPlayer", "AVFoundation"])
and:
cpp.frameworks: ["MediaPlayer", "AVFoundation"]
I'm have been stuck with this problem for hours now and hard to find similar usage of qbs files online and on Github. Anyone who know why the linker can't find the frameworks?
EDIT
I tried creating a new project using qbs and I get similar issues. Here is the full build log:
19:12:55: Running steps for project Test...
linking Test (x86_64, debug)
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Wl,-arch,x86_64,-ios_simulator_version_min,10.0,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk,-e,_qt_main_wrapper -stdlib=libc++ -L/Users/john/Qt/5.11.1/ios/lib -L/Users/john/Qt/5.11.1/ios/plugins/platforms -target x86_64-apple-ios10.0-macho -o /Users/john/build-Test-Qt_5_11_1_for_iOS_Simulator-Debug/qtc_Qt_5_11_1_for_iOS_Simulator_Debug/Test.eyJhcmNoaXRlY3R1cmUiOiJ4ODZfNjQiLCJidWlsZFZhcmlhbnQiOiJkZWJ1ZyJ9.260986be/.tmp/Test /Users/john/build-Test-Qt_5_11_1_for_iOS_Simulator-Debug/qtc_Qt_5_11_1_for_iOS_Simulator_Debug/Test.eyJhcmNoaXRlY3R1cmUiOiJ4ODZfNjQiLCJidWlsZFZhcmlhbnQiOiJkZWJ1ZyJ9.260986be/3a52ce780950d4d9/main.cpp.o /Users/john/build-Test-Qt_5_11_1_for_iOS_Simulator-Debug/qtc_Qt_5_11_1_for_iOS_Simulator_Debug/Test.eyJhcmNoaXRlY3R1cmUiOiJ4ODZfNjQiLCJidWlsZFZhcmlhbnQiOiJkZWJ1ZyJ9.260986be/3a52ce780950d4d9/qrc_qml.cpp.o -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Foundation -framework CoreFoundation -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework OpenGLES -framework CoreText -framework UIKit -framework QuartzCore -framework CoreText -framework CoreGraphics -framework Foundation -framework CoreFoundation -framework AudioToolbox -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework CoreFoundation -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework CoreGraphics -framework OpenGLES -framework CoreText -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework OpenGLES /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lz -lm -lm -lz -lqtpcre2_debug /Users/john/Qt/5.11.1/ios/lib/libQt5Gui_debug.a -lz -lm /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lm -lz -lqtpcre2_debug -lqtlibpng_debug -lqtharfbuzz_debug -lz /Users/john/Qt/5.11.1/ios/lib/libQt5Network_debug.a -lz -lm /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lm -lz -lqtpcre2_debug -lz /Users/john/Qt/5.11.1/ios/lib/libQt5Qml_debug.a @/Users/john/build-Test-Qt_5_11_1_for_iOS_Simulator-Debug/qtc_Qt_5_11_1_for_iOS_Simulator_Debug/Test.eyJhcmNoaXRlY3R1cmUiOiJ4ODZfNjQiLCJidWlsZFZhcmlhbnQiOiJkZWJ1ZyJ9.260986be/plugins.list.d -lz -lm /Users/john/Qt/5.11.1/ios/lib/libQt5Network_debug.a /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lm -lz -lqtpcre2_debug /Users/john/Qt/5.11.1/ios/lib/libQt5Quick_debug.a -lz -lm /Users/john/Qt/5.11.1/ios/lib/libQt5Qml_debug.a /Users/john/Qt/5.11.1/ios/lib/libQt5Gui_debug.a -lqtlibpng_debug -lqtharfbuzz_debug /Users/john/Qt/5.11.1/ios/lib/libQt5Network_debug.a /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lm -lz -lqtpcre2_debug /Users/john/Qt/5.11.1/ios/lib/libQt5Network_debug.a /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lm -lz -lqtpcre2_debug -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Foundation -framework CoreFoundation -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework OpenGLES -framework CoreText -framework UIKit -framework QuartzCore -framework CoreText -framework CoreGraphics -framework Foundation -framework CoreFoundation -framework AudioToolbox -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework CoreFoundation -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework CoreGraphics -framework OpenGLES -framework CoreText -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework OpenGLES
Undefined symbols for architecture x86_64:
"_qt_main_wrapper", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Process failed with exit code 1.
The following products could not be built for configuration qtc_Qt_5_11_1_for_iOS_Simulator_Debug:
Test {"architecture":"x86_64","buildVariant":"debug"}
Error while building/deploying project Test (kit: Qt 5.11.1 for iOS Simulator)
When executing step "Qbs Build"
19:12:57: Elapsed time: 00:02.
I installed Xcode 9.4.1 then Qt 5.11 for macos and ios.
EDIT2
It builds fine on desktop, but when I switch to ios or ios-simulator I get this warning in my .qbs file:
EDIT3
Here are my qbs settings for the relevant kit: