iOS extension app 问题总结 - 简书

2020-07-12  本文已影响0人  阳明先生x

转载

<time datetime="2017-11-11T03:34:02.000Z" style="box-sizing: border-box; margin-right: 10px;">2017.11.11 11:34:02</time>字数 487阅读 711

<article class="_2rhmJa" style="box-sizing: border-box; display: block; font-weight: 400; line-height: 1.8; margin-bottom: 20px; color: rgb(64, 64, 64); font-family: -apple-system, system-ui, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">

iOS extension app 问题总结


欢迎大家关注我的博客

extension app 中使用 主项目中文件中的函数

场景: 当开发一个项目的时候建了很多一些全局的helper类,然后项目需要支持类似wiget的扩展app,然后开开心心的执行File -> New -> Target 建立了一个扩展app之后,发现之前的很多方法这里用不了??很明显因为这是两个app!!

解决办法: 把之前通用的方法封装成一个framework

创建framework

a. File -> New -> Target -> Cocoa Touch Framework 创建一个framework, 把之前的文件链接进来

image

b. 之后在你的扩展app中添加这个framework

image

c. 最后在你需要的地方 import 进来就可以使用了

当然简单的方法也有: 直接选择需要的文件在右侧界面中的 Target Membership中选中你需要的target即可,但是弊端也很明显: 需要一个就要这么操作一次,而且功能划分不清楚,不利于维护和理解。

extension app 中使用cocoapods的第三方库问题

不能直接像主项目中一样直接 import, 会报一个 no such module 的错误。

解决办法

a. 选择target 下的 extension app(就是你建的扩展app),选择 Build Settings 然后在 Objective-c Bridging Header 中添加桥接文件,没有的话就建一个(一般以your_project_name-Bridging-Header.h命名)

b. 选择 project (主项目) 在info中的configurations中设置如下:

image

展开debug和release找到扩展app项目选择 Pods-xxx.debug和 Pods-xxx.release, 没有选择之前为none。

c. 清理工程 command + b 编译一下

d. 还有错误基本清理下Xcode的缓存数据重复c步骤即可

最后

今后遇到问题会接着更新。

app瘦身

</article>

上一篇 下一篇

猜你喜欢

热点阅读