1

3.0 iPhone OS SDKに基づくアプリケーションがありますタスクの1つはビデオの再生です(このタスクにはMPMoviePlayerControllerを使用します)今、3.0と3.2 OSの両方でユニバーサルアプリを動作させようとしていますアップルのドキュメントに記載されているすべての手順を実行しました:現在のターゲットをアップグレードするiPad; を使用してシンボルの実行時チェックを行います

[[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)]

働き。しかし、デバイス(OS 3.1.3を搭載したiPhone)でアプリケーションを起動すると、次のログでアプリケーションがクラッシュします。

Tue May 25 18:00:28 unknown SpringBoard[24] <Notice>: MultitouchHID(208b30) uilock state: 1 -> 0
Tue May 25 18:00:29 unknown SpringBoard[24] <Notice>: MultitouchHID(292580) device bootloaded
Tue May 25 18:00:34 unknown UIKitApplication:...[0xaa0f][1517] <Notice>: dyld: Symbol not found: _MPMoviePlayerWillEnterFullscreenNotification
Tue May 25 18:00:34 unknown UIKitApplication:...[0xaa0f][1517] <Notice>:   Referenced from: /var/mobile/Applications/876EA35E-5756-436B-A9E2-5481D4D62050/....app/...
Tue May 25 18:00:34 unknown UIKitApplication:...[0xaa0f][1517] <Notice>:   Expected in: /System/Library/Frameworks/MediaPlayer.framework/MediaPlayer
Tue May 25 18:00:35 unknown kernel[0] <Debug>: launchd[1517] Builtin profile: container (seatbelt)
Tue May 25 18:00:35 unknown kernel[0] <Debug>: launchd[1517] Container: /private/var/mobile/Applications/876EA35E-5756-436B-A9E2-5481D4D62050 (seatbelt)
Tue May 25 18:00:35 unknown ReportCrash[1518] <Notice>: Formulating crash report for process cnetmobile[1517]
Tue May 25 18:00:36 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:...[0xaa0f]) Job appears to have crashed: Trace/BPT trap
Tue May 25 18:00:36 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:...[0xaa0f]) Throttling respawn: Will start in 2147483646 seconds
Tue May 25 18:00:36 unknown SpringBoard[24] <Warning>: Application '...' exited abnormally with signal 5: Trace/BPT trap
Tue May 25 18:00:36 unknown ReportCrash[1518] <Error>: Saved crashreport to /var/mobile/Library/Logs/CrashReporter/..._2010-05-25-180034_...-iPhone.plist using uid: 0 gid: 0, synthetic_euid: 501 egid: 0
Tue May 25 18:01:36 unknown SpringBoard[24] <Notice>: MultitouchHID(208b30) uilock state: 0 -> 1

ご覧のとおり、エラーは「シンボルが見つかりません:_MPMoviePlayerWillEnterFullscreenNotification」です。このシンボルは、iPhoneOS3.2以降のMediaPlayer.frameworkで利用可能な通知です。

だから、私は何が間違っているのですか?OS 3.2(新しい利用可能な機能を備えた)および古いOS(それらの機能を備えた)でユニバーサルアプリケーションを正しく動作させるにはどうすればよいですか?

4

2 に答える 2

1

その定数の内容は文字列@"MPMoviePlayerWillEnterFullscreenNotification"であるため、定数の代わりにこの文字列を使用できます。

または、

  1. 実行時にシンボルを取得するような関数dlsymを使用します。また
  2. そのシンボルを弱くリンクさせます(=ステップ1を自動的に実行します)
于 2010-05-25T17:30:43.977 に答える
0

MediaPlay.frameworkは追加されていません。

于 2014-09-06T20:06:39.497 に答える