我将 Xcode 更新到 8.0 版后遇到了同样的问题。
我的第一个错误是“项目错误:Xcode 未正确设置。您可能需要通过运行 /usr/bin/xcodebuild 来确认许可协议。”
为了解决这个问题,我创建了一个符号链接:
cd /Applications/Xcode.app/Contents/Developer/usr/bin/
sudo ln -s xcodebuild xcrun
然后我收到错误“Project ERROR: Current iphonesimulator SDK version (10.0) is too old. Please upgrade 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 启动一个,这是一个符号链接。然后我在这个脚本中改变了路径
来自:
my $PNGCRUSH = `xcrun -f pngcrush`;
到:
my $PNGCRUSH = `/usr/bin/xcrun -f pngcrush`;
然后我终于没有错误地构建项目并在 Xcode 中打开它。