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步驟即可
最后
??今后遇到問題會接著更新。