デプロイメントターゲットが 2.0 に設定されていても、iPhone SDK 3/4 アプリは iPhone 2.x デバイスでは実行されません
-
26-09-2019 - |
質問
ベース/アクティブ SDK とデプロイメント ターゲットの違いについては理解しています。ベース SDK を 4.0 に設定し、デプロイメント ターゲットを 2.0 に設定しています。条件付きかどうかにかかわらず、2.x 以降の API は使用していません。2.x デバイスではデバッグできないため、デバイスをビルドした後、iPhone 構成ユーティリティを使用してデバイスにアプリをインストールしますが、これは問題なく実行されます。問題は、実行されないことです。空白の画面が表示されます。メインウィンドウが表示されない!
質問する前に...
iPhone SDK 3.xでも同じ問題が発生しました。それが解決されることを期待して4.xにアップグレードしました。そうではありませんでした。
はい、プロビジョニング プロファイルがインストールされています。(そうでない場合はアプリをインストールできません。)
この同じコンパイル済みアプリは 3.x デバイスでも正常に動作します。4.x デバイスでも同様です。2.x デバイスではありません。
繰り返しになりますが、2.x 以降の SDK は使用していません。これを証明するために、[新しいプロジェクト] ダイアログからまったく新しいウィンドウ ベースのアプリを作成しました。変更したのはウィンドウの背景色だけであり (XIB が読み込まれていることを証明するため)、デプロイメント ターゲットを 2.0 に設定しました (ただし、依然として 4.x SDK に対してコンパイルされています。) 繰り返しますが、3.x または 4.x デバイスでは正常に動作しますが、2.x デバイスでは黒い空白の画面が表示されるだけです。
私はこれを、新たに復元した 1 台を含む 3 台の別々の 2.x デバイスで試しました。私は 3 つの異なる開発マシン (3.x SDK を搭載した MacBook Pro、4.x SDK を搭載した MacBook Pro、および 3.x SDK を搭載した Mac Pro) を使用しました。毎回同じ結果になります。
私は困惑しています。
変更されていないプロジェクトでさえ実行できないという事実に、私は本当に混乱しています。XIBファイルでしょうか?3.x SDK では形式が 2.x から新しいものに変更されましたか?その場合、2.x に戻すにはどうすればよいですか。(繰り返しますが、これは完全な推測にすぎません。)しかし、私は本当に困惑しています。
解決 3
アップル判明は彼らがコメントしなかったこと(変更「を固定」、より正確か)破壊変更を行いました。具体的には、我々のアプリは、明示的にコード経由またはIBの「ショー打ち上げで」オプションのいずれかを介して目に見えるメインウィンドウを設定していませんでした。しかし... SDKの1つのバージョンでは、実行時には、何もセットが、何かを表示する必要を見て、それは暗黙的にメインのXIBファイルでウィンドウを示しました。我々のコードが明示的にウィンドウを表示しなかったときしかし、新しい(そして古い)のSDK(実際にはランタイムが)ので、この暗黙の振る舞いを持っていなかった、私たちは空白の画面を持っています。
私たちは単にIBで「ショー打ち上げで」オプションをチェックし、それが働いていたので。完了とやった!
他のヒント
はapplicationDidFinishLaunching確認しましたか?あなたのアプリデリゲートにコールを
オプション:パラメータが3.0で追加されましたし、それ以前のフォームがまだ動作しますが、私の前の3.0のコードのいずれかに存在しない。
。オプションの辞書は:そのようなど「私はサファリからURLで開始された」
のように、あなたのアプリに情報を渡すために使用されますあなたは2.0上で実行することが予想される場合、あなたはおそらく、元に戻ってこれを変更する必要があります「applicationDidFinishLaunching:」ます。
2.xのは、完全にアプリケーションストアへの公開のために推奨されていません。あなたはXcodeの以前のバージョンを使用してデバイスにインストールすることができるはずですが、それはそれについてです。ここに私のコミュニティのwikiでさらに詳しい情報:
、取得 "ベースSDKが見つからない"、他のSDKを見ることができない/ iPhone SDK 4ワットのXcode 3.2.3をインストールする