Ethan Huang

A quick reminder for iOS dev: git status clean != everything the same between 💻 machines 🖥:

  • Files in .gitignore: Non-shared Scheme/Workspace settings 🛠
  • Empty folders: Search Paths 👀
  • Case-insensitive FS: Change name case of files in .xcassets, crash on #imageLiteral 💥

git 不能保證每台電腦上的狀態完全一樣。以我曾遇過的坑為例:

  • 列在 .gitignore 的檔案:scheme 或 workspace 的設定,如果不是 shared,每台電腦可以完全不一樣。天差地遠
  • 空的資料夾:同事換了 framework 的位置,但 Header Search Paths 設定沒拿掉舊的。他的電腦可以 build,我 pull 後卻不行,因為我的空資料夾還在
  • 檔名不區分大小寫的檔案系統(Mac 預設):把 xcassets 底下的檔案大小寫改掉。git 看不出來差異,build 得過,但是 runtime 時 #imageLiteral 這種 code 會 crash

不是要提出解法,只是講一下有這些坑