2023年3月15日 星期三

【Xcode】framework Symbolic Link 失效修正

在跨 windows 和 macOS 作業系統開發時,當開發同一份程式給兩種作業系統使用,特別在使用 git 進行管理時,framework 在某些頻繁更新或同時發布的時候,很常會碰到 Symbolic Link (Symlink) Error 的問題。

 

修正方法

修正方法為將原始壞掉的檔看砍掉,並且重新建立 Symbolic Link,在 command line 模式根據下面的順序進行操作:

  1. 刪除損毀的 reference 或 symlink,刪除之前無法建立新的 symlink;
  2. rm [Fail Symlink]
  3. 透過指令 ln -s 重新建立 symlink;
  4. ln -s [Source] [Symlink]

底下為一個完整個刪除重建範例:

[~/blogger/202303/framework_fail/Sample.framework]$ ls -al
total 32
drwxr-xr-x@ 7 ------  staff  224  3 15 02:34 .
drwxr-xr-x@ 5 ------  staff  160  3 15 00:16 ..
-rw-r--r--@ 1 ------  staff   24  3 14 16:15 Headers
-rw-r--r--@ 1 ------  staff   24  3 14 16:15 Modules
-rw-r--r--@ 1 ------  staff   26  3 14 16:15 Resources
-rw-r--r--@ 1 ------  staff   22  3 14 16:15 Sample
drwxr-xr-x@ 4 ------  staff  128  3 15 00:15 Versions
[~/blogger/202303/framework_fail/Sample.framework]$ cat Headers
Versions/Current/Headers%
[~/blogger/202303/framework_fail/Sample.framework]$ rm Headers
[~/blogger/202303/framework_fail/Sample.framework]$ ln -s Versions/Current/Headers Headers
[~/blogger/202303/framework_fail/Sample.framework]$ ls -al
total 24
drwxr-xr-x@ 7 ------  staff  224  3 15 02:35 .
drwxr-xr-x@ 5 ------  staff  160  3 15 00:16 ..
lrwxr-xr-x  1 ------  staff   24  3 15 02:35 Headers -> Versions/Current/Headers
-rw-r--r--@ 1 ------  staff   24  3 14 16:15 Modules
-rw-r--r--@ 1 ------  staff   26  3 14 16:15 Resources
-rw-r--r--@ 1 ------  staff   22  3 14 16:15 Sample
drwxr-xr-x@ 4 ------  staff  128  3 15 00:15 Versions
[~/blogger/202303/framework_fail/Sample.framework]$ 

Symbolic Link 失效的檔案可以先用 cat 看檔案內容,以 Header 為例,Header 的內容是 Versions/Current/Headers,即為要建立參照連結的路徑,接著透過 rm 將 Header 移除,透過 ln -s 重新建立新的 Symbolic Link。透過 ls -al 可以看到 Headers 正確指到目標連結了。

1 則留言:

熱門文章