2016-01-17 20 views
6

由於Xcode中7的,也有一些庫/框架,項目選項卡什麼是鏈接Xcode中的選項的庫?

轉到鏈接選項在Xcode應用Target

General -> Embedded Binaries 
General -> Link Frameworks and Libraries 
Build Phases -> Target Dependencies 
Build Phases -> Link Binary with Libraries 

這裏有一些方法,我發現

  • 使用Alamofire顯示Embedded Binaries選項

將Alamofire.framework作爲目標依賴關係,鏈接框架和嵌入式框架自動添加到複製文件構建階段,這是您在模擬器和設備上構建所需的全部內容。

  • Creating your first iOS Framework表明加入Library.xcodeproj到工作區中,然後Build Phases -> Link Binary with Libraries

  • Carthage Tutorial: Getting Started表明拖動Library.frameworkGeneral -> Link Frameworks and Libraries。這似乎General -> Link Frameworks and LibrariesBuild Phases -> Link Binary with Libraries是相同的

  • Carthage似乎iOS和OS X之間進行區分

如果您正在爲OS X:在您的應用目標的‘常規’ 設置「選項卡的」嵌入式二進制文件「部分中,將每個想要使用的框架從Carthage/Build文件夾拖放到磁盤上。

如果您正在爲iOS版,tvOS,或watchOS:在您的應用程序 目標的‘常規’設置選項卡,在‘鏈接的框架並 庫’部分,拖放你想從使用的每個框架 磁盤上的Carthage/Build文件夾。

閱讀Linking to a Library or Framework,我們知道這些選項是關於將框架鏈接到我們的應用程序/框架中的。

但他們之間有什麼不同?是否有任何一個選項catch all適合所有人?

回答

3

對於迦太基建立動態的框架,我通常使用此設置:

  • 鏈接你想使用它的任何目標庫您需要這能夠導入的框架在你的代碼。
  • 將庫僅嵌入到包含的應用目標中。這將實際上將框架複製到應用程序包中。如果你沒有嵌入它,你的應用程序將在啓動時崩潰,因爲你的框架無法找到。

只有應用程序目標負責嵌入所有框架及其依賴關係。這樣,如果擴展和應用程序都使用框架,它將只與應用程序一起分發一次。

對於Xcode的接口:

  • 拖動一個框架變成常規 - >嵌入式二進制文件的框架內同時添加到「鏈接二進制與圖書館」和「嵌入框架」構建階段
  • 拖動框架到常規 - >鏈接框架和庫將僅將該框架添加到「鏈接二進制庫」構建階段。

在常規下的視圖似乎是從構建階段選項卡填充,因此您可以使用。

希望是有道理的。

編輯:目標依賴關係只是在構建當前目標之前需要構建的目標。因此,您的應用目標會在此處列出其擴展程序,以便在您構建應用程序時構建擴展程序。

相關問題