手机升级到了ios10,然后想着懒得折腾直接升级到xcode 8好直接真机调试,嗯,想法是对的,然后xcode 8上也可以直接在ios 10上调试了。

但是当换到Qt creator 4.0.1 / Qt 5.7 上时编译iOS程序时却是各种问题啊,搞得整个人都不好了,一种入坑的感觉。

首先第一个问题:Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.

解决这个问题的时候,请尽量别选择如下这个建立符号链接的办法,这样后的确会解决如上的问题,但是接下来不出意外的话你会碰到其他问题的。

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

然后应该这样做:

打开Qt安装目录下的这个文件:Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf  (mac,Qt_install_folder为你Qt的安装目录,下同)

然后替换:

isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null")))

isEmpty(##list(##system("/usr/bin/xcrun -find xcrun 2>/dev/null")))     //两个#替换为两个$

为:

isEmpty(##list(##system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")))      //两个#替换为两个$

继续打开Qt安装目录下的这个文件:Qt_install_folder/5.7/ios/mkspecs/features/mac/default_pre.prf  (iOS ) 做和上面一样的替换操作。

这样做了后,不出意外的话你还会碰到第二个问题:Current iPhone SDK version (10.0) is too old. Please upgrade Xcode.

解决办法首先打开这个文件:Qt_install_folder/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.")    //连个#替换为两个$

网上很多说的是把8.0改为10.0就好,但是我这里修改了也不行,然后看到官方说的是新版本中直接删除这句就好。恩,好了,这个问题就解决了。

然后接着再编译一遍,你会发现又一个让人无语的问题,错误问题类似如下:

<span style="color:#ff0000;"><strong>xcodebuild: error: Unable to find a destination matching the provided destination specifier:{ id:12.9 inch }</strong></span>Unsupported device specifier option.The device “My Mac” does not support the following options: idPlease supply only supported device specifier options.Available destinations for the xxx scheme:{ platform:iOS Simulator, id:5EDED807-A907-4901-AB69-1CFE63C212C4, OS:10.0, name:iPad Air }{ platform:iOS Simulator, id:8A51F62A-C2D2-4FE7-9BCA-428A425D99E9, OS:10.0, name:iPad Air 2 }{ platform:iOS Simulator, id:1DAF8576-D9E2-4A0E-9D32-EE8F05CC584C, OS:10.0, name:iPad Pro (9.7 inch) }{ platform:iOS Simulator, id:97376BFD-79D0-4FA6-85BE-22588D90CD5E, OS:10.0, name:iPad Pro (12.9 inch) }{ platform:iOS Simulator, id:FA21EBD9-8839-4F93-86EA-104D5243B5F6, OS:10.0, name:iPad Retina }{ platform:iOS Simulator, id:81493470-3388-4C63-89A6-8BCA62918939, OS:10.0, name:iPhone 5 }{ platform:iOS Simulator, id:2853D1D4-7529-4D6B-A584-DFC264370BE2, OS:10.0, name:iPhone 5s }{ platform:iOS Simulator, id:8A561CAE-916B-4439-86BA-94EACBB5C5C1, OS:10.0, name:iPhone 6 }{ platform:iOS Simulator, id:C91762E8-3F35-4222-B236-D9631D3A2E5D, OS:10.0, name:iPhone 6 Plus }{ platform:iOS Simulator, id:6F4DD28B-24B8-4B68-92A6-3347CDFA7398, OS:10.0, name:iPhone 6s }{ platform:iOS Simulator, id:DAEFD9B5-E744-4038-9E5C-84DD1E37C31E, OS:10.0, name:iPhone 6s Plus }{ platform:iOS Simulator, id:A8168B2A-1B2B-4B9A-A590-B8133BCFEBB5, OS:10.0, name:iPhone 7 }{ platform:iOS Simulator, id:9056F4E6-A42B-49FE-8738-E7DD48553E3F, OS:10.0, name:iPhone 7 Plus }{ platform:iOS Simulator, id:FA2AE9AC-C7CA-4E5D-9626-9F74AE37C9AC, OS:10.0, name:iPhone SE }

当看到这么多的问题,而且一步一个坑的时候,其实我的心里是拒绝的,但是不能就此放弃,对,继续往下。。

又是一番搜索,问题还是会被解决的,解决办法如下:

打开这个文件:Qt_install_folder/5.7/ios/mkspecs/macx-ios-clang/xcodebuild.mk,注意如果无法直接打开的话,可以用vim打开,按道理这个提醒应该是多余的。

然后替换:

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)"   //两个#替换为两个$

这样修改后,这个问题也算是解决了,重新清理编译一遍的时候,嗯哼,通过了,你不会这样就暗自庆幸了吧,我特么终于变过了啊!!

too young 剧本不是这样写的,当你编译过了,然后开始debug运行的时候,特么simulator该死的模拟器起不起来,然后输出:Starting remote process.Run ended.

问题到了这里,其实我的内心已经抓狂了,按捺着操蛋的心情继续,折腾了许久还是无法解决,但是编译出来的工程用xcode 打开后编译运行时没有问题的,模拟器上可以看到运行效果,然后没办法,时间也不晚了,实在没心思继续耗下去,我决定就此打住了,此处我是笑哭的表情,真的。。。

最后,我决定了,还是换回xcode 7重新折腾一遍吧。。

已哭死。

换回xcode 7.3.1后,在Qt Creator上连接真机编译iOS测试程序的时候又出现了问题,问题如下:

error: No matching provisioning profiles found: No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier “com.admin.untitled” were found.

我在xcode上用的是免费的开发者账户,解决这个问题的方法是,打开在Qt Creator生成的Debug或者是Release文件,在该文件下生成了一个对应的xcode工程,然后打开该xcode工程,找到xcode工程设置的Build settings --> Code Signing --> Code Signing Identity: 这里的默认设置应该是iOS Developer,然后改为你账户对应的iPhone Developer,这样设置后再在Qt Creator上重新构建,就没有这个问题了。

还有一个类似解决办法的问题是,当我在用企业账户打包IPA的时候,第一次打包没问题,但是当我将工程第二次打包的时候,就提示了下面这样的问题:

An App ID with Identifier 'xxx.xxx' is not available. Please enter a differen

出现这个问题的时候,我也是在网上找了很久,很多的办法都是说的直接在工程上修改Bundle Identifier,不和报错的相同就好了,但这样的问题是,我这里的bundle ID可是和证书绑定了的啊,如果这样单方面的修改工程属性,那我不是还得重新生成一个证书啊。。最后摸索下后,发现可以和上面那个问题同样的改法,修改Code Signing Identity为你对应的开发者账户,然后就没有报这个错了,而且也可正常的再次打包。

然后,我就在想,为什么永远有这么多的坑。。

QT 5.7 for iOS Xcode 8 Project ERROR: Xcode not set up properly. You may need to confirm the license相关推荐

  1. iOS Sprite Kit教程之xcode安装以及苹果帐号绑定

    iOS Sprite Kit教程之xcode安装以及苹果帐号绑定 其它的网站上下载安装Xcode 有时候,应用商店下载较慢,所以用户也可以选择从其他网站下载Xcode安装文件.下面讲解这种Xcode的 ...

  2. python 模拟ios提交网络_使用Xcode + Python进行IOS运动轨迹模拟

    前言 在某些app中,需要根据用户的实时位置来完成某些事件 例如跑步打卡软件(步道乐跑).考勤打卡软件(叮叮).某些基于实时位置的游戏(Pokemon Go.一起来捉妖) 一般解决办法是通过使用安卓模 ...

  3. iOS 12 真机调试 Xcode 9 提示 Could not locate device support files.

    升级 iOS 12 之后,使用 Xcode 9 真机调试会提示错误: Could not locate device support files. This iPhone 6 Plus is runn ...

  4. iOS真机调试 for Xcode 5

    由于Xcode5的到来,关于iOS软件进行真机调试方面,有了一些变化,苹果在Xcode 5中修改了一些规则,一方面是阻止以往破解的方式进行调试(免证书).另一方面是添加了自动生成证书的功能特性,来加快 ...

  5. IOS开发工具介绍之Xcode开发工具使用

    IT在线教育专家--麦子学院特约授课老师柯博文<iOS开发入门实战>向我们详细的讲述了ios开发实战过程.Xcode开发工具是ios开发的流程使用范围最广的工具. 在所有课程开始之前,柯博 ...

  6. Qt5.9.9遇到 Project ERROR: Cannot run compiler ‘cl‘. Output、Unknown module(s) in QT: script

    我用的是Qt5.9.9 + msvc2015_x64.直接说遇到的问题,最开始遇到的是一个大坑: 1.QT报错:Project ERROR: Cannot run compiler 'cl'. Out ...

  7. iOS设备在iTues和Xcode中都找不到

    今天遇到问题: 1.iOS设备在iTues和Xcode中都找不到,Organizer中也显示没有连接,重新连接也不行. 解决:重启电脑就好了. 2.早上来的时候提交app二进制代码,显示两种错误:Ap ...

  8. 解决QT问题:运行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:

    报错如下: E:\project\QTProject\HelloWord>qmake Project ERROR: Cannot run compiler 'cl'. Output: ===== ...

  9. XCode使用一:Xcode基本操作

    1.Xcode IDE概览 说明:从左到右,依次是"导航窗格(Navigator)->边列(Gutter)->焦点列(Ribbon)->代码编辑窗口(Standard/Pr ...

最新文章

  1. 开发计费系统中学到的 5 件事
  2. HwBinder原理总结-Android10.0 HwBinder通信原理(十一)
  3. intent的startActivityForResult()方法
  4. Python 【搜狐号】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
  5. 事件 绑定,取消冒泡,拖拽 ,点击,事件委托习题
  6. java id pid_根据id,pid生成树结构,再生成id,pid形式
  7. pidgin-qq可以使用QQ2012协议了
  8. 面试题,产品经理岗位的哪些特点最吸引你?
  9. vivado2018.3添加IP库
  10. processing demo
  11. geektool 天气_桌面自定义:适用于OS X的GeekTool简介
  12. 四象限法推导lm曲线_数据分析四象限法详解
  13. python中的pip是什么_python中的pip是什么意思
  14. 【点云处理之论文狂读经典版7】—— Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs
  15. Android Studio 实现播放本地/网络视频
  16. java graphics2d 乱码_Graphics2D 中文乱码
  17. Word标题跟随正文样式缩进的解决办法
  18. 关于Windows许可证过期解决方案
  19. SEM谈谈如何摆脱Involute?
  20. CSDN博客同步更新至简书

热门文章

  1. 中国微量营养素市场趋势报告、技术动态创新及市场预测
  2. Python性能分析利器pyinstrument讲解
  3. 华为OD机试真题 Python 实现【检测热点字符】【2023 Q1 | 100分】
  4. 聊聊支付通道那些事儿——介绍和接入
  5. Nginx开启GZIP压缩,提升前端访问速度
  6. 获取QQ企业邮箱通讯录PY脚本
  7. python的文本编辑器atom_python的各种编辑器-PyScripter、pycharm 、atom、vscode、Sublime Text等等...
  8. 2019年电赛准备程序STM32版本
  9. 安卓 APP更新的两种途径
  10. openwrt之使能WPA3加密方式