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
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中设置如下:
展开debug和release找到扩展app项目选择 Pods-xxx.debug和 Pods-xxx.release, 没有选择之前为none。
c. 清理工程 command + b 编译一下
d. 还有错误基本清理下Xcode的缓存数据重复c步骤即可
最后
今后遇到问题会接着更新。