メイン ActionScript 3.0 特設会議室 air自動アップデートでAIR ファイルが破損しているというエラーがきえません | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
1010real | Åê¹ÆNo.43619 投稿日時: 2009-10-5 17:53 |
新米 居住地: 東京 投稿: 5
使用環境:
WinXP, Flash CS4,CS3 |
air自動アップデートでAIR ファイルが破損しているというエラーがきえません 現在、AIRアプリを作成しており、air update frameworkを使って、AIRアプリ起動時に自動アップデートを試みているのですが、一箇所どうしてもわからない場所がありましたので、投稿させていただきました。
現象としては、バージョンチェック→ファイルのダウンロードまでは正常に行われるのですが、ダウンロードしたAIRファイルのインストール中に 「エラーが発生しました。 AIR ファイルが破損しているためアプリケーションをインストールできませんでした。アプリケーション作成者に問い合わせて、新しい AIR ファイルを入手してください。」 と表示されてしまい、一度もアップデートに成功したことがありません。 パブリッシュしたAIRファイルを直接クリックしてインストールすることはできるので、ファイルの破損ということは無いと思います。 ググったりして、1点気になっているのがデジタル署名がどうのこうのという記事なのですが、以下の記事を参考にとりあえず自己署名証明書にて作成しているのですが、有料のものを使用しないとアップデートはできなかったりするのでしょうか? http://www.adobe.com/jp/devnet/air/articles/signing_air_applications_05.html また、インストールログには以下のようなエラーメッセージが表示されています。 Unpackaging to C:\Documents and Settings\XXXXX\Local Settings\Temp\flaB5.tmp failed while unpackaging: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032" errorID=2032] ※インストールログについては以下を参考にしました。 http://www.adobe.com/jp/support/kb/ts/233/ts_233635_ja-jp.html どなたか成功した方いましたら、ご教授いただければ幸いです。 環境はWinXP, CS4 10.0.2, AIR 1.5.2です。 以下、実装ソースです。 ------------------------------------- var appUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI(); appUpdater.configurationFile = new File("app:/updateConfig.xml"); if (appUpdater.isFirstRun) { return; } appUpdater.addEventListener(UpdateEvent.INITIALIZED, onInitialized); appUpdater.initialize(); ------------------------------------- 上記asファイル内で読み込んでいる updateConfig.xml の内容です。 ---------------------------------- <?xml version="1.0" encoding="utf-8"?> <configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0"> <url>http://xxxxxx/updateDescriptor.xml</url> <delay>1</delay> <defaultUI> <dialog name="checkForUpdate" visible="false" /> <dialog name="downloadUpdate" visible="true" /> <dialog name="downloadProgress" visible="true" /> </defaultUI> </configuration> ----------------------------------- 上記updateConfig.xmlファイル内で指定しているupdateDescriptor.xml の内容です。 ---------------------------------- <?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/1.0"> <version>0.0.2</version> <url>http://xxxxxx/test.air</url> <description> <text xml:lang="en">description for english</text> <text xml:lang="ja">日本語の説明</text> </description> </update> ----------------------------------- とても長文で申し訳ありません。 とりあえず、自分で調べた限りのことは記しました。 何卒よろしくお願いいたします
|
1010real | Åê¹ÆNo.43652 投稿日時: 2009-10-8 15:51 |
新米 居住地: 東京 投稿: 5
使用環境:
WinXP, Flash CS4,CS3 |
Re: air自動アップデートでAIR ファイルが破損しているというエラーがきえません 自己回答です。
原因としましては、アップデートがある場合、ない場合どちらの場合にも、アプリの起動処理を入れてしまっていたことが原因だったようです。 起動処理の内容にもよると思うのですが、基本的にはアップデートをしない場合にのみ、続きの処理を実行する様にすべきだったみたいです。 具体的には以下を追加しました。 ------------------------------------- //initialize呼び出し前に追加 appUpdater.addEventListener(StatusUpdateEvent.UPDATE_STATUS, onUpdateStatus); private function onUpdateStatus( e:StatusUpdateEvent ) { if (!e.available) { ////// ここに起動時処理 /////// } ------------------------------------- お騒がせいたしました。 今後ともよろしくお願いいたします。
|
1010real | Åê¹ÆNo.43685 投稿日時: 2009-10-12 23:33 |
新米 居住地: 東京 投稿: 5
使用環境:
WinXP, Flash CS4,CS3 |
Re: air自動アップデートでAIR ファイルが破損しているというエラーがきえません 自己回答(その2)です。
前回の回答時に、 「起動処理の内容にもよると思うのですが、」 という記述をしていたのですが、その内容についておそらくこれだろうという部分がありましたので記入させていただきました。 (※あくまで仮説ですが。。。) 今回、アプリ起動時にタスクバーを出したくなかったため、デフォルトのNativeWindowを閉じて、新たにウインドウを生成して、そこにアプリを表示するという処理を上記の起動処理に含んでいます。 これだとアップデート処理の際に、メインのウインドウが既に閉じられていることになるのですが、ここでエラーが出ているのではないかと思っています。 おそらく、air自動アップデートでは、 「今すぐインストール」を押す ↓ メインのウインドウを閉じる ↓ インストール処理 という動作をしているのではないかと思います。 なので、普通にデフォルトウインドウにてアプリを動作させている場合には問題ないのではないでしょうか? ※あくまで仮説です。。。間違っていたらどなたか訂正してください。。。
|
961832p | Åê¹ÆNo.43726 投稿日時: 2009-10-16 5:57 |
常連 居住地: Akiruno-shi 投稿: 155
使用環境:
:AS3: - Adobe Flex SDK, Eclipse, AIR GEAR - LB.Log AS3, Alcon2 :AS2: - AMES(ASDT, MTASC, Eclipse, swfmill) - Natural Entry Point Method - LB.Log, Zeroi Pro, Firefox, Chromium(Iron), IE ---------------- Pro, |
Re: air自動アップデートでAIR ファイルが破損しているというエラーがきえません 自分の作成環境がFlexなので少し違ってくるかもしれませんが、ちょうど…といいますかようやく(汗笑)AIRをやってみようかなと思いはじめていたので、今回を機に挑戦してみました。 引用: 今回、アプリ起動時にタスクバーを出したくなかったため、デフォルトのNativeWindowを閉じて、新たにウインドウを生成して、そこにアプリを表示するという処理を上記の起動処理に含んでいます。 この「タスクバーに表示させたくない」という部分にフォーカスをあてて、自分もAIRアップデートフレームワークを使ってみることに。 まずは「AIR タスクバー 非表示」で検索してみると、エントリーした自身の visibleプロパティ を false にする事でタスクバーには表示されなくなる事がわかり、自環境でも確認できました。 アップデート時のダイアログはタスクバーに表示されてしまいますが、兄弟ウインドウ(?)の作成時は typeプロパティ を NativeWindowType.NORMAL 以外にするとタスクバーには表示されない事がわかりました。 自分にはタスクバーに何にも表示されないのが少し不安だったので、検索時に知ったタスクトレイに表示させる処理を加えることに。実行すると何だか常駐ソフトみたいです(笑)。 Adobe Flex SDK 3.4.0.9271 で作成、WinXP Pro SP3 + Adobe AIR 1.5.2.8900 で動作確認しました。 ・サンプル実行時のスクリーンショット ・サンプルのインストールページ サンプルのAIRパッケージへの署名には、SDK付属のadtコマンドで生成した自己署名証明書を使用しています。 Thawte社の無料で発行している個人証明書がコード署名にも使えるという情報があったので申請してみるも途中から先に進めず、どうやら受付は終了しているもようです…残念。 ・Thawteのデジタル証明書無料発行サービスが終了 - スラッシュドット・ジャパン コード署名に使える無料の証明書が他にもあるのか気になりました。 …また日記みたいになってしまい、まともな回答になっていないのですが(汗)、ウインドウを閉じずに、visibleプロパティを使ってタスクバーに表示させない方法を試してみるのはどうでしょうか?
|
1010real | Åê¹ÆNo.43743 投稿日時: 2009-10-19 16:41 |
新米 居住地: 東京 投稿: 5
使用環境:
WinXP, Flash CS4,CS3 |
Re: air自動アップデートでAIR ファイルが破損しているというエラーがきえません ありがとうございます!!
961832pさんのやり方で見事にアップデート処理を行うことができました! 引用: ウインドウを閉じずに、visibleプロパティを使ってタスクバーに表示させない方法を試してみるのはどうでしょうか? メインのウインドウを閉じなくてもvisible=falseでタスクバーに表示されなくなるんですね。まさに目から鱗でした。 この方法だと、確かにエラーが出なくなりました! 実は、前の自己返答後、 「今すぐインストール」が押された場合 → 起動処理しない それ以外の場合 → 起動処理を行う と考えて色々試していたのですが、ApplicationUpdaterUIクラスには、ダイアログで何のボタンが押されたかを取得するイベントが全く無くて、押されたボタンによって処理を変える事ができなかったです。 おそらく押されたボタンによって処理を変える等の処理を行うにはApplicationUpdaterクラスを使って、1から組み立てるしかないのだと思って正直愕然としていました。 なのですごく助かりました! 引用: 検索時に知ったタスクトレイに表示させる処理を加えることに。実行すると何だか常駐ソフトみたいです(笑)。 今回まさにその常駐ソフト的な感じのものを作りたかったので、タスクトレイ化もしてました。それも原因なのかなと一時期は疑ってたりしたんですが、全く関係なかったです(笑) 引用: コード署名に使える無料の証明書が他にもあるのか気になりました。 確かに気になりますね。ググってもあまり「これ」っていう情報出てこないんで。。。 以下、とりあえず、自分がアップデートに成功したソースです。 961832pさんのやり方を参考に、新しく作ったウインドウが閉じられた際に、アプリケーション自体が終了する処理を入れてみました。 引用:
上記の部分だけだとそんなに変わらない印象なんですけど、実際、flexとflashだときっと結構違うんですよね。。。 air開発はflexの方が分があるっていう話を良く聞くので、自分もflex勉強しなきゃなと思う今日この頃です。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |