我對將第三方框架添加到Xcode項目感到困惑。Xcode框架版本/當前/標題/錯誤
步驟如下:
1)我複製了一個框架,所謂的 「框架」 項目的子文件夾。所以框架被添加到存儲庫。
一切正常,程序編譯,這裏是截圖:
2)我推變爲庫(我用的水銀)
3)如果我拉的變化其他機器或者只是在分支之間切換,那麼項目不再承認這個框架。
下面是截圖:
的問題是,爲什麼會發生,以及如何解決這個問題?在這種情況下,我有什麼具體的方法來添加框架?
在此先感謝!
我對將第三方框架添加到Xcode項目感到困惑。Xcode框架版本/當前/標題/錯誤
步驟如下:
1)我複製了一個框架,所謂的 「框架」 項目的子文件夾。所以框架被添加到存儲庫。
一切正常,程序編譯,這裏是截圖:
2)我推變爲庫(我用的水銀)
3)如果我拉的變化其他機器或者只是在分支之間切換,那麼項目不再承認這個框架。
下面是截圖:
的問題是,爲什麼會發生,以及如何解決這個問題?在這種情況下,我有什麼具體的方法來添加框架?
在此先感謝!
我今天有這個問題,這是因爲第三方框架是作爲一個.zip文件提供的,框架內的符號鏈接在某些時候丟失了。
這裏是蘋果的一個框架的解剖文檔:
該文件解釋了多個框架版本可能框架束的內部存在,所以套裝中包含了一些符號鏈接指向當前版本的一些目錄。
MyFramework.framework/
MyFramework -> Versions/Current/MyFramework
Resources -> Versions/Current/Resources
Versions/
A/
MyFramework
Resources/
English.lproj/
InfoPlist.strings
Info.plist
B/
MyFramework
Resources/
English.lproj/
InfoPlist.strings
Info.plist
Current -> B
你的問題是,酷似我的。確認Apple記錄的三個符號鏈接(MyFramework,Resources,Versions/Current)不是符號鏈接,而是小文件。然後刪除這些小文件,並用符號鏈接替換爲當前的框架版本。例如,如果當前的版本是「A」:
cd NewRelicAgent.framework
rm Headers
rm NewRelicAgent
rm Versions/Current
ln -s Versions/Current Versions/A
ln -s Headers Versions/A/Headers
ln -s NewRelicAgent Versions/A/NewRelicAgent
如果有多個版本在你的框架,然後在版本文/電流可能包含當前版本。這將是一個工件,其中壓縮工具將符號鏈接存儲爲文本而不是實際的鏈接。
當然,您添加的東西只會出現在比添加它的版本晚的版本中。除非您將該修訂與框架合併到另一個分支A中,否則這個其他分支A將不知道對第一個分支所做的更改。 – planetmaker
你在說什麼是顯而易見的,我的意思是說,如果我切換回正確的版本或在其他機器上打開我的更改,提交是正確的,所有更改都存在,甚至框架存在,但我不工作,看起來很奇怪。 –
您是否添加了「Headers」目錄或僅添加了該目錄的符號鏈接? I.e,是主機上的目錄(它的工作原理)實際上是在文件系統的其他地方,而不是在你的存儲庫中,你只能將它拖到那裏? – planetmaker