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"
ますか?
助けてくれてありがとう!