CoreMidi _MIDINetworkNotificationContactsDidИзменить символ не найден - PullRequest
1 голос
/ 19 февраля 2011

Я получаю следующую ошибку после сбоя в приложении для iPad, использующем CoreMIDI (* должны убрать имя приложения):

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с другим профилем обеспечения из магазина), и он также отлично работает.

Что может происходить?Может ли быть так, что XCode просто сделал плохую сборку для той, которую я отправил в Apple, или я упустил что-то очевидное?Могу ли я изменить символ уведомления MIDINetworkNotificationSessionDidChange на буквальную строку (@"MIDINetworkNotificationSessionDidChange"), чтобы исправить положение на среднее время?

Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 13 июля 2013

Похоже, это была вещь от Apple. .Mm класса рабочей лошадки PGMidi включает это наверху:

// For some reason, this is not pulled in by the umbrella header
#import <CoreMIDI/MIDINetworkSession.h>

https://github.com/petegoodliffe/PGMidi

0 голосов
/ 19 февраля 2011

Вы не забыли установить минимальные требования к ОС на 4.2 в вашем Info.plist?Может случиться так, что отчеты о сбоях поступают от пользователей более ранней версии iOS, которые обновляются, когда их не должно быть.

...