2016-12-07 3 views
0

Я пытаюсь использовать Dotfuscator с Unity3D. При создании моего Android-проекта в Unity он использует свой внутренний компилятор. Я добавил цель «AfterBuild» в файл .csproj, и если я создам проект в Visual Studio 2013, то работает AfterBuild.Интеграция Dotfuscator в конвейер сборки Unity3D

Так что мой вопрос в том, как я могу изменить конвейер сборки Unity для этого?

Я использую Unity 5.4.2 и VS 2013.

ответ

0

для настольных приложений,

  1. Используйте BuildPipeline.BuildPlayer построить приложение или игру в указанный путь. Затем используйте Dotfuscator для запутывания DLL (он должен быть расположен где-то в каталоге Ouput), начав процесс Dotfuscator, когда сборка

    // Build player. 
    BuildPipeline.BuildPlayer(levels, path + "/BuiltGame.exe", BuildTarget.StandaloneWindows, BuildOptions.None); 
    
    // Obfuscate the dll in the player. 
    Process proc = new Process(); 
    proc.StartInfo.FileName = "path_to_dotfuscator"; 
    proc.StartInfo.Arguments = "arguments_of_dotfuscator path_to_app_dll"; 
    proc.Start(); 
    
  2. Использование command line of the Unity3D Editor построить приложение или игру. Затем используйте Dotfuscator для обфускации dll. Просто используйте язык сценария, который вы хотите написать и выполните эти шаги.

для IOS/Mac приложение, используйте il2cpp должно быть достаточно, чтобы запутать приложение. Я не совсем уверен в этом.

Для Android я не знаю, есть ли способ перехватить конвейер здания до того, как Unity3D сделает apk для вас. Но мы всегда можем извлечь dll из apk, обфускать его и вернуть обратно. Для этого существуют некоторые решения, см. this question.

Смежные вопросы