ios - Qt-creator 示例无法为 iphonesimulator 构建

标签 ios xcode macos qt qt-creator

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

我修复了 xcode sdk-version errors来自 qt,现在我正在尝试构建 iphonesimulator 的示例之一。它们都不起作用。所有这些都失败并出现以下类型的错误消息:

The following build commands failed:
CopyPNGFile Debug-iphonesimulator/2dpainting.app/Default-568h@2x.png 2dpainting.xcodeproj/Default-568h@2x.png

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

任何意见,将不胜感激。

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

最佳答案

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

我的第一个错误是“项目错误:Xcode 未正确设置。您可能需要通过运行/usr/bin/xcodebuild 来确认许可协议(protocol)。”
为了解决这个问题,我创建了一个符号链接(symbolic link):

cd /Applications/Xcode.app/Contents/Developer/usr/bin/
sudo ln -s xcodebuild xcrun

然后我收到错误“项目错误:当前 iphonesimulator SDK 版本(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.")

然后我得到关于模拟器的错误。 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)"

到:
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)"

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

这个错误是因为系统有两个文件 xcrun .并且脚本/Applications/Xcode.app/Contents/Developer/usr/bin/copypng 启动一个,这是一个符号链接(symbolic link)。然后我在这个脚本中改变了路径
从:
my $PNGCRUSH = `xcrun -f pngcrush`;

到:
my $PNGCRUSH = `/usr/bin/xcrun -f pngcrush`;

然后我终于毫无错误地构建了项目并在 Xcode 中打开它。

关于ios - Qt-creator 示例无法为 iphonesimulator 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39815968/

相关文章:

c++ - 在没有 Objective-C 的情况下使用 Apple 自动释放池

macos - 界面生成器 : Height = half the height of the container

macos - 如何在 NSPopupButton 项目中显示图像和文本

ios - NS谓词问题

ios - UITapGestureRecognizer 以编程方式在我的 View 中触发点击

ios - 使用 XCTest 点击 UI 元素时如何避免 NSInternalInconsistencyException?

ios - 无法在 Xcode 中使用 iOS 发行版

iphone - ipad 和 iphone 的 ios 缓存限制

ios - 我在 iOS 上运行 react native 应用程序时遇到奇怪的问题

xcode - 从Localizable.strings中删除未使用的资源