2016-09-28 167 views
14

在創建一個新的依賴關係的swift包之後,我打電話給swift package generate-xcodeproj。如果我的依賴關係有新版本,我會撥打swift package update。我的依賴關係的新版本被下載和構建,但Xcode現在對舊版本的依賴關係有不良的引用。我可以再次撥打swift package generate-xcodeproj,但這會刪除我設置的任何自定義目標。如何更新Xcode中的Swift依賴關係

如何更新我的swift依賴和我的Xcode項目而不刪除我的自定義目標?

+1

我有同樣的問題。生成'.xcodeproj'的新副本還會刪除用於組織源文件的任何文件夾結構。 –

+1

我建立了一個工具來幫助解決這個問題。 https://github.com/saltzmanjoelh/XcodeHelperCli編譯並複製到/ usr/local/bin或任何可以調用'xchelper update-packages -s'的地方這將更新您的包併爲您的Xcode項目創建符號鏈接。通過這種方式,當您的軟件包獲得新版本時,您不必手動更新引用。 – joels

回答

8

而不是試圖保留對生成的項目的更改,你可以在一個單獨的項目中管理依賴項,比如CocoaPods。

在啓動新項目:

  1. 爲您的應用程序MyApp.xcodeproj
  2. 創建Xcode項目另存爲工作區MyApp.xcworkspace
  3. 對你的依賴創建包 mkdir MyDeps && cd MyDeps swift package init --type library
  4. 添加依賴於Package.swift
  5. 生成依賴包的Xcode項目根據需要 swift package generate-xcodeproj
  6. 添加生成項目MyDeps.xcodeproj到工作區MyApp.xcworkspace
  7. 添加目標MyDeps.framework到您的應用程序MyApp.xcodeproj

的鏈接框架有了這個設置,你可以自由地在Package.swift更新依賴和再生依賴項目。

+0

我喜歡這個 - 堅實的解決方法。 –