Qt-creator示例无法为iphonesimulator构建

Reg*_*gel 1 macos xcode qt qt-creator ios

我已经在El Capitan上使用Xcode 8成功安装了Qt 5.7.0和Qt-creator 4.1.0.

我从qt 修复了xcode sdk-version错误,现在我正在尝试为iphonesimulator构建一个示例.他们都没有工作.所有这些都失败了,类型为错误消息:

The following build commands failed:
CopyPNGFile Debug-iphonesimulator/2dpainting.app/Default-568h@2x.png 2dpainting.xcodeproj/Default-568h@2x.png
Run Code Online (Sandbox Code Playgroud)

我可以确认目录Debug-iphonesimulator/2dpainting.app没有png文件,它实际上位于qt安装目录中的某个位置.将png复制到源文件夹没有帮助,因为在运行'make'时文件夹被覆盖.

任何意见,将不胜感激.

编辑:构建工具包警告以下问题:"Qt版本不支持设备类型".设备类型是"iOS模拟器".

Vla*_*kov 6

我将Xcode更新到8.0版后遇到了同样的问题.

我的第一个错误是" Project ERROR:Xcode没有正确设置.您可能需要通过运行/ usr/bin/xcodebuild来确认许可协议. "为了解决这个问题,我创建了一个符号链接:

cd /Applications/Xcode.app/Contents/Developer/usr/bin/
sudo ln -s xcodebuild xcrun
Run Code Online (Sandbox Code Playgroud)

然后我收到错误" Project ERROR:Current iphonesimulator SDK version(10.0)太旧了.请升级Xcode. "我在文件QT_DIR/5.7/ios/mkspecs/macx-ios-clang/features/sdk.prf中评论了两个字符串.

lessThan(QMAKE_MAC_SDK_VERSION, "8.0"): \
    error("Current $$QMAKE_MAC_SDK SDK version ($$QMAKE_MAC_SDK_VERSION) is too old. Please upgrade Xcode.")
Run Code Online (Sandbox Code Playgroud)

然后我得到了关于模拟器的错误.Qt找不到它.我替换了文件QT_DIR/5.7/ios/mkspecs/macx-ios-clang/xcodebuild.mk中的代码行:

IPHONESIMULATOR_GENERIC_DESTINATION := "id=$(shell xcrun simctl list devices | grep -E 'iPhone|iPad' | grep -v unavailable | perl -lne 'print $$1 if /((.*?))/' | tail -n 1)"
Run Code Online (Sandbox Code Playgroud)

至:

IPHONESIMULATOR_GENERIC_DESTINATION := "id=$(shell xcrun simctl list devices | grep -E 'iPhone|iPad' | grep -v unavailable | awk 'match ($$0, /\(([A-F0-9\-]*\))/ ) { print substr ($$0, RSTART+1, RLENGTH-2) }' | tail -n 1)"
Run Code Online (Sandbox Code Playgroud)

最后,我得到了错误" 以下构建命令失败:CopyPNGFile Debug-iphonesimulator/Test01.app/Default-568h@2x.png Test01.xcodeproj/Default-568h@2x.png "

由于系统有两个文件xcrun,因此发生此错误.脚本/Applications/Xcode.app/Contents/Developer/usr/bin/copypng启动一个,这是一个符号链接.然后我改变了这个脚本中的路径:

my $PNGCRUSH = `xcrun -f pngcrush`;
Run Code Online (Sandbox Code Playgroud)

至:

my $PNGCRUSH = `/usr/bin/xcrun -f pngcrush`;
Run Code Online (Sandbox Code Playgroud)

然后我终于构建了没有错误的项目,并在Xcode中打开它.

  • 顺便说一下,我可以成功运行生成的XCode项目.我想,Qt开发人员意识到了这个问题:https://bugreports.qt.io/browse/QTCREATORBUG-16942 (2认同)