最近のアクセス:
ネイティブ モバイル アプリケーションのバージョンを管理する方法

アプリケーションのバージョン管理は、メンテナンスの重要なコンポーネントです。エンドユーザーは、デバイスにインストールされているアプリケーションのバージョンや、インストール可能なアップグレードバージョンについて、具体的な情報を常に必要としています。
互換性を判断したり、依存関係を特定するために、アプリケーションのバージョンをシステムにクエリする必要があることがあります。たとえば、互換性を判断したりアップグレード/ダウングレードの関係を確立するために、バージョンをチェックする必要があることがあります。GeneXus によって生成されたネイティブ モバイル アプリケーションは、デバイスにインストールされるので、アプリケーションの新しいバージョンを展開しようとするとき、アプリケーションのサーバー側に対して行われた変更が原因で、古いバージョンが動作しなくなったり、動作が失敗したりする危険があります。

背景の説明

各 GeneXus ネイティブ モバイル アプリケーションのコアは、Flexible Client です。これは、サーバーがメタデータの新しいバージョン、または更新バージョンを持っているかをアプリケーションが検出し、そのバージョンを使用して動作を開始できることを意味します。
Flexible Client は、多くの利点をもたらします:
  • アプリケーションストアのすべての承認段階を待つことなく、アプリの一部を更新できます。
  • 古いクライアントのユーザーには更新が必要なことが通知され、クライアントのバージョンの更新が自動的に開始されます。
ただし、これですべてのシナリオをカバーするわけではありません。たとえば、新しいバージョンで、新しいユーザーコントロールなどのバイナリコードが変更されている場合、Flexible Client は新しいバージョンに更新することができません。この場合、「Not Supported Client スキーム」の状況が適用されます。要約すると、メタデータのバージョンを更新する必要がある場合 (マイナーチェンジが発生した場合)、開発者はアプリの更新を自動的に開始できます。これに対して、「Not Supported Client スキーム」のシナリオがある場合 (メジャーチェンジが発生した場合) は、アプリケーションでユーザーをストアにリダイレクトし、最新バージョンのダウンロードを促す方法が最適です。
このドキュメントでは、簡単な例を使い、ネイティブモバイル向け GeneXus でバージョンを管理する方法について説明します。

主なコンポーネント

ネイティブモバイルの [ Main object properties ] には、バージョン管理プロセスに関わるプロパティがプラットフォームごとに 3 つずつあります。
  • Version Code
    X と Y の 2 つの数値を「.」(ドット) で区切った文字列値で、アプリケーションの相対的なバージョンを表します。X はメジャーアップグレード、Y はマイナーアップグレードを示します。たとえば、値「2.4」は、このアプリケーションのメジャーアップグレードが 2 回、このメジャーバージョンに対するマイナーアップグレードが 4 回あったことを意味します。
     
  • Version Name 
    エンドユーザーに表示されるアプリケーションのリリースバージョンを示す文字列値です。わかりやすいように、前述のプロパティの値にドットとビルド番号を付加します (例:「2.4.126」)。
     
  • Where the application must be updated
    エンドユーザーにメジャーアップグレードが必要な場合にアプリケーションをダウンロードできる URL です (通常はストア)。
各プラットフォームでの動作を見てみます。

Android 固有
 

[ Android Version Code ] プロパティ 開発者がアプリケーションの新バージョン (*.apk ファイル) を公開するたびに、この値を Google Play ストア (または別のストア) に求められます。値がなかった場合、次のようなエラーメッセージが表示されます:
イメージ:34416.png
 
[ Android Version Name ] プロパティ ストアのアプリ情報に表示されるバージョンです。
イメージ:34417.png
 
[ Update URL ] プロパティ  このドキュメントを参照してください。
: [ Android Google Play URL ] プロパティが拡張され、Google Play 以外の URL のストアも含められるようになりました。

Apple 固有
 

[ Apple Version Code ] プロパティ このプロパティの Android 版と同じ意味です。Apple App Store でアプリケーションをアップグレードするプロセスに従う必要があります。
 
[ Apple Version Name ] プロパティ   このプロパティの Android 版と同じ概念ですが、Apple App Store である点が異なります。
イメージ:34426.png
 
[ App Store URL ] プロパティ アプリケーションがホストされる iTunes Web サイトの URL です。書式は次のとおりです:
     https://itunes.apple.com/app/id<your_apple_app_identifier>  (例: https://itunes.apple.com/app/id887880596)
ここで Apple App ID はアプリケーションの公開後に付与されます (iTunes Connect で照会可能)。
イメージ:34427.png
上級ユーザーの場合は、次のように manifest.plist ファイルのカスタム URL を指定することもできます。
    itms-services://?action=download-manifest&url=<url_to_the_manifest.plist_file>
<url_to_the_manifest.plist_file> はエスケープが必要です (例: URL http://www.my-domain.com/path/to/manifest.plist https%3A%2F%2Fwww.my-domain.com%2Fpath%2Fto%2Fmanifest.plist と記述)。

バージョン管理時の動作

マイナーチェンジの場合

小さい変更の場合、またはアプリ自身が更新可能な変更の場合、"." (ドット) の後の数字を変更します。これにより、デバイスにあるアプリケーションに自動的にメタデータ情報を更新させます。
  現在のバージョン   新しいバージョン
Android の場合  
 
イメージ:34430.png
 
イメージ:23846.jpg
 
イメージ:34431.png
 
Apple の場合 イメージ:34432.png イメージ:23846.jpg イメージ:34433.png

結果
  新しいバージョンの検出  更新完了
Android の場合  
 

 

 
Apple の場合 イメージ:35946.png イメージ:35947.png

メッセージ

アプリケーションが更新中であることをエンドユーザーに通知するメッセージと、終了時に更新されたことをエンドユーザーに通知するメッセージは、ナレッジベース内の Language オブジェクトに次のメッセージを設定することでカスタマイズできます:
  • GXM_UpdatingApplication
  • GXM_ApplicationUpdated
GeneXus 17 Upgrade 4 以降、完全に無効にすることも可能です。そのためには、値 "(none)" (引用符なし) をこれら 2 つのメッセージに設定します。

メジャーチェンジの場合

アプリケーションをストアからダウンロードしてアップグレードする必要があるメジャーチェンジの場合、「.」(ドット) の前の数字を次のように変更します。これにより、エンドユーザーは URL でストアにリダイレクトされ、アプリケーションの新しいバージョンをダウンロードするよう促されます。
: アプリケーションが Android にインストールされている場合、エンドユーザーは、アプリケーションによる自動更新を許可する必要があります。これは、[ Update URL ] プロパティに APK へのリンクが設定されている限り必要です。  こうすることで、メジャーバージョンが変更された場合に更新を確認するだけで済みます。
  現在のバージョン   新しいバージョン
Android の場合  
 
イメージ:34431.png
 
イメージ:23846.jpg
 
イメージ:34434.png
 
Apple の場合 イメージ:34433.png イメージ:23846.jpg イメージ:34435.png

結果
  新しいバージョンの検出  ストアへのリダイレクト  更新の開始 
Android の場合  
 
イメージ:34436.png
 
イメージ:34437.png
 
イメージ:34438.png
 
Apple の場合 イメージ:35410.png イメージ:35948.png  

 

アプリケーションを更新する必要があるかどうかを確認するために、デバイスは何を実行する必要があるか

デバイスは、サーバーの次の名前のファイルを確認します:
  • Android: <main> .android.json
  • Apple: <main> .ios.json
これには次のバージョンが格納されています: {"minor": "0", "major": "1", "uri": ""}
デバイスはその JSON のバージョンをサーバーにある JSON のバージョンに対して確認し、異なる場合はアプリケーションが更新されます。
デプロイツールでデプロイが行われた場合は、メタデータがパッケージ内に残るように、[ App Update ] プロパティを設定する必要があることを考慮してください。

参考情報

オンライン ネイティブ モバイル アプリケーションのアーキテクチャ
ネイティブモバイルのバージョン管理の詳細
[ App Update ] プロパティ


サブページ
Created: 14/09/18 03:10 by Admin Last update: 24/03/25 23:57 by Admin
カテゴリ
Powered by GXwiki 3.0