一、报错

运行一个以前的项目报错如下:

/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相关推荐

  1. 更新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... ...

  2. 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 ...

  3. 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 ...

  4. 报错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 ...

  5. 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 ...

  6. 报错 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 ...

  7. IOS开发系列--IOS程序开发概览

    IOS开发系列--IOS程序开发概览 2014-08-04 19:42 by KenshinCui, 9983 阅读, 51 评论, 收藏, 编辑 概览 终于到了真正接触IOS应用程序的时刻了,之前我 ...

  8. iOS学习之iOS沙盒(sandbox)机制和文件操作(二)

    接上篇 iOS学习之iOS沙盒(sandbox)机制和文件操作(一) 我们看看如何获取应用程序沙盒目录.包括真机的沙盒的目录. 1.获取程序的Home目录 [cpp] view plaincopy N ...

  9. iOS开发系列--IOS程序开发概览ios基础

    iOS开发系列--IOS程序开发概览 概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的I ...

最新文章

  1. python 解析xml
  2. C#开发ActiveX网页截图控件
  3. Android Handler的原理
  4. 学java的正确方法_学习Java编程 这10个技巧不容错过--中享思途
  5. Mysql 死锁过程及案例详解之清空缓存锁Flush Lock
  6. [TP5填坑]关于助手函数input一不小心取不到get值的解决办法
  7. android相册幻灯片功能,Android实现幻灯片式图片浏览器
  8. centos7下docker启动失败解决
  9. B端产品设计——批量导入
  10. mysql cast报错_mysql数据库cast
  11. 如何用VB编程实现关闭WINDOWS窗口?
  12. javaweb使用 window.location.href 传中文参数 乱码问题
  13. 内核启动流程分析----内核启动
  14. 计算机应用基础图表填空,计算机应用基础试题
  15. Xshell6 Xftp6 破解
  16. gh-ost 参数解析,看这一篇就够了!
  17. 大繁至简,首度揭秘阿里云飞天洛神系统
  18. xp 无法关闭计算机,xp系统不能关机解决方法
  19. HTML表格边框空隙
  20. 分布式操作系统 - 1.分布式系统概论

热门文章

  1. vLang-基于模型的微信开发框架,使用Python
  2. android 从服务端获取的图片怎么适配不同分屏幕的手机,移动端的适配|切图|标注...
  3. VS 无法启动程序(系统找不到指定路径)的解决方法
  4. 微信小程序wx.getLocation()报错以及解决方法
  5. 计算机无法安装64位操作系统,怎么看电脑能不能装64位系统|什么样的电脑可以装64位系统...
  6. Win10重装的方法?一键重装Win10的图文版教程
  7. Flutter PullToRefresh上下拉刷新控件
  8. 【天光学术】公共管理研究生应该怎样写好学位论文?
  9. 教你如何用PCtoLCD2002生成字模以及软件的下载
  10. asp.net中@Register指令