我們會將自己開發的開源框架或者私有框架上傳至遠端倉庫, 在這些框架中可能會用到一些資原始檔, 比如: 圖片資源, 視訊資源, 音訊資源等
本編中主要講述的是, 上傳至遠端倉庫的框架中, 資源的新增和引用問題 下面使用的工程是在本地建立的CocoaPods私有庫中的測試工程, 具體建立方法可以看 iOS開發: 配置CocoaPods遠端私有倉庫
新增資源
-
當使用CocoaPods管理遠端倉庫的程式碼時, 都會有一個podspec檔案, 在這個檔案中, 我們需要加入幾句程式碼來表示需要引用的資源, 路徑等, 如下圖:
-
上述圖片中的路徑位置在下面的圖中
-
將圖片資源放在Assets資料夾中
-
當圖片放置好, podspec檔案也新增引用資源的程式碼後, 使用終端cd到當前工程, 並執行pod install
引用資源
-
使用CocoaPods新增的程式碼庫, 在工程編譯後, 圖片等資源會在包的下圖位置中
-
使用程式碼查詢當前檔案所在的bundle包可以使用NSBundle類的 + (NSBundle *)bundleForClass:(Class)aClass; 方法
-
Xib檔案的引用方法
-
Xib檔案位置
-
注意: 使用 [NSBundle mainBundle] 找到的bundle並不是Pods庫中檔案所在的直接Bundle
-
-
圖片資源都會在LTFM.bundle包中, 所以在引用圖片的時候, 不能使用 [UIImage imageNamed:@"圖片名"] 的方式, 而是需要使用圖片路徑來載入圖片
- 注意, 在查詢path時, 要先找到當前檔案所在Bundle, 然後就是圖片需要使用全稱, 不能僅僅使用tabbar_bg.png, 並且需要指明在哪個路徑下查詢, 這裡是LTFM.bundle
-
由於圖片名稱必須寫全, 所以在適配2x, 3x圖的時候, 可以使用下面的方法獲取當前螢幕需要使用的圖片倍率, 進行動態適配圖片
-
如果直接使用[UIImage imageNamed:@"圖片名"] 查詢圖片, 那麼就不會載入出來
-
如果是Xib中載入的圖片, 那麼可以在圖片名字前面拼接圖片的 包名 就可以了, 例如要載入的圖片名字是 tabbar_np_shadow@2x.png, 那麼使用的事就只需要寫成 [LTFM.bundle/tabbar_np_shadow]就可以了
-
在測試工程中測試完畢後, 就可以新增到遠端私有倉庫了, 並將podspec檔案配置好後, 傳到遠端索引庫即可
-
注意: 使用CocoaPods載入的第三方庫中如果有xib檔案, 那麼就要注意, 如下圖