一、报错

  • 报错内容大致如下

/xxxx/xxx.xcodeproj Building for iOS, but the linked and embedded framework ‘xxx.framework’ was built for iOS + iOS Simulator.
诸如此类,可能有些许不同

二、原因

  • WWDC 2019 推出 XCFramework 启,其实 XCode 11 开始就会有这个问题,但在 XCode 11 上一直是 warning 也就没太注意
  • XCode12.3 开始,针对类似于 iOS + iOS Simulator 这种多平台的包,强制使用 XCFramework 架构,否则 error( 好坑啊 )

三、解决

  • 这里提供三套方案,前两套比较简单,修改主项目配置即可;第三套是 Apple建议的方法,也就是重新打包 frameworkXCFramework

3.1 Validate WorkSpace

  • 启用 Validate WorkSpace ,让 XCodeframeworks 进行自动化管理

  • 打开项目路径 - Build Setting > Build Options > Validate WorkSpace

  • Validate WorkSpace 设置为 true

不建议使用,只能做暂时方案,万一哪天 Apple 不开心又把 Validate WorkSpace 逻辑改了呢?

3.2 Build System

  • 修改编译系统为以前的系统
  • 打开 Files > WorkSpace Setting > Build System
  • 设置 Build System 如下

不建议使用,总不能一直使用以前的构建系统吧?以后 WWDC 推出新功能了,还是得用新系统,旁边苹果的 Deprecated 注释也说明了这点

3.3 Apple 建议方案

    • Apple 官方对这个错误做了回复:

    • 总结成一句话: 使用 XCFramework

转自:http://okgoes.cn/blog/detail?blog_id=25339

xcodeproj Building for iOS, but the linked and embedded framework ‘xxx.framework’ was built for iOS + iOS Simulator.的更多相关文章

  1. Xcode 7 warnings: object file was built for newer iOS version than being linked

    编译之后出现: ld: warning: object file xxxxx... was built for newer iOS version (8.1) than being linked (7 ...

  2. 讲述Sagit.Framework解决:双向引用导致的IOS内存泄漏(中)- IOS不为人知的Bug

    前言: 话说昨晚还是前晚,写了一篇:讲述Sagit.Framework解决:双向引用导致的IOS内存泄漏(上) 文章写到最后时,多了很多莫名奇妙的问题!!! 为了解决了这些莫名奇妙的问题,我又战斗了2 ...

  3. 讲述Sagit.Framework解决:双向引用导致的IOS内存泄漏(下)- block中任性用self

    前言: 在处理完框架内存泄漏的问题后,见上篇:讲述Sagit.Framework解决:双向引用导致的IOS内存泄漏(中)- IOS不为人知的Bug 发现业务代码有一个地方的内存没释放,原因很也简单: ...

  4. ios键盘弹起 body的高度拉长,页面底部空白问题。ios软键盘将页面抵到上面后,关闭软键盘页面不回弹的问题。

    js 监听ios手机键盘弹起和收起的事件 /* js 监听ios手机键盘弹起和收起的事件 */ document.body.addEventListener('focusin', () => { ...

  5. 了解iOS消息推送一文就够:史上最全iOS Push技术详解

    本文作者:陈裕发, 腾讯系统测试工程师,由腾讯WeTest整理发表. 1.引言 开发iOS系统中的Push推送,通常有以下3种情况: 1)在线Push:比如QQ.微信等IM界面处于前台时,聊天消息和指 ...

  6. ios dyld: Library not loaded: @rpath/xxx.framework/xxx 之根本原因

    碰到问题 dyld: Library not loaded: @rpath/xxx.framework/xxx Referenced from: /var/containers/Bundle/Appl ...

  7. iOS中JS 与OC的交互(JavaScriptCore.framework)

    iOS中实现js与oc的交互,目前网上也有不少流行的开源解决方案: 如:react native 当然一些轻量级的任务使用系统提供的UIWebView 以及JavaScriptCore.framewo ...

  8. 用document.title=“xxx”动态修改title,在ios的微信下面不生效

    单页应用里整个页面只会在第一次完全刷新,后面只会局部刷新(一般不包括head及里面的title),所以无法在服务器端控制title,只能在页面刷新的时候通过js修改title.常规做法如下,可惜在iO ...

  9. iOS之Xcode 8.0真机调试运行:This ** is running iOS 10.1.1 (14B100), which may not be supported

    2016年10月份 苹果升级了iOS系统为10.1,xcode 8.0 运行会提示: This iPhone 5 (Model A1429) is running iOS 10.1.1 (14B100 ...

  10. iOS开发(1):设置APP的图标与启动图 | iOS图标的尺寸 | LaunchScreen的使用

    每个APP都应该有自己的图标跟启动图. 这里介绍怎么设置iOS的APP的图标跟启动图. (1)图标 小程的xcode是10.0版本,设置图标的入口如下: 点击入口后,进到设置页面,如下: 可以看到有很 ...

随机推荐

  1. CF319D 题解

    题意 传送门 给你一个字符串 \(S\),要求你每次找到一个最短的并且最左边的形如 \(XX\)(即由两个相同的字符串拼接而成)的子串,然后把这个字符串从 \(XX\) 变成 \(X\).问无法操作后 ...

  2. MySQL skip_name_resolve参数的设置

    Skip_name_resolve Dynamic No Default Value OFF 默认值是off,也就是在检查客户端连接时在第一次要解析主机名(如果有开启DNS服务器,则做 " ...

  3. mysql 创建表 datetime NOT NULL DEFAULT '0000-00-00 00:00:00' 默认值失败

    set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREAT ...

  4. vue把后端传的数字 转成中文显示在页面

  5. 动态路由里,将component字符串改变为路由懒加载方法

    一.import写法 报错 function loadPageByRoutes(str) { // 传入的str为 '@/views/Home.vue' 这种格式 return () => im ...

  6. 构建一个自己的CocoaPods库

    1.首先去github 创建一个项目 .然后将你的代码传到github 2.终端 进入项目根目录 生成podspec pod spec create SJTestPod 注意生成的pod一定要唯一.不 ...

  7. 计算机意外地重新启动或遇到错误windows安装无法继续解决方法

    计算机意外地重新启动或遇到错误windows安装无法继续解决步骤如下: 当win10在安装过程中一直卡在"海内存知己,天涯若比邻"时同样实用 解决方法: 按住shift+f10(或 ...

  8. Myeclipse导入项目提示已存在(Some projects cannot be imported because they already exist in the workspace)

    原因:在项目空间的文件夹中没有删除干净之前的项目,之前的项目和要导入的项目的名字相同,所以导致无法将项目导入.需要在项目空间中将有关的旧文件都清理干净. 1.将项目空间文件夹中的项目删除. 2.到:\ ...

  9. react和vue的区别及优缺点

    区别: vue是双向绑定的,采用template: react是单向的,采用jsx. Vue的优缺点: 简单.快速.强大.对模块友好,但不支持IE8. React的优缺点: 速度快.跨浏览器兼容.模块 ...

  10. 【PyQt6】Python中QDateTime的常用方法总结

    前置 QtDesigner里拖了一个QDateTimeEdit,设置时间格式为"yyyy/MM/dd HH:mm:ss" 常用函数 dt1 = object1.dateTime() ...