Como posso contornar “Xcode não foi possível localizar arquivo de origem”
-
19-09-2019 - |
Pergunta
Eu estou trabalhando com o quadro ID3 no Xcode (que desde então desapareceu da face da web - incluindo cache do Google).
Eu estou testando um recurso de mp3 de importação que lhes permite editar as tags como eles importá-los. Um dos casos de teste é um mp3 corrompido ou inválido sem cabeçalho ID3 adequada. O problema que estou tendo é que quando atualizar as tags do mp3 inválido (updateFile:
), as tentativas de enquadramento ID3 para uso id3V1Tag.m
(presumo ela cai de volta a este se não puder encontrar o tag v2) e é aí que eu obter o erro Xcode (durante o funcionamento do programa, não construir):
Xcode could not locate source file: id3V1Tag.m (line: 299)
Mesmo em uma compilação de lançamento esta trava o programa, por isso não é algo que eu realmente pode ignorar.
Eu tentei colocar um bloco try / catch em torno dele, mas não é tratado como uma exceção para não pego. A função de carregar os dados da etiqueta para o arquivo retorna um BOOL, mas parece que este só retorna false se o arquivo dado não existe, de modo que este também não ajuda.
código atual:
[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");
}
}
Solução
O erro que você está recebendo é que Xcode está tentando localizar o seu id3V1Tag.m arquivo de origem, a fim de mostrá-lo durante a depuração. No código que você escreve vai afetar isso.
Se você não tem o arquivo de origem id3V1Tag.m em sua distro quadro, não há nada que você possa fazer sobre isso, e há pouco a fazer, mas ignorá-lo (diferente do que ver se você pode evitar fazendo com que seja solicitado, como não definir um ponto de interrupção no mesmo, não pisar nele, e não bater nele).
Se você tem isso, e está construindo-o, então talvez você não está construindo com as informações de depuração bem, então você vai ter que nos dizer mais sobre a sua configuração de compilação.
Outras dicas
Assim, o problema que você está tendo é que o programa está falhando quando você tenta compilar id3V1Tag.m ou durante a execução do programa. Estou um pouco confuso sobre isso.
Se o seu bater durante a execução talvez este é um problema com um arquivo de código falta de uma biblioteca? Como você está lendo as informações ID3 tag exatamente? É através de seu próprio código ou através de uma biblioteca parte 3 / classe.