1. ホーム
  2. github

[解決済み] CocoaPodsとGitHubのフォーク

2022-09-25 07:15:37

質問

GitHubのプロジェクトをフォークするのは初めてで、CocoaPodsもあまり得意ではないので、ご容赦ください。

基本的に、私はGitHub上のプロジェクトをフォークし、自分の Podfile :

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

その後、フォークにいくつか変更を加え、もちろん pod install を実行して別のポッドをインストールすると、元の REActivityViewController を再インストールし、私の変更を消してしまいました。

私は自分のフォークに変更をプッシュする必要があることに気づきました。 pod install の前に自分のフォークに変更をプッシュする必要があることに気づきましたが、これはCocoaPodsによってインストールされたレポであることを考えると、それがインストールされているフォークであることをどうやって知ることができるでしょうか?私は REActivityViewController フォルダの下にインストールされている Pods フォルダの下にインストールされ、git ファイルはありません。

私のプロジェクトの外でフォークに取り組み、それからCocoaPodsを使用して変更をインストールする必要がありますか?それはあまりにも面倒なワークフローです。

それともサブモジュールで何かする必要がありますか?

どのように解決するのですか?

私は例を使ってこの質問に答えます。私は、TTTAttributedLabelのフォークに、ここで追加したいくつかの機能を持たせています。

https://github.com/getaaron/TTTAttributedLabel

これをCocoapodsのプロジェクトで使用するために、私は。

  1. 自分の変更を自分のフォークにプッシュする
  2. Podfileに変更を取り込むための設定 & update

変更をフォークにプッシュしたら、最後のコミットの SHA を取得します。 これを行うには git rev-parse origin/master | pbcopy を使うか、あるいは GitHub のコミットページ をご覧ください。

そして、Podfileの中で、フォーク上の特定のコミットを次のように指定することができます。

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

その後に pod update を実行すると、あなたのフォークからこの特定のコミットが更新されます。 もし必要なら podspec を作ることもできますが、私はこの方法がよりシンプルだと思いますし、新しいワークフローを正当化できるほど頻繁に変更するわけでもありません。

自分のプロジェクトの外でフォークに取り組み、それから変更をインストールするために Cocoapods を使用する必要がありますか?それはあまりにも面倒なワークフローです。

このようにすることもできますが、私は通常。

  1. プロジェクト内のコードを編集し、動作することを確認します。
  2. 変更を私のフォークにコピーします。
    • パッチをエクスポートするか
    • ソース コード ファイル全体をコピーする
  3. コミットしてGitHubにプッシュする。
  4. Podfileを新しいSHAで更新する
  5. 実行 pod update .

それともサブモジュールで何かする必要があるのでしょうか?

いいえ、その必要はありません。