iOS-Building for iOS Simulator, but the linked and embedded framework ‘XX.framework‘ was built for
一、报错
运行一个以前的项目报错如下:
/Users/XX/Desktop/XX.xcodeproj Building for iOS Simulator, but the linked and
embedded framework 'XX.framework' was built for iOS.
二、原因
WWDC 2019 推出 XCFramework ,其实 XCode 11 开始就会有这个问题,但在 XCode 11 上一直是 warning 而并不会报错
XCode12.3 开始,针对类似于 iOS + iOS Simulator 这种多平台的包,强制使用 XCFramework 架构,否则 error
简单介绍一下XCFramework
XCFramework简介
XCFramework是XCode11中提出的一个新特性,是由XCode创建的一个可分发的二进制包,它包含了 framework 或 library 的一个或多个变体,因此可以在多个平台(iOS、iPadOS、macOS、tvOS、watchOS) 上使用,包括模拟器。XCFramework 可以是静态的,也可以是动态的。xcframework 的好处就是用 Xcode 发布的时候,Xcode 会自动选用正确的指令集 Frameworks,省去了手动移除动态库中的模拟器指令集的工作。
三、解决方案
1、Excluded Source File Names
打开工程设置,Build Settings,搜索 Excluded 关键字,找到 Excluded Source File Names,在其 Debug (也就是模拟器运行的配置)中添加这样的字段
Any iOS Simulator: aa.framework bb.framework
每个 framework 用空格隔开,再clean 一下,编译。如果失败可以尝试重启 Xcode 再试
2、Validate WorkSpace
启用 Validate WorkSpace ,让 XCode 对 frameworks 进行自动化管理;打开项目路径 - Build Setting > Build Options > Validate WorkSpace
但是博主发现Validate Workspace改为Yes之后编译完成,再改回No,也可以正常运行。
找了下Apple Developer论坛上大致是说:从Xcode的角度来看,iOS和iOS模拟器是两个不同的平台,原来framework是默认双平台的,会同时构建两个平台的framework,现在是做区分,这样的好处是可以在上传Appstore构建的时候省去剥离iOS模拟器相关的framework需求。
Apple开发论坛
3、Build System
修改编译系统为以前的系统
打开 Files > WorkSpace Setting > Build System,展开 Build System 选项卡,选择 Legacy Build System
这样只是为了能让模拟器正常运行我们的项目,如果之后需要打包,最好改回 New Build System 再打包。
系统有一个警告提示 Legacy Build System 将在不久之后就被弃用,不建议使用,总不能一直使用以前的构建系统吧?以后 WWDC 推出新功能了,还是得用新系统,苹果的 Deprecated 注释也说明了这点
4、使用Apple建议方案XCFramework
参考博文:
http://okgoes.cn/blog/detail?blog_id=25339
生成 XCFramework 的帮助文档
生成 XCFramework 的教程
iOS-Building for iOS Simulator, but the linked and embedded framework ‘XX.framework‘ was built for相关推荐
- 更新xcode至12.3,编译报错Building for iOS, but the linked and embedded framework ‘xxx.framework’ was buil...
更新xcode至12.3,编译报错Building for iOS, but the linked and embedded framework 'xxx.framework' was buil... ...
- Xcode12编译报错 “building for iOS,but linking in object file built for iOS Simulator”
Xcode12编译报错 "building for iOS,but linking in object file built for iOS Simulator" cocoapod ...
- M1的Xcode运行旧项目报“building for iOS Simulator, but linking in object file built for iOS, for architectur
#M1的Xcode运行旧项目报"building for iOS Simulator, but linking in object file built for iOS, for archi ...
- 报错building for iOS Simulator, but linking in object file built for iOS
Coderliszt 2021.04.24 22:33:37字数 277阅读 1,158 <article class="_2rhmJa"> 这个M1芯片下Xcode ...
- M1芯片Mac运行RN报错building for iOS Simulator, but linking in object file built for iOS
报错信息: 项目场景: 新款M1芯片的Macbook Pro中运行React Native项目,最新版本的. node v15.x cocoapods 1.10.x 问题描述: 一开始React Na ...
- 报错 Building for iOS, but the embedded framework ‘xxx.framework‘ was built for iOS + iOS Simulator
1.问题描述 我在Xcode13.4上面运行一个集成了.a文件的工程之后报错,上一周还是好好的,突然就不行了,不知道咋回事 报错信息如下: Building for iOS, but the embe ...
- IOS开发系列--IOS程序开发概览
IOS开发系列--IOS程序开发概览 2014-08-04 19:42 by KenshinCui, 9983 阅读, 51 评论, 收藏, 编辑 概览 终于到了真正接触IOS应用程序的时刻了,之前我 ...
- iOS学习之iOS沙盒(sandbox)机制和文件操作(二)
接上篇 iOS学习之iOS沙盒(sandbox)机制和文件操作(一) 我们看看如何获取应用程序沙盒目录.包括真机的沙盒的目录. 1.获取程序的Home目录 [cpp] view plaincopy N ...
- iOS开发系列--IOS程序开发概览ios基础
iOS开发系列--IOS程序开发概览 概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的I ...
最新文章
- python 解析xml
- C#开发ActiveX网页截图控件
- Android Handler的原理
- 学java的正确方法_学习Java编程 这10个技巧不容错过--中享思途
- Mysql 死锁过程及案例详解之清空缓存锁Flush Lock
- [TP5填坑]关于助手函数input一不小心取不到get值的解决办法
- android相册幻灯片功能,Android实现幻灯片式图片浏览器
- centos7下docker启动失败解决
- B端产品设计——批量导入
- mysql cast报错_mysql数据库cast
- 如何用VB编程实现关闭WINDOWS窗口?
- javaweb使用 window.location.href 传中文参数 乱码问题
- 内核启动流程分析----内核启动
- 计算机应用基础图表填空,计算机应用基础试题
- Xshell6 Xftp6 破解
- gh-ost 参数解析,看这一篇就够了!
- 大繁至简,首度揭秘阿里云飞天洛神系统
- xp 无法关闭计算机,xp系统不能关机解决方法
- HTML表格边框空隙
- 分布式操作系统 - 1.分布式系统概论
热门文章
- vLang-基于模型的微信开发框架,使用Python
- android 从服务端获取的图片怎么适配不同分屏幕的手机,移动端的适配|切图|标注...
- VS 无法启动程序(系统找不到指定路径)的解决方法
- 微信小程序wx.getLocation()报错以及解决方法
- 计算机无法安装64位操作系统,怎么看电脑能不能装64位系统|什么样的电脑可以装64位系统...
- Win10重装的方法?一键重装Win10的图文版教程
- Flutter PullToRefresh上下拉刷新控件
- 【天光学术】公共管理研究生应该怎样写好学位论文?
- 教你如何用PCtoLCD2002生成字模以及软件的下载
- asp.net中@Register指令