2012-03-02 3 views
6

キャプティブランタイムを使用するAIRアプリケーションの更新メカニズムのロジックは何ですか? アプリケーションはWindowsとMac用に配布する必要があります。キャプティブランタイムにバンドルされているAIRアプリケーションのアップデータを作成するにはどうすればよいですか?

私はここに捕まってしまった:これは必ずしもあなたがあなた自身の自動アップデートメカニズムを実装する必要があることを意味しないこと

注意を。市販のツールを使用してインストーラを作成する場合は、自動更新のメカニズムが含まれている可能性があります。一方、独自の更新メカニズムを作成する必要がある場合は、URLStream、File、およびNativeProcess APIを実装すると便利です。でそれを読んだ後

http://www.adobe.com/devnet/air/articles/air3-install-and-deployment-options.html

は、それが(Windowsの場合、アプリの後にいくつかの.exeまたはの.msiインストーラを使ってインストールされている)のようなものです:アプリの起動時に

  1. 、をチェックします新しいバージョン
  2. 新しいバージョンが存在する場合は、
  3. は、既存のアプリケーションファイルとAIRランタイムファイルを上書きします。

アプリを起動する前に強制的に更新する必要があります。

実行中のアプリケーションを上書きする方法はありますか?または、ファイルを置き換えるための別のアプリ(アップデータ)を作成した後、NativeProcessでメインアプリを起動しますか?

答えて

0

上書きする必要はありません。ユーザーに新しいパッケージをダウンロードさせて起動させる。 AIRは、パッケージが以前のバージョンとしてすでにインストールされていることを認識し、更新したい場合はユーザーにプロンプ​​トを表示します。 ワークフローは次のとおりです。新しいパッケージがあるかどうかを確認し、ユーザーに警告があることを知らせ、ダウンロードして起動させます。 Airはアップデートを管理します。

+0

申し訳ありません:アプリを起動する前に強制的に更新する必要があります。私はあなたの答えを理解するかどうかわかりません...それはキャプティブランタイムです、私はAIRの更新フレームワークを使用することはできません。 – Nemi

2

基本的には、あなたが最新バージョン番号のようなものが含まれます、サーバー上のいくつかのXMLファイルにアプリのポイントを持っている必要があり、サーバー上の新しいファイルへのパスなど

あなたは再起動を行うために別のアプリを使用することができますキャプティブランタイムを使用しているので、これはアップデーターのためだけに別の40〜60MBを意味することに注意してください(推奨されないハッキングを使用しない限り)。

更新プログラムをダウンロードした後に再起動するようにユーザーに促す方がいいでしょう。

トリックは、EXEを上書きするのではなく、SWF(および更新が必要なその他のファイル)を上書きすることです。私が知ることから、EXEは単にXMLマニフェストとSWFへのポインタです。

重要なアップデート(大容量のファイルなので)のたびにAIRランタイムファイルを更新しないでください。 Windowsの場合

+0

ありがとうございますので、自動的にアプリを再起動する方法はありませんか? – Nemi

+0

@ネミ:私が言ったように、あなたは別のキャプティブランタイムアプリを使用して再起動を行うことができますが、あなたの状況に応じて余分な40~60MBの価値がないかもしれません。代わりに、[これ](http://snipplr.com/view/58457/)を試すことができますが、私は実際に正常に動作していないことを確かに動作するようになっていることを思い出して思い出します。 –

+0

私は別のキャプティブ、多くのMBに同意します。そのリンクされた再起動方法は.exeでは機能しませんでしたが、.airファイルではうまく動作しません。 – Nemi

3

私は自動私のキャプティブランタイムアプリケーションを更新するために、ネイティブアプリケーションのアップデータ

http://code.google.com/p/nativeapplicationupdater/

とWinRARのSFXアーカイブファイル(.exe)を使用します。

ネイティブアプリケーションアップデータは、バージョンを確認し、新しいexeファイルをダウンロードし、アプリケーションを閉じて、その新しいexeファイルを実行します。 SFXオプション

私は絶対パスを使用して、のようなもの:あなたは "すべてを非表示" を選択することができ、 "モード" の下に%USERPROFILE%\のAppData \ローカル\ COM \ thenewkid \ appnameの\

サイレントモードで「セットアップ」の下で、抽出後にapplication.exeを実行します。 SDKの新バージョンが利用可能になるまで

私はインストーラを使用してMac用の

(すなわち、ちょうど3.3のために、最近、うちの大きなアップデートをプッシュしていた)のAdobe AIRフォルダを削除することにより、低アップデートのサイズを維持することができます。ユーザーはいくつかのインストーラのプロンプトをクリックしなければならないので、Windows Updaterと同じくらい静かではありませんが、ホームディレクトリに置くことができるので、管理者特権は必要ありません。キャプティブ実行時。キャプティブランタイムでAIRの再開のために

1

これは、Mac上で私の作品(まだWindows用チェックしていません)(注:UpdateAutoTestは私のアプリの名前だった):私は入れていない

var appLauncher:File; 
       appLauncher = new File(File.applicationDirectory.nativePath).parent.parent.resolvePath("Contents").resolvePath("MacOS").resolvePath("AutoUpdateTest"); 

      var npInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo; 
      npInfo.executable = appLauncher; 
      var _args:Vector.<String> = new Vector.<String>; 
      //_args.push("-a"); 

      //_args.push(); 
      npInfo.arguments = _args; 
      var np:NativeProcess = new NativeProcess; 
      np.addEventListener(NativeProcessExitEvent.EXIT, npExitHandler); 
      np.start(npInfo); 
      exit(); 
関連する問題