[github] CocoaPods 및 GitHub 포크

GitHub 프로젝트를 포크 한 것은 이번이 처음이며 CocoaPods에 능숙하지도 않으니 참아주세요.

기본적으로 다음을 사용하여 GitHub에서 프로젝트를 분기했습니다 Podfile.

pod 'REActivityViewController', '~> 1.6.7', :git => 'https://github.com/<username>/REActivityViewController.git'

그런 다음 포크를 약간 변경했으며 물론 pod install다른 포드를 설치 했을 때 원본을 다시 설치하고 REActivityViewController변경 사항을 지 웠습니다.

내 변경 사항을 다른 것보다 먼저 내 포크로 푸시해야한다는 것을 깨달았 pod install지만 이것이 CocoaPods에서 설치 한 저장소라는 점을 고려할 때 설치중인 포크인지 어떻게 알 수 있습니까? REActivityViewController폴더 아래에 설치된 폴더를 살펴 봤는데 Podsgit 파일이 없습니다.

프로젝트 외부에서 포크 작업을 한 다음 CocoaPods를 사용하여 변경 사항을 설치해야합니까? 작업 흐름이 너무 번거 롭습니다.

아니면 서브 모듈로 뭔가를해야합니까?



답변

예를 들어이 질문에 답하겠습니다. 여기에 추가 한 몇 가지 추가 기능이있는 TTTAttributedLabel 포크가 있습니다.

https://github.com/getaaron/TTTAttributedLabel

Cocoapods 프로젝트에서 이것을 사용하기 위해, 나는 :

  1. 내 변경 사항을 내 포크로 푸시
  2. 변경 및 업데이트를 가져 오도록 내 Podfile 구성

변경 사항을 포크에 푸시하면 마지막 커밋의 SHA를 가져옵니다. git rev-parse origin/master | pbcopy또는 프로젝트 의 GitHub 커밋 페이지 에서이 작업을 수행 할 수 있습니다 .
GitHub에서 커밋의 SHA 복사 스크린 샷

그런 다음 다음과 같이 Podfile의 포크에 특정 커밋을 지정할 수 있습니다.

pod 'TTTAttributedLabel', :git => 'https://github.com/getaaron/TTTAttributedLabel.git', :commit => 'd358791c7f593d6ea7d6f8c2cac2cf8fae582bc1'

그 후 pod update포크에서이 특정 커밋을 업데이트합니다. 원하는 경우 podspec포크를 만들 수도 있지만이 접근 방식이 더 간단하다고 생각하며 새 워크 플로를 정당화 할만큼 자주 변경하지 않습니다.

프로젝트 외부에서 포크 작업을 한 다음 Cocoapods를 사용하여 변경 사항을 설치해야합니까? 이것이 워크 플로우를 번거롭게하는 방법입니다.

이 방법으로 할 수 있지만 일반적으로 :

  1. 내 프로젝트 내에서 코드를 편집하고 작동하는지 확인하십시오.
  2. 변경 사항을 내 포크로 복사하십시오.
    • 패치 내보내기 또는
    • 전체 소스 코드 파일 복사
  3. GitHub에 커밋 및 푸시
  4. 새 SHA로 Podfile 업데이트
  5. 을 실행 pod update합니다.

아니면 서브 모듈로 뭔가를해야합니까?

아니요, 그럴 필요가 없습니다.


답변

또 다른 옵션은 프로젝트가 github를 통하지 않고 직접 포드를 참조하도록하는 것입니다. 이렇게하면 변경 사항을 테스트하기 위해 포크를 계속 커밋하거나 코드를 복사 / 붙여 넣기 할 필요가 없습니다. 두 개의 서로 다른 Xcode 프로젝트로 동시에 작업하고 개별 프로젝트에 개별적으로 커밋 할 수 있습니다.

pod 'AFNetworking', :path => '~/Documents/AFNetworking'

CocoaPods 문서 :
http://guides.cocoapods.org/using/the-podfile.html#using-the-files-from-a-folder-local-to-the-machine

여기에 이미지 설명 입력


답변