簡體   English   中英

Swift,iOS 8+框架

[英]Swift, iOS 8+ Framework

我想創建一個共享的Swift庫,也就是Cocoa Touch Framework,以便在我的兩個iOS應用程序之間共享。 我不是全職的iOS開發人員,所以我對XCode等知識有很多差距。

我發現這篇文章創建你的第一個iOS框架,並認為我在家免費:-)。 可悲的是,我無法讓它發揮作用,主要是因為我不知道我在做什么。

我只想在我的兩個應用程序之間創建共享Swift代碼的(私有)框架(庫)。 我想在框架中使用CocoaPods引入其他框架,如Alamofire。 我無意公開這個框架。

我幾乎不明白為什么會使用Carthage(與CocoaPods)作為管理框架並將其導入消費應用程序的機制。 但是,這個例子混合了Carthage和CocoaPods並建立了一個我不認為我想要的Podspec並讓我感到困惑。

在文章中,一般來說子項目的概念,將Carthage下載的框架拖入框架並在消費應用程序中“導入”共享框架本身都讓我感到困惑。 我想知道為什么我這樣做以及它的后果是什么。

那么,我是否采取了錯誤的方式? 有沒有人在兩個相關的應用程序之間私有地共享Swift代碼和其他工件?

誰能解釋這個理論?

當我考慮復制代碼時,我很少有時間處理我的應用程序和我的肉體爬行,所以我浪費了無數個小時試圖找到那個簡單的指南,並且花了更多的時間來嘗試跟蹤我找到的那些 - 所有這些都令人失望。

非常感激任何的幫助。

謝謝,彼得......

我建議你使用Carthage,因為它更簡單,並且不會對你的項目文件施加任何限制。 我無法幫助您使用CocoaPods,因為我從未使用它,我將引導您完成迦太基所需的步驟:

  1. 如果你還沒有,安裝Homebrew ,它是OSX上最常用的包管理器。 命令:

     /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 
  2. 安裝迦太基。 命令:

     brew update && brew install carthage 
  3. 使用iOS Cocoa Touch Framework模板創建一個新項目。 保存時,選中“Create Git repository”。

  4. .gitignore文件添加到項目文件夾中。 如果您在項目目錄中,則可以執行以下操作:

     curl https://raw.githubusercontent.com/github/gitignore/master/Swift.gitignore > .gitignore 
  5. 將您想要的代碼添加到項目中,請記住在框架外只能使用public聲明。

  6. 編輯方案(快捷鍵⌘<)並選中Shared 這是迦太基工作所必需的。

  7. 提交更改(快捷方式⌥⌘C),檢查每個文件(右鍵單擊>全部檢查)並輸入提交消息(例如“第一版”)

  8. 標記發布(迦太基要求):命令(在項目目錄中):

     git tag 0.1 -m "Version 0.1" 
  9. 運行以下命令以通過Carthage驗證和構建項目:

     carthage build --no-skip-current 

您的框架應該立即與Carthage合作。 您可以按照此處的步驟將框架添加到iOS項目中:

  1. Cartfile添加到項目中(只是一個名為Carthage (無擴展名)的文件),您可以使用Xcode。 該文件應包含以下內容:

     git "file:///path/to/your/framework/project/directory" github "Alamofire/Alamofire" # Other frameworks 
  2.  carthage update --platform iOS 
  3. 打開Carthage/Build/iOS文件夾(在Finder中)並將每個.framework文件拖放到項目設置(常規選項卡)中的Linked Frameworks and Libraries部分。

  4. 添加新的Run Script階段(“項目設置”>“構建階段”>“+”按鈕)。 放線

     /usr/local/bin/carthage copy-frameworks 

    並將每個框架添加到“輸入文件”部分:

     $(SRCROOT)/Carthage/Build/iOS/MyFramework.framework $(SRCROOT)/Carthage/Build/iOS/Alamofire.framework 

現在這應該工作,讓我知道你是否被困在某個地方。

編輯:當你對庫進行更改時,你這樣做:

  1. 承諾
  2. git tag 0.2 -m "Version 0.2"

在你正在使用框架的項目中,只需運行carthage update --platform iOS ,別無其他。

如果您的Framework也需要使用Alamofire,它需要與其他項目相同的Cartfile設置。 運行carthage update ,Carthage將解析每個框架及其子框架等所需的所有子框架。

如果一個Cartfile想要"Alamofire" ~> "1.0"而另一個"Alamofire" ~> "2.0" ,則可能存在沖突,但這種情況很少發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM