2012-04-16 15 views
1

はじめに:博物館用のiPadアプリを「永続的な」情報提供のキオスクとして使用するよう書いています。彼らは常に1アプリを実行する必要があります。私の質問はApp Storeの配布ではなく、社外のユーザーの心配です。これはエンタープライズアプリケーションなので、この状況に関係しています。私は唯一の開発者であり、アプリの開発にはまだまだ新しく、厳しい締め切りの下で動作し、アプリが床に上がる前にすべてのバグを修正することはできません。私たちのゲストは、時にはアプリの最初のテスターです。これらはiPad 2とiOS 5.1を実行している新しいアプリです。いくつかのアプリはCocos2d ver 2.0フレームワークを実行しています。クラッシュ後にiOS Enterpriseアプリが完全に終了しないようにする方法はありますか?

博物館のゲストがiPadのデスクトップにいらっしゃることを防ぐ必要があります。私は約SBStoreDemoAppLockと金属フレームエンクロージャを見つけた後、mobileconfigファイルを使用してホームボタンを無効にしました。明らかに私は、決してクラッシュすることがないように、私のアプリが欲しい、そしてそれに向かって仕事をしています。しかし、iPadsが24時間365日稼働していて、時には2000人以上の子供がタップしたり、スワイプしたり、1日に殴打されたりすると、アプリがクラッシュすることがあります。

クラッシュを防止するためにコーディングを改善していますが、クラッシュした場合にアプリケーションが完全に終了しないようにする方法はありますか?意味は、クラッシュする必要がある場合は、単純なimageView "連絡先IT"と表示することができますか?私はそれが矛盾していることを知っています。アプリケーションがクラッシュする必要がある場合、クラッシュする可能性がありますが、それ以外にどのように言いたいのか分かりません。

さらに、クラッシュ後に自動的にアプリを再起動する方法はありますか? URLスキームのアプローチを調べて、それをapplicationWillTerminateに追加しましたが、iOS 4が登場して以来、非推奨になっています。私はjailbreakingを避けることを好むが、誰かがCydiaアプリでこれを行うための死んだ簡単な方法を知っているなら、私は最後の手段としてそれについて聞きたい。

設定タブで利用できる限り、iPadは完全に制限されていますが、今日の子供(大人)は、色の反転、補助ズームの有効化など、さまざまなものを見つけることができます。

+0

実際のクラッシュ(キャッチされていない例外とは対照的に)は、アプリに送信される特定の信号(IIRC、SIGBUS、またはSIGSEGV)として表示されます。あなたは実際にこの信号を捕まえることができますが、非常に扱いにくいです。これが起こると、実行時に*何か*に頼ることはできません(IIRC、mallocさえありません)。私は本当にあなたがそのようなシグナルハンドラで効果的に何ができるか分からない。 –

+0

うまくいくかどうかわかりませんが、KeepAliveを起動するためにlaunchdを見てください。詳細については、Mac OS Xの 'man launchd'と' man launchd.plist'を参照してください。 – v1Axvw

+0

@ lef2:アプリplistsはlaunchd plistsではありません。 –

答えて

0

まず、NSSetUncaughtExceptionHandlerを使用してアプリケーション内のエラーを傍受することです。ハンドラで行うことは、できるだけコードを最小限に抑え、事前ロードが必要なリソースを用意し、例外処理中のエラーはで、という不具合があるため、十分にテストする必要があります。

+0

クラッシュは必ずキャッチされない例外ではありません。 –

+0

@KevinBallard - これが私が「最初のこと」と言った理由です。 :) –

関連する問題