2016-09-28 3 views
14

종속성이있는 새로운 신속한 패키지를 만든 후에 swift package generate-xcodeproj을 호출합니다. 내 의존성에 새 버전이있는 경우 swift package update이라고 부릅니다. 내 종속성의 새 버전이 다운로드되고 빌드되지만 Xcode는 이전 버전의 종속성에 대한 나쁜 참조를 갖습니다. swift package generate-xcodeproj에 다시 전화 할 수는 있지만 설정 한 모든 사용자 지정 대상이 제거됩니다.Xcode에서 신속한 종속성을 업데이트하는 방법

사용자 지정 대상을 삭제하지 않고 신속한 종속성과 Xcode 프로젝트를 어떻게 업데이트합니까?

+1

나는 이와 같은 질문을 가지고있다. '.xcodeproj'의 새로운 복사본을 생성하면 소스 파일을 구성하는 데 사용되었던 폴더 구조도 제거됩니다. –

+1

나는 이것을 도와주는 도구를 만들었습니다. https://github.com/saltzmanjoelh/XcodeHelperCli 그것을 빌드하고/usr/local/bin 또는'xchelper update-packages -s'를 호출 할 수있는 곳으로 복사 한 후에는 패키지를 업데이트하고 Xcode 프로젝트의 심볼릭 링크를 생성합니다. 패키지가 새 버전을 가져올 때이 방법을 사용하면 수동으로 참조를 업데이트 할 필요가 없습니다. – joels

답변

8

생성 된 프로젝트의 변경 사항을 보존하는 대신 CocoaPods와 같은 별도의 프로젝트에서 종속성을 관리 할 수 ​​있습니다.

  1. 저장 MyApp.xcworkspace
  2. Package.swift
  3. 에 종속성을 mkdir MyDeps && cd MyDeps swift package init --type library
  4. 추가 종속성을 패키지를 만드는 작업 공간으로 앱이 MyApp.xcodeproj
  5. 에 대한 Xcode 프로젝트를 만듭니다

    하는 새 프로젝트를 시작할 때 의존 패키지를위한 Xcode 프로젝트 생성 swift package generate-xcodeproj

  6. 추가 생성 된 프로젝트 MyDeps.xcodeproj 필요에 따라 자유롭게 Package.swift에 종속성을 업데이트 종속 프로젝트를 다시 생성 할 수 있습니다이 설정을 사용하여 응용 프로그램 MyApp.xcodeproj

의 링크 된 프레임 워크에 MyApp.xcworkspace

  • 추가 대상 MyDeps.framework 작업 공간에 .

  • +0

    나는 이것을 좋아한다 - 단호한 해결 방법. –