GitHubプロジェクトをフォークするのは今回が初めてで、CocoaPodsの能力もあまりありませんので、ご容赦ください。
基本的に、Podfile
で以下を使用してGitHubでプロジェクトを分岐しました。
pod 'REActivityViewController', '~> 1.6.7', :git => 'https://github.com/<username>/REActivityViewController.git'
その後、フォークにいくつかの変更を加えました。もちろん、pod install
を実行して別のポッドをインストールすると、元のREActivityViewController
が再インストールされ、変更が消去されました。
別のpod install
の前に自分の変更をフォークにプッシュする必要があることに気づいていますが、これはCocoaPodsによってインストールされたレポであるため、どうすればよいですか? REActivityViewController
フォルダーの下にインストールされたPods
フォルダーを調べましたが、gitファイルはありません。
プロジェクト外でフォークを操作し、CocoaPodsを使用して変更をインストールする必要がありますか?それはあまりにも面倒なワークフローです。
または、サブモジュールで何かする必要がありますか?
例を使用してこの質問に答えます。ここに追加したいくつかの追加機能を備えたTTTAttributedLabelのフォークがあります。
Cocoapodsプロジェクトでこれを使用するために、私は:
変更をフォークにプッシュしたら、最後のコミットのSHAを取得します。これはgit rev-parse Origin/master | pbcopy
または GitHub commits page プロジェクトの場合:
次に、次のように、Podfileでフォークの特定のコミットを指定できます。
pod 'TTTAttributedLabel', :git => 'https://github.com/getaaron/TTTAttributedLabel.git', :commit => 'd358791c7f593d6ea7d6f8c2cac2cf8fae582bc1'
その後、 pod update
は、フォークからこの特定のコミットを更新します。必要に応じて、フォーク用にpodspec
を作成することもできますが、このアプローチは簡単で、新しいワークフローを正当化するほど頻繁に変更を加えることはありません。
プロジェクト外でフォークを操作し、Cocoapodsを使用して変更をインストールする必要がありますか?これが面倒なワークフローの方法です。
あなたはこの方法でそれを行うことができますが、私は通常:
pod update
。または、サブモジュールで何かする必要がありますか?
いいえ、必要はありません。
もう1つのオプションは、プロジェクトにgithub経由ではなくポッドを直接参照させることです。これにより、変更をテストするためだけに、フォークをコミットしたり、コードをコピー/貼り付けしたりする必要がなくなります。 2つの異なる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