Swift之利用API可用性解决App Extension无法编译

举报
Serendipity·y 发表于 2022/02/16 23:50:47 2022/02/16
【摘要】 一、问题分析 从 Xcode12.5 开始,苹果要求所有的 Extension Target 必须设置 APPLICATION_EXTENSION_API_ONLY 为 true,否则将会导致编译错...

一、问题分析

  • 从 Xcode12.5 开始,苹果要求所有的 Extension Target 必须设置 APPLICATION_EXTENSION_API_ONLY 为 true,否则将会导致编译错误“Application extensions and any libraries they link to must be built with the APPLICATION_EXTENSION_API_ONLY build setting set to YES”;但是通常会在主工程和 Extension 之间使用 Framework 或其他方式共享代码,这些代码中使用了非 extension-only API,所以导致问题出现,那么该如何解决呢?
  • 以一个具体的工程结构为例,如下图所示:

在这里插入图片描述

  • 主工程 Host App 中,创建了一个 Share Extension 的扩展 Target 做分享相关的操作;另外为了模块化,有一个 Library 工程包含所有的基础组件和 Fundation 扩展方法,NetworkService 工程包含网络请求相关的功能封装和处理,它们都被编译为 Framework 供主工程和 Share Extension 共同使用。
  • 首先需要把 Share Extension、Library、NetworkService 这三个工程的

文章来源: blog.csdn.net,作者:Serendipity·y,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Forever_wj/article/details/118681275

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。