2017-07-09 179 views
7

我想將我的代碼庫分割成我想上傳到github和GUI應用程序的庫。我希望使用最近推出的SwiftPM是一個好主意。如何使用SwiftPM創建Cocoa GUI應用程序

但我已經能夠找到的所有示例都顯示了使用swift package init --type executable創建控制檯應用程序。

我想知道如何創建一個macOS可可應用程序的骨架與所有預生成的東西,如資產,故事板等?

這將是巨大的,有機會獲得這些有用的東西:

swift package build 
swift package test 
swift package update 
... 

任何想法?

謝謝!

回答

7

這是我使用SPM創建cocoa應用程序的工作解決方案。

  1. 創建應用程序的可執行版本:在Package.swift
  2. 更新swift package init --type executable
  3. 包括你的包/獲取它們:swift package updateswift package fetch
  4. 創建您.xcodeproj:swift package generate-xcodeproj
  5. 與打開.xcodeproj Xcode的;你會看到它作爲一個控制檯應用程序。
  6. 構建解決方案(此版本將建立依賴關係:.frameworks,在「產品」)
  7. 點擊項目名稱,查看目標
  8. 通過列表下方按+按鈕,添加一個新的目標,並創建可可/ gui應用程序
  9. 添加應用程序後,單擊目標列表上的應用程序名稱
  10. General標籤下找到Embedded Binaries部分。
  11. +添加二進制文件,並選擇您引用的庫。
  12. 工作在你的可可應用程序。
  13. 當您構建,.frameworks將被嵌入到的.app

如果您更新packages.swift,你應該重複上述,除了創造新的目標;你只需要將其添加到項目。

+0

謝謝你的回答!一個更正:「swift init --type可執行文件」 - >「swift package init --type executable」。還有一個問題:如果你將軟件包添加到'Package.swift'中並執行「swift package generate-xcodeproj」,整個項目將被重新生成,可可/ gui應用程序將從目標列表中消失。如何在不刪除gui應用程序的情況下將新軟件包添加到「Package.swift」中? – Andrew

+0

嗨。對此沒有簡單的方法。備份你的應用;生成xcodeproj;再次添加目標;替換代碼。不幸的是,SPM + Xcode的使用是有限的。 SPM可執行文件+ Xcode解決方案是一種解決方法。 SPM + Xcode Cocoa應用程序是解決方法。 – ANS

+0

@Andrew創建一個單獨的項目(OSX或iOS)並將SPM生成的項目作爲子項目引用。 SPM生成的項目框架目標必須手動稍微修改(搜索路徑...等)。通過這種方式,我使用Xcode構建了帶有SPM和OSX以及iOS應用程序的CLI。接下來更新我的軟件包意味着只對SPM生成的項目進行輕微修改這並不理想,但它適用於我。對於iOS應用程序,需要將框架SDK更改爲iOS SDK,否則,在歸檔應用程序時會遇到麻煩(沒有對OSX SDK的位代碼支持) – user3441734

0

SPM不會取代Xcode,也不會管理您的非快速依賴關係。

Xcode + SPM的設置尚未得到真正的支持。有文章(谷歌和這裏)結合兩個

例如, Adding Swift 3 packages to Xcode 8 using the Swift package manager

+0

解決方案几乎奏效。但是XCode在轉換項目後拒絕運行應用程序。我已經在這裏放置了源代碼:https://github.com/fantamp/fast-image-picker – Andrew

+1

我已經上傳了兩個版本的項目:1)在轉換前和2)轉換後:https:// github。COM/fantamp /學習-SPM /釋放;第二個拒絕從XCode運行消息「未能啓動或調試過程」 – Andrew

+0

謝謝,我明天再試 –

相關問題