Carthage로 Cartfile에서 하나의 라이브러리 만 업데이트하는 방법은 무엇입니까?


87

내 Cartfile에는 많은 라이브러리가 있습니다. 내가 할 때 carthage update모든 도서관을 통과합니다. 시간이 오래 걸릴 수 있습니다.

카르타고로 단일 라이브러리 만 업데이트하는 방법이 있습니까? 이 같은? (작동하지 않음)

carthage update "evgenyneu/moa"

답변:


150

에서 0.12 버전 build , checkout그리고 update선택적인 공간 종속성 목록을 분리 걸릴

다음과 같은 Cartfile의 경우

github "Alamofire/Alamofire"
github "ReactiveX/RxSwift"

하나의 종속성을 업데이트하도록 선택할 수 있습니다.

carthage update Alamofire

또는 여러 종속성

carthage update Alamofire RxSwift

플래그를 추가해야하는 경우 마지막에 추가하십시오.

carthage update Alamofire --platform iOS

24
carthage 업데이트 상자 --no-use-binaries --platform iOS // 추가 플래그를 지정해야하는 경우
nalexn 2011

@Alex Salom : Box가 Cartfile의 저장소 이름입니까? AlamoFire와 같은 더 친숙한 것을 사용했다면 이해하기 더 쉬울까요? 결과 부분은 무엇입니까? 다른 저장소 이름 또는?
eonist

1
@GitSyncApp, 네, 종속성 이름을 공백으로 구분하여 작성해야합니다. 나는 내 대답은 편집
알렉스 살롬을

@ MartinRomañuk 정확히 작동하지 않는 것은 무엇입니까? 위의 예제를 방금 시도 carthage bootstrap했으며 Cartfile에 정의 된 두 가지 종속성 중 하나만 처리했습니다. 내 터미널에서 스크린 샷을 살펴보십시오 pasteboard.co/I9bARyq.png
알렉스 살롬에게

@AlexSalom 공평하게, 당신은 bootstrap대답 이 사용 하는 동안 사용하고 있습니다 update. bootstrap당신이 Carfile.resolved말하는 것을 다운로드 하면 업데이트되지 않습니다.
Lluis Gerard

13

Carthage는 이제 단일 종속성 업데이트를 지원합니다. Cartfile에 다음과 같은 내용이있는 경우 :

github "bitstadium/HockeySDK-iOS"

그런 다음 실행하여이 하나의 종속성 만 업데이트 할 수 있습니다.

carthage update HockeySDK-iOS

9

지금 대답은 '아니오 carthage help update'입니다. 달리면

Update and rebuild the project's dependencies

[--configuration Release]
    the Xcode configuration to build (ignored if --no-build option is present)

[--platform all]
    the platform to build for (ignored if --no-build option is present)

[--verbose]
    print xcodebuild output inline (ignored if --no-build option is present)

[--no-build]
    skip the building of dependencies after updating

[--use-ssh]
    use SSH for downloading GitHub repositories

[--use-submodules]
    add dependencies as Git submodules

[--no-use-binaries]
    check out dependency repositories even when prebuilt frameworks exist (ignored if --no-build option is present)

[--color auto]
    whether to apply color and terminal formatting (one of ‘auto’, ‘always’, or ‘never’)

[/path/to/your/app]
    the directory containing the Carthage project

보시다시피 업데이트 할 종속성을 하나만 지정하는 옵션에 대한 언급이 없습니다.

당신은해야 REPO 프로젝트에 문제를 열 것을 지원하기 위해 요구.


9

프레임 워크가 GitHub에 저장되어 있지 않거나 git식별자를 사용하는 경우 cartfile다음과 같이 보입니다.

git "ssh://git@bitbucket.org/teamname/repo-name.git" ~> 1.0

다음 명령을 실행하는 것만 업데이트 할 수 있습니다.

carthage update repo-name

6

나는 모든 대답을 시도했고, 나를 위해 일시적으로 저장소를 제거 하거나 주석을 달고 실행 한 후에

carthage update --platform ios

Catfile을 이전 상태로 복원 한 후



0

스위프트 5

//MARK:- Step 1
carthage update KeychainAccess --platform iOS

carthage update SDKNAME(like i mention KeychainAccess upper) --platform iOS

이와 같은 오류가 발생하면

//MARK:- If this error occur
error: unable to find utility "xcodebuild", not a developer tool or in PATH

그런 다음 다시 터미널에서 파트 1을 사용하십시오.

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

다시 한번

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

0

[카테 지 업데이트 흐름]

carthage [update|bootstrap|checkout|build] [dependency1] [dependency2] [--no-use-binaries] [--platform <name>]

//--no-use-binaries - does not use prebuild binary and use source code
//--platform - specify a platform

가장 긴 단계는 다음과 같은 이유로 [xcodebuild]build 단계입니다 .

  1. fat binary[정보]를 사용하여 구축lipo
  2. Carthage는 모든 shared frameworks schemes프로젝트를 구축합니다 . 필요한 스키마를 정확히 알고있는 경우 다음을 수행 할 수 있습니다.

    • 특정 구성표를 xcschemes폴더에 남겨 둡니다..../Carthage/Checkouts/<dependency>/<project>.xcodeproj/xcshareddata/xcschemes/<schema>.xcscheme

    • Carthage/Checkouts폴더 에서 빌드 된 프로젝트 열기 -> 구성표 관리 ...-> 특정 구성표 유지


0

에서 carthage update repo-name작동하지 않는 것 같습니다 Carthage 0.36.0. 수동으로 업데이트하여이 문제를 해결했습니다 Carthage.resolved. 예를 들어, Cartfile새 종속성에 추가하십시오 .

github "konkab/AlamofireNetworkActivityLogger" ~> 3.0.0

Cartfile.resolved새 종속성에 수동으로 추가 :

github "konkab/AlamofireNetworkActivityLogger" "3.0.0"

그런 다음 carthage bootstrap하나의 종속성 만 업데이트하십시오.

carthage bootstrap

Carthage.resolved하나의 종속성을 사용 하고 추가합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.