1

CoreMIDI を使用する iPad アプリでクラッシュした後、次のエラーが表示されます ( *はアプリ名を空白にするためのものです)。

Dyld Error Message:
 Symbol not found: _MIDINetworkNotificationContactsDidChange
 Referenced from:
/var/mobile/Applications/8F08B78E-929D-4C5A-9F02-08FD5743C17F/***.app/***
 Expected in: /System/Library/Frameworks/CoreMIDI.framework/CoreMIDI
in /var/mobile/Applications/8F08B78E-929D-4C5A-9F02-08FD5743C17F/***.app/***
 Dyld Version: 179.4

アプリが起動したら、次を使用して MIDI ネットワーク セッションをリッスンします。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sessionDidChange:) name:MIDINetworkNotificationSessionDidChange object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sessionDidChange:) name:MIDINetworkNotificationContactsDidChange object:nil];

これがクラッシュの原因のようです。これは私が電話した後です

session = [MIDINetworkSession defaultSession];
session.enabled = YES;
session.connectionPolicy = MIDINetworkConnectionPolicy_Anyone;
MIDIClientCreate(CFSTR("MidiManager"), midiNotifyProc, (void*)self, &midiClientRef);

このの CoreMIDI ライブラリはビルドに含まれていないようです。問題は、必要なフレームワークとしてビルドに含まれていることです。(そして、展開ターゲットは 4.2 に設定されています)。私は自分の iPad でビルドを正常に実行でき、他のユーザーの iPad でも問題なく広範囲にテストしてきました。また、これは、すでにいくつかの更新が行われた既存のアプリの更新であり、問​​題はありません。

展開ビルドを再確認したところ、フレームワークが確実に含まれており、そのビルドを (ストアとは異なるプロビジョニング プロファイルを使用して) iPad にインストールしたところ、問題なく動作しました。

何が起こっている可能性がありますか?Apple に送ったものに対して Xcode が不適切なビルドを行った可能性がありますか、それとも明らかな何かが欠けているのでしょうか? MIDINetworkNotificationSessionDidChangeとりあえず問題を解決するために、通知記号をリテラル文字列 ( )に変更でき@"MIDINetworkNotificationSessionDidChange"ますか?

助けてくれてありがとう!

4

2 に答える 2

0

で最小 OS 要件を 4.2 に設定したことを覚えていますInfo.plistか? クラッシュ レポートは、以前のバージョンの iOS を使用しているユーザーが、アップグレードしてはならないときにアップグレードしている可能性があります。

于 2011-02-18T23:13:54.193 に答える