Github Fork Xib 踩坑
Fork小知識
先說Fork操作,日常開發中用到的第三方庫,絕大部分情況都是夠用的。但有時候還是需要根據業務進行一些定製。
自定義第三方庫有兩個方法。1,把庫拖進專案檔案。2,Fork。第一種方法,可以說非常差,很可能會和當前專案中的資源存在檔案衝突,引用動態庫更是麻煩。Fork,完美。
Fork的操作的操作很簡單。
1.fork github專案。生產一個自己的專案。
2.clone該專案到本地。
3.修改並push。
2,3步就是普通git操作。
第三方庫中使用Xib的注意事項
載入Xib
載入Xib分兩步。第一步,獲取bundle ID。第二步,載入Xib。
坑-獲取bundle ID
獲取bundle ID是一個坑,在開發中庫的bundle ID和cocoapods中庫的bundle ID不是同一個。
比如我要fork的第三方stripe-ios,你在開發中,你修改的庫的bundle ID叫com.stripe.stripe-ios
,而你在cocoapods中訪問的stripe庫的ID叫 org.cocoapods.Stripe
。
結論: 用[NSBundle bundleForClass:]
這個API可以自動獲取該Class所在的bundle ID。不需要你再手動處理。
(PS:這裡還避免了另外一個坑,[NSBundle bundleWithIdentifier:@"com.stripe.stripe-ios"]
坑-Xib資源
你寫完了Xib,在本地測試完ok了,git push。結果在真實專案中一拉,crash了。
因為cocoapods配置的原因,xib資源並未被拉到本地。
podspec配置檔案。必須把xib也包含進檔案描述。
Git中的程式碼更新,能更清楚看到區別。一定要把資源描述進去。
私貨
這裡再夾帶一點私貨。本人最近做的自定義Stripe樣式的程式碼(和Stripe安卓的一樣)。有需要的同學可以直接fork。可以省下很多時間。樣式如下圖。