<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, 把之前的文件链接进来
b. 之后在你的扩展app中添加这个framework
imagec. 最后在你需要的地方 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步骤即可
最后
今后遇到问题会接着更新。
</article>
网友评论