Xcode 11에서 Swift Package Dependency를 삭제하는 방법은 무엇입니까?
저는 Xcode 11에서 Swift Package Manager 종속성을 추가한 프로젝트가 있습니다.이제 이전에 프로젝트에 추가한 패키지 종속성 중 하나가 더 이상 필요하지 않다는 것을 알게 되었습니다.
에 옵션이 .File > Swift Packages
이 프로젝트의 Swift Package Manager에서 패키지 관리자를 삭제합니다.
는 패지어서제시습니다도했에 .project.xcworkspace/xcshareddata/swiftpm/Package.resolved
에 ㅠㅠ 하지만 여전히 Xcode에서 제거되지 않고, 다음에 제가Update to Latest Package Versions
▁the▁의 항목을 읽습니다.Package.resolved
java.
프로젝트에서 Swift Package Manager 종속성을 삭제하려면 어떻게 해야 합니까?
- 오픈 엑스코드
- 프로젝트 선택
- 맨 위 중간을 보세요.
- Swift Package Manager 메뉴 선택
패키지를 관리할 수 있습니다(추가/제거).
SPM(Swift Package Manager) 종속성
종속성 추가
1. Project Settings contains information about dependencies.
2. File -> Swift Packages -> Add Package Dependency...
3. Target -> General -> Frameworks, Libraries, and Embedded Content -> Add Items -> Add Other... -> Add Package Dependency...

대상 설정에 종속성의 제품이 포함되어 있습니다.

종속성 편집
하기 위해 URL을 할 수 ..pbxproj
와 함께repositoryURL

종속성 삭제
Project -> Packages -> <Select dependency> -> -
[로컬 Swift 패키지 관리자(SPM)]
[iOS 종속성 관리자]
포드를 제거하고 다시 설치한 후에도 종속성이 계속 나타납니다.
프로젝트를 선택하고 패키지 종속성 탭으로 이동한 다음 선택하고 제거합니다.
이미지를 따라오세요.
Xcode 프로젝트에서 특정 패키지를 원활하게 제거하려면 아래 단계를 따르십시오.
Pierre의 답변 외에도, 이것은 나를 미치게 했고, 나는 내가 편집하던 하위 프로젝트가 있었는데, 나는 그것을 잊어버렸습니다(하위 폴더에 있었습니다)."Swift Packages" 창에서 제거했음에도 불구하고 계속 되돌아왔습니다.해당 하위 폴더 참조를 제거하면 PM 종속성이 제거됩니다.
저는 swift 패키지를 제거했지만 프로젝트에 종속성이 여전히 표시되어 있었습니다.왼쪽 창 하단의 Frameworks 폴더에 swift 패키지가 남아 있는 것을 보았습니다.
거기서 제거했더니 종속성이 사라졌습니다.
Package을 ""Package.swift"로 했습니다.swift package generate-xcodeproj
중첩된 Swift 패키지 종속성
배경
다른 답변에서 언급했듯이 -> -> 워크플로우를 통해 Swift Packages를 프로젝트로 매우 쉽게 가져올 수 있으며 대부분의 애플리케이션에서 작동합니다.종속성이 중첩된 패키지에 대한 추가 최적화로 이 답변을 추가했습니다.
Swift 패키지는 Git 소스 코드 체크아웃뿐만 아니라 하나 또는 여러 패키지 제품으로도 가져옵니다.저의 경우 패키지를 다른 대상이 아닌 한 대상에서 사용했기 때문에 패키지를 보관하고 싶었습니다.때때로 패키지에는 필요 없는 여러 종속성이 포함되어 있으며, 이는 사용되지 않는 종속성을 제거할 수 있는 좋은 기회입니다.
미사용 가져오기
최근에 Swift Package 종속성에서 참조하는 모든 모듈을 필요 없는 모듈까지 자동으로 가져오는 실수를 했습니다.패키지에는 여러 개의 제품이 있을 수 있으며 각 제품은 서로 다른 응용 프로그램에 대해 서로 다른 API를 노출할 수 있기 때문에 이 문제는 일반적입니다.
가져오기가 필요한지 확실하지 않으면 해당 가져오기를 확인하고 삭제합니다.예를 들어 패키지에는 불필요한 가져오기를 추가하는 Objective-C 모듈이 포함될 수 있습니다.
경우 중첩 를 통해 Swift .OHHTTPStubs
그리고.OHHTTPStubsSwift
위의 예에서
일반적인 생각
패키지 자체를 삭제하지 않고 빌드 단계 또는 대상 일반 설정 탭을 통해 중첩된 Swift 패키지 종속성을 삭제할 수 있습니다.불필요한 종속성을 삭제하는 것은 앱의 메모리 설치 공간을 절약하고 빌드 시간을 간소화하는 좋은 방법입니다.
장치/UI 테스트에 대한 중첩 종속성
각 대상은 사용하는 라이브러리만 가져와야 합니다.
규칙:
- 전체 프로젝트에 대해 가져올 때 실제로 필요한 Swift Package Manager 제품만 가져옵니다.래퍼 하위 사양만 가져오면 됩니다.
- 호스트 응용 프로그램 대상은 UI 테스트 라이브러리를 가져올 필요가 없습니다.의 대상 일반 탭에서 이러한 라이브러리를 안전하게 삭제할 수 있습니다.그러면 이 대상의 탭에서 제품의 연결이 자동으로 해제됩니다.
- 당사의 UI 테스트 대상은 ->를 통해 필요한 패키지 제품을 가져올 수 있습니다. UI 테스트에서만 종속성을 사용하는 경우 호스트 응용 프로그램 대상에서 삭제하십시오.
- 장치 테스트 대상은 호스트 응용 프로그램에 포함되지 않은 라이브러리에 연결할 수 없습니다.따라서 의 일반 설정 탭에 있는 호스트 응용 프로그램 대상에 단위 테스트에 사용된 제품을 추가해야 합니다. 단위 테스트 대상에 대한 제품을 추가할 필요는 없습니다.
나의 경험에 의한 예
OHHTTPStubsSwift
는 ObjC API를 통해 더 나은 API 래퍼를 추가하지만 이미 ObjC API를 가져오는 Swift CocoPods 하위 사양입니다(OHHTTPStubs
).
패키지 제품을 UI 테스트에서만 사용했기 때문에 호스트 대상에서 삭제했습니다.그 다음에 나는 오직 그것을(를)OHHTTPStubsSwift
구축 단계를 통해.
1단계. 프로젝트 디렉토리로 이동합니다.2단계.'your-project'를 찾습니다.xcodeproj' 3단계.Xcode가 아닌 텍스트 편집기로 엽니다(파인더를 사용해야 하며 -all applications -> 텍스트 편집기로 열어 임의의 텍스트 편집기를 사용해야 합니다) 4단계.문제가 있는 패키지의 모든 인스턴스를 검색합니다(예:저는 문제를 일으키는 'UIKit' 패키지를 가지고 있었고, 그 패키지의 모든 인스턴스를 제거하고 파일의 나머지 부분을 방해하지 않도록 했습니다.4단계.xcode 프로젝트를 xcode로 열고/다시 열고 즐겨보세요.
제가 찾은 것에 대한 답이 없습니다.Git 링크가 끊어진 경우 *.xcodeproj/project.pbxproj를 올바른 링크로 변경해야 합니다.Xcode는 수정 사항을 감지하고 자동으로 업데이트합니다.
언급URL : https://stackoverflow.com/questions/56718121/how-to-delete-swift-package-dependency-in-xcode-11
'programing' 카테고리의 다른 글
Xcode에서 보관 버튼이 회색으로 표시됨 (0) | 2023.05.12 |
---|---|
Git에서 마스터에서 분기로 변경 사항 가져오기 (0) | 2023.05.12 |
이벤트 이미터의 올바른 사용 방법은 무엇입니까? (0) | 2023.05.12 |
데이터베이스의 컬렉션 수 제한 (0) | 2023.05.12 |
HttpClient와 WebClient 중에서 결정 (0) | 2023.05.12 |