Как обойти «Xcode не удалось найти исходный файл»

StackOverflow https://stackoverflow.com/questions/2431520

  •  19-09-2019
  •  | 
  •  

Вопрос

Я работаю с платформой ID3 в Xcode (которая с тех пор исчезла из Интернета, включая кеш Google!).

Я тестирую функцию импорта mp3, которая позволяет им редактировать теги по мере их импорта.Одним из тестовых случаев является поврежденный или недействительный mp3-файл без правильного заголовка id3.У меня проблема в том, что при обновлении тегов недействительного mp3 (updateFile:), платформа ID3 пытается использовать id3V1Tag.m (Я предполагаю, что он возвращается к этому, если не может найти тег v2), и именно здесь я получаю ошибку Xcode (при запуске программы, а не при сборке):

Xcode could not locate source file: id3V1Tag.m (line: 299)

Даже в релизной сборке это приводит к сбою программы, поэтому я не могу игнорировать это.

Я попытался поместить вокруг него блок try/catch, но он не рассматривается как исключение, поэтому не перехватывается.Функция загрузки данных тега для файла возвращает BOOL, но похоже, что она возвращает false только в том случае, если данный файл не существует, поэтому это тоже не помогает.

Текущий код:

[tagData release];
tagData = [[TagAPI alloc] initWithGenreList:nil];
tagsLoaded = [tagData examineFile:exportPath];
if(tagsLoaded) {
    [tagData setTitle:title];
    [tagData setArtist:artist];
    [tagData setComments:comments];
    @try {
        [tagData updateFile];
    }
    @catch (id e){
        NSLog(@"h");
    }
}
Это было полезно?

Решение

Ошибка, которую вы получаете, заключается в том, что Xcode пытается найти исходный файл id3V1Tag.m, чтобы показать его во время отладки.Никакой написанный вами код не повлияет на это.

Если у вас нет исходного файла id3V1Tag.m в дистрибутиве вашего фреймворка, вы ничего не можете с этим поделать, и мало что можно сделать, кроме как игнорировать его (кроме того, чтобы посмотреть, можно ли избежать его запроса, например, не устанавливать точку останова в нем, не заходя в него и не вылетая в нем).

Если он у вас есть и вы его собираете, то, возможно, вы не используете правильную отладочную информацию, поэтому вам придется рассказать нам больше о настройке вашей сборки.

Другие советы

Итак, проблема, с которой вы столкнулись, заключается в том, что ваша программа дает сбой при попытке скомпилировать id3V1Tag.m или во время запуска программы.Я немного запутался в этом.

Если происходит сбой во время работы, возможно, это проблема с отсутствием файла кода в библиотеке?Как именно вы читаете информацию тега ID3?Это через ваш собственный код или через стороннюю библиотеку/класс.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top