nodetree 和 jazzy
這次想介紹兩個 documentation 相關的工具﹔nodetree 和 jazzy。 nodetree 是用來生成 ASCII 樹狀目錄結構圖。先前一篇有關 iOS 的文章就是用 nodetree 生成相關的樹狀目錄結構圖。它的用法非常簡單,只需要輸入 nodetree 指令就能印出目前目錄的結構。 ...
這次想介紹兩個 documentation 相關的工具﹔nodetree 和 jazzy。 nodetree 是用來生成 ASCII 樹狀目錄結構圖。先前一篇有關 iOS 的文章就是用 nodetree 生成相關的樹狀目錄結構圖。它的用法非常簡單,只需要輸入 nodetree 指令就能印出目前目錄的結構。 ...
最近工作需要將一個 tvOS app 的某些 class 抽出來變成能被 CocoaPods 安裝的私家 close source framework 讓其他人用。我都是第一次做 framework,在網上的教學主要都是教純 Xcode 的做法和使用 CocoaPods 下載 project dependency,詳細提及如何造一個 CocoaPods Pod 就比較少人寫。所以就寫出來跟大家分享。 ...
Xcode project 有個特色就是 VCS unfriendly。例子有 project.pbxproj 會有自動產生的 hash 和開啟 xib、storyboard 時不論有沒有修改過內容都好 Xcode 還是自動會將 macOS 和 Xcode 版本寫入。如果是 xib、storyboard 的版本問題就不難解決,因為比較難出現 conflict。但 project.pbxproj 就很容易 conflict。這是因為 Xcode project 和 Java 之類的 project 不同,Xcode 是可以讓 user 自訂 project 檔案排序,還有就是可以讓 user 決定那些檔案是屬於 project 的一部分,不是純綷只定義 file system 的某幾個資料夾就是 project 的一部分。然而這個特色卻容易出現 merge conflict。只要你和另一個組員在 Xcode file tree 同時將檔案排列次序改變,那就會在 merge 時出現 conflict。尤其是在前期開發時因為不時要開新檔案,會令 conflict 更容易出現。而解決 conflict 又特別麻煩,因為 project.pbxproj 的設計是讓 Xcode 讀,不是讓人去閱讀。 ...