7

すべてのユーザーがアプリを常に最新のアプリ ストア バージョンに更新するという理想的なケースの展開モデルを理解しています。しかし、実際にはそうではありません。CodePush を使用して、react-native iOS アプリのさまざまなビルド バージョンを処理するにはどうすればよいですか? 次の 2 つのシナリオを検討してください。

1) CodePush を使用して、新しい js バンドルをアプリの 1.0.0 ビルドにデプロイしています。1.1.0 をリリースし、CodePush を介して新しいコードを提供したいと考えています。私が見る限り、1.0.0 と 1.1.0 に同時に展開する方法があり、異なるバンドルでも同じバンドルでもありません。したがって、バンドルを 1.1.0 にプッシュすると、App Store 経由で更新されなかった 1.0.0 アプリを更新する方法がなくなります。

2) 私が知る限り、これを回避する 1 つの方法は、ビルド番号 (CFBundleVersion) を増やし、バージョン文字列 (CFBundleShortVersionString) を変更しない新しいバージョンをリリースすることです。ただし、これには効果があり、新しくダウンロードされた最新のアプリ ストア バージョン (1.1.0(8) など) でも常に codepush で最新のバンドルが最初に読み込まれます。

これをきれいに、不要な更新なしで行う方法はありますか?

4

1 に答える 1

7

このシナリオをすぐに最適化する予定です。おっしゃったように、このシナリオがいかに一般的であるかを認識しているためです。

当面の間、これをサポートすることをお勧めする方法 (および多くのユーザーが現在行っていること) は、既存の 1.0.0 デプロイメントと同じ CodePush アプリ内で、1.1.0 リリース用の新しい CodePush デプロイメントを作成することです。ストアに 1.1.0 を送信する前に、Info.plist ファイルを更新して、新しい展開キーを指すようにします。

このようにして、1.0.0 ユーザーと 1.1.0 ユーザーの両方に更新をリリースできます。同じ更新を両方にリリースする場合は、リリース コマンドを 2 回実行する必要がありますが、1 つだけを対象とする更新がある場合は、それぞれの展開にリリースするだけです。

このソリューションは人々にとってうまく機能しており、複数のバイナリバージョンを並行して管理する方法について非常に明示的であるという「利点」がありますが、明らかにハックっぽいものであり、必要以上に冗長/不格好ですなれ。

来月、このエクスペリエンスを合理化する予定です。お客様のシナリオに最適に対応する方法について、フィードバックをお待ちしております。他にご不明な点がございましたら、お気軽に直接メールでお問い合わせください (joncart@microsoft.com)。

ありがとう!

于 2016-01-19T07:18:19.897 に答える