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

【Appium实战】解决xcodebuild无法匹配目标设备ID的疑难杂症 本文针对iOS自动化测试中常见的`xcodebuild`无法匹配目标设备ID的错误,提供了深度排查与解决方案。通过分析错误日志、理解多设备环境下的冲突原因,并详细讲解如何精准配置Desired Capabilities(特别是`udid`参数)以及清理环境缓存,帮助开发者快速定位并解决这一疑难杂症,确保Appium测试稳定运行。 阅读详情

手机升级到了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: id
	Please 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为你对应的开发者账户,然后就没有报这个错了,而且也可正常的再次打包。


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



Appium真机调试避坑指南:解决xcodebuild找不到设备的诡异问题 本文深入剖析了Appium真机调试中xcodebuild找不到设备的常见问题,提供了从诊断到解决的系统性方案。通过分析多设备冲突、系统服务缓存等根源,并结合开启详细日志、核对设备列表等实操步骤,帮助开发者彻底解决“destination specifier”匹配错误,提升iOS自动化测试的稳定性与效率。 阅读详情

相关推荐

QT License失败解决方案[代码]

当遇到QT License check failed! Giving up…错误时,可以通过修改qconfig.pri文件中的QT_EDITION为OpenSource来解决。具体步骤包括进入C:Qt5.15.2mingw81_32mkspecs目录,找到qconfig.pri文件并修改QT_EDITION的值。此外,还需要删除QT_LICHECK = licheck.exe中的licheck.exe部分。这些操作能够有效解决QT许可证检查失败的问题,确保开发环境的正常运行。

总结下Mac环境下按照appium

第10天休息 先来总结下Mac环境下按照appium 一、相关网站 官网: http://appium.io/ 测试论坛 https://testerhome.com/wiki 二、环境准备 从官网提供安装的信息来看只有3个步骤 1、node需要安装 2、appium服务端需要安装 3、appiumUI前端需要安装 实际没有这么简单,注意以下几点: 使...

weixin_30631587的博客 186

Metal 一、初识 Metal 及其语言规范

游戏开发者的新的技术平台,该技术能够为3D图像提高 10 倍的渲染性能。苹果2018年推出 Metal,在此之前一直使用OpenGL ES。1图形渲染;2高并发计算。苹果文档给出的 Metal 优化:CPU 低消耗、GPU 高利用、连续处理器并行、有效的资源利用Metal 官方文档。

irainsa的博客 1219

【Appium踩坑】xcodebuild: Unable to find a destination matching the provided destination specifier

问题现象: 1、WebdriverAgent 在 Xcode + 真机上 test 正常 2、开启 appium server 后,UI 脚本启动后提示: [W3C] Encountered internal error running command: Error: Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 70 解决: 1、先查一下 xcodebu

青禾tester 3581

Palantir的本体论建模跟数仓建模的异同

Palantir的Foundry Ontology通过构建组织的数字孪生体,将数据集和模型映射为对象类型、属性、链接和操作类型,形成完整的语义知识网络。与传统数仓建模相比,本体建模以业务问题为驱动,强调细粒度语义和实时决策能力,采用图语义技术实现灵活的映射关系。

轩哥的个人研究和成长记录 1595

std::map看来可以被淘汰了?可以用vector来替代,而且更好

vector的优势在于内存连续,可以先std::sort,然后std::lower_bound,或者std::binary_search。而std::map,insert的时候,需要new出内存。

tumu_C的博客 1019

Flutter 在 iOS 26 模拟器跑不起来?其实很简单

在之前的我们提到,在 iOS 26 上为了更好的 Debug 体验,Flutter 在将开发和调试场景切换到了 devicectl + lldb ,从而支持 JIT 运行和 hotload,不过暂时这部分还在 master 没有 3.35 版本。上述说的这个调整主要影响真机 Debug ,不会影响 Release 和模拟器。所以 3.35 版本虽然也能在 iOS 26 上进行 Debug 开发,但是在 Xcode 26 的真机上的体验会相对较差,比如 timeout 和耗时是比较常见的情况。

恋猫de小郭的博客 2950

吉林大学2016级唐班c语言期末考试B卷

` #include<stdio.h> #include<stdlib.h> //双指针法,每次从a,b中选一个最大的数,从后向前一次放在数组a中 int merge(int *a,int m,int *b,int n){ int i=m-1,j=n-1,k=m+n-1; while(i>=0&&j>=0){ if(a[i]>b[j])a[...

weixin_42339173的博客 1195

在Jenkins下集成SwiftMonkey

在把swiftmonkey跑起来之后,首先想到就是要把它集成到Jenkins上,然后以后只要在Jenkins上定时触发就好了,就不需要每次自己去跑起来,然后对于APP一崩溃就停止monkey测试这一点,也总是想着有空去研究一下,让它也能像Android的monkey测试一样,可以忽视崩溃继续跑,而也只有这样,才能对APP进行更好更持久的随机压力测试。于是就迎来了今天的工作。 一、集成到Jen

逆钟夕的忘忧阁 869

webview腾讯x5内核离线安装

离线集成腾讯TBS浏览器服务,彻底解决官方下载限流问题,永久免费

观千剑而后识器,操千曲而后晓声。 7909

保姆级教程:用vxe-grid给管理后台加个「智能筛选」功能(支持模糊搜索/多选/范围查询)

本文提供了一份详细的Vxe-Grid智能筛选功能实现教程。通过自定义筛选器渲染,文章逐步指导开发者为后台管理系统添加支持模糊搜索、多选下拉和数值范围查询的智能筛选功能,并分享了性能优化与移动端适配等实战经验。

weixin_29021291的博客 536

Xcode 真机调试 iOS 应用的各种问题和解决方法

process launch failed: Security 解决方法:打开手机设置->通用->设备管理->点击你的开发者账号->信任 ---------------------------------- iOS 10 升级后无法真机测试 Could not find Developer Disk Image 解决方法:打开Finder, 转到目录/Applications/Xcod

十年磨一剑,霜刃未曾试! 6073

《大数据: Hive 交互命令和常用配置》

一、Hive 交互命令 1. 首先解决一个可能发生的问题 (log4 jar包冲突) 我这里解决方法就是删除一个,我删的是hive下的包 yexiang@hadoop1:<hive>$ hive SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/soft/apache-hive-2.3.7-bin/lib/log4j-slf4j-impl-2.6.2.ja.

yexiang优快云的专栏 288

iOS开发---The run destination iPhone is not valid for Running the scheme问题

有时候,项目软件的运行版本高于你手机的系统版本,就无法真机测试,出现如下提示 解决方法:找到Target 修改成10.1版本的就OK了

QearlYu的博客 2万+

098、C3k2_Ghost:用 GhostConv 替代 C3k2 内标准卷积的轻量化改造代码

本文介绍了用GhostConv轻量化改造YOLOv11中C3k2模块的实践。作者通过线上部署案例引出问题,详细解析了GhostConv的核心实现逻辑,指出直接替换标准卷积会导致的两个关键问题:通道数不匹配和kernel_size冲突。文章提供了完整的C3k2_Ghost实现代码,包含注意事项和调试技巧。消融实验显示,该方法在小模型上可减少27%-28%参数量、34%-35%FLOPs,仅损失0.8mAP。作者总结了适用场景:小模型效果显著,大模型需谨慎;检测小目标任务不推荐;训练时需调整学习率。最后强调sh

sundong_81的博客 62

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

The run destination''''is not valid for Running the scheme

iPhone is  not available 这个Bug的原因是手机的原因,解决的话得从手机入手,我把手机升级就好了,是手机系统版本和Xcode不匹配

qq_15332301的博客 1768

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

“The run destination iOS Device is not valid for running the scheme”

1 iphone的iOS版本过高,而xcode版本过低,无法支持比较新的ios版本

fish_mai的专栏 704

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【iOS】The run destination My Mac 64-bit is not valid for Running the scheme '*'

感谢浏览 换了imac,Xcode换到了5.0 遇到了一些问题,之前的代码很多都不能运行,提示如标题所示的错误,在国外论坛上给出了解决办法,如下: How to change the SDK: 1) 选择你的工程徐图标. 2)在右侧选择 Build Settings ——all. 3)找到Architectures ——Base SDK 修改成 the latest OS X

天。朝程序猿的专栏 1463

Flutter开发遇见的问题和解决

当项目原来的fluter的sdk版本是3.22.2时我改成3.29.0,如果直接在安卓studio直接run是正常的但是flutter build ios时就是提示上面的错误解决只需要修改修改vim ~/.bash_profile里面的flutter sdk 版本好为最新的3.29.0,然后在source ~/.bash_profile,最后在相应修改open ~/.zshrc里面的版本好,和输入指令 source ~/.zshrc。

m0_57736160的博客 1887

MAC之Qt在Xcode8上编译错误( 二)

升级成Xcode8之后Qt编译之后经常会出现以下几个错误,其中:Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.这个问题在前一篇中已经解决了,可以参照MAC之Qt在Xcode8上编译错误(一)下面介绍另外几个常见

shirny 1912

xcode升级到14后出现error build

xcode升级到14后出现的问题。

龙之吻T 2528

安装Qt5.10时遇到的问题

1. 打开Qt creator时总会出现无响应的情况,大概几十秒之后就恢复正常,但下次打开时情况依旧相同    解决方法, 删除QtProject文件夹,详见 点击打开链接2. 构建套件不完整需要自己补充 (no valid kits found)     详见 点击打开链接...

folkboat的博客 1530

QT License check failed! Giving up…解决方案

同时,QT_LICHECK = licheck.exe里面的 licheck.exe删除。Giving up…修改qconfig.pri文件中的QT_EDITION为OpenSource。

wfreshet的博客 2357

MAC OSX10.12.x 使用Qt5.7出现的错误及解决方案

错误提示::-1: error: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.出现这个问题可能需要进行如下操作: 步骤一: 安装Xcode,可以直接在Mac的AppStore中下载,通过AppStore下载的版本是8.x 步骤二:

Mider'S Blog 2732
上一篇: Mac OS X下编译并搭建ffmpeg开发环境及常见错误处理
下一篇: 创建和发布iOS framework
Willib
博客等级 码龄14年 83粉丝 44原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值