14

私の iOS アプリでは Cocoapods を使用して、AFNetworking、SDWebImage などのライブラリを管理しています。

このライブラリの 1 つにバグがあり、ブリーディング エッジ バージョンでは修正されていますが、cocoapods バージョンにはまだ反映されていません。このライブラリのパッチを作成して、チームと共有できるようにしたいと考えています。これに対処するための推奨される方法は何ですか?

余談ですが、ライブラリをフォークしたい場合に、同様の状況が発生する可能性があると思います。ライブラリが更新されたときに、変更を新しいバージョンにマージする方法があればいいのですが。その場合、同様のワークフローを使用できますか?

4

3 に答える 3

20

これが最良の選択肢だとは言いませんが、選択肢の 1 つです。Podfile のポスト インストール フックを使用して、パッチ コマンドを実行できます。Podfile の一番下に以下を配置することでそれを行いました。

post_install do |installer|
    puts 'Patching SVGKit to compile with the ios 7 SDK'
    %x(patch Pods/path/to/file.m < localpods/patches/fix.patch)
end

パスにスペースがある場合は、シェルのスペースをエスケープしているバックスラッシュをエスケープする必要があることに注意してください。"\ " それ以外の "\ "。パッチを生成する簡単な方法については、http://stephenjungels.com/jungels.net/articles/diff-patch-ten-minutes.htmlを参照してください。私は 1 つの単純なファイルで作業していたので、統合ファイルではなく単純な diff のみを作成しました。

于 2014-04-08T15:31:05.183 に答える
0

あなたはできる:

  1. マルセルが述べたように、libをフォークし、Podspecでフォークを指します-これには、アップストリームに対してそれを維持しなければならないという欠点があります。

  2. Sam が上で述べたように、修正されていないバージョンの Pod に対して修正されたソースに基づいて、差分ファイルを生成します。

  3. #2 のプロセスを簡単にするこの CocoaPods プラグインを使用します。https://github.com/DoubleSymmetry/cocoapods-patchを参照してください

于 2020-07-09T16:21:47.950 に答える