Introdução
Recentemente, o projeto foi atualizado para a versão 2019.4.10f1. Ao usar o empacotamento automatizado, encontrei alguns problemas. Um deles foi que após a exportação do projeto XCode, ao executar o projeto, o erro de compilação: arquivo 'UnityFramework / UnityFramework.h' não encontrado
Não havia nenhum problema na versão anterior. Neste momento, observe a estrutura do projeto. O diretório XCode exportado pelo Unity é diferente da versão anterior. Agora existe uma pasta MainApp com o arquivo de entrada main.mm.
Clique para abrir o principal .mm e veja a linha de erro, cabeçalho A referência do arquivo inclui <UnityFramework / UnityFramework.h>, consulte a pasta UnityFramework e o arquivo de cabeçalho UnityFramework.h no diretório do projeto, mas a hierarquia da pasta está errada
Portanto, você só precisa adicionar processamento no código de embalagem automatizado e alterar a referência para o caminho correto.
public static void OnPostProcessBuild( BuildTarget target, string pathToBuiltProject )
{
if (target != BuildTarget.iOS)
{
Debug.LogWarning("Target is not iPhone. XCodePostProcess will not run");
return;
}
//main.mm中找不到UnityFramework/UnityFramework.h的问题
var mainAppPath = Path.Combine(pathToBuiltProject, "MainApp", "main.mm");
var mainContent = File.ReadAllText(mainAppPath);
var newContent = mainContent.Replace("#include <UnityFramework/UnityFramework.h>", @"#include ""../UnityFramework/UnityFramework.h""");
File.WriteAllText(mainAppPath, newContent);
}
Empacote novamente, abra main.mm e a referência foi modificada