2016-10-18 7 views
1

Я попытался использовать CryptoObfuscator для обфускации моего приложения Android, но он не генерирует все файлы pdb.CryptoObfuscator + Android отсутствует файл pdb

У моего решения Xamarin.Forms есть 11 проектов, 7 из которых должны быть запутаны. Я отключил большинство функций CryptoObfuscator, чтобы проверить его. Мой файл .obproj содержит следующие параметры для всех библиотек DLL:

<Assembly Load="true" Path=".\bin\Release\RoyalMobileApps.XF.dll" XapEntryName="" KeyFilePath="" KeyFileContainsPublicKeyOnly="False" CertFilePath="" TimeStampURL="" Rfc3161TimestampURL="False" SHA256SigningAlgorithm="False" Embed="True" AddExceptionReporting="False" PfxPassword="" PfxPasswordCert="" IsWinRTAssembly="False"> 
    <ObfuscationSettings EncryptStrings="True" EncryptMethods="False" EncryptConstants="False" SuppressReflector="False" ReduceMetaData="False" ObfuscationDisposition="1" FlowObfuscation="2" CodeMasking="0" SuppressILDASM="True" SuppressReflection="False" CombineResources="True" EncryptResources="True" CompressResources="True" MarkAsSealed="False" EnableTamperDetection="False" EnableAntiDebugging="False" SymbolRenaming="True" HideExternalCalls="False" HideInternalCalls="False" GeneratePdbFile="True" ObfuscatePdbFileNames="True" IncludeLocalVariablesInPdbFile="False" Encrypt="False" Compress="False" MSBuild="False" ObfuscatedNamespace="A" RetainNamespace="False" ModuleInitializationMethod="" LicensingMerge="False" RemoveConstants="False" ProcessSatelliteAssemblies="True"> 
     <Watermarks Watermark0="" Watermark1="" Watermark2="" Watermark3="" Watermark4="" Watermark5="" Watermark6="" Watermark7="" Watermark8="" Watermark9="" /> 
    </ObfuscationSettings> 
    </Assembly> 

Как вы можете видеть, что я установить GeneratePdbFile = «True» для всех 7 проектов. Я включил co.exe в мой процесс сборки, и он утверждает, что успешно работает. Он генерирует 7 dll, но только 6 pdbs. Файл pdb для моего основного проекта PCL, который я вставил выше, отсутствует, и поэтому компоновщик Xamarins терпит неудачу, и я не могу построить apk.

Как я могу получить CryptoObfuscator для создания всех pdbs? Или я могу сгенерировать apk без них?

К сожалению, поддержка CryptoObfuscator не отвечала на мои письма, и я не мог найти кого-либо еще с подобной проблемой.

+0

Что такое прецедент? Это будет окончательная конфигурация 'Release'' .apk' (Aka выпущена извне)? Если это так, нет необходимости даже генерировать символы 'pdb', если вы не планируете прикреплять отладчик. –

+0

@JonDouglas Да, это релиз сборки. Я не хочу отлаживать эту сборку. Мне не нужны файлы pdb, но по мере их создания по умолчанию я думал, что, возможно, Xamarin нуждается в них для сборки apk. Компилятор определенно сбой, если pdb не соответствует DLL. Если вы можете сказать мне, как построить apk без pdbs, я тоже буду счастлив. –

+0

Я считаю, что вы можете просто удалить свойство '' из конфигурации 'Release': https://developer.xamarin.com/guides/android/under_the_hood/build_process/#Build_Properties. Он может возвращаться как' false' но это должно помешать тем, кого я считаю. –

ответ

0

Я получил это, отключив Pdbs. Я переключился в режим выпуска и открыл свойства каждого проекта, который должен быть запутан. В Сборка/Продвинутый вы можете установить Отладочная информация до Отсутствует. В Crypto Obfuscator I отключен Настройки вывода/Создать новый файл Pdb для сборки. Тогда ничего не создавали файлы Pdb. При создании решения я получил предупреждения, но их можно игнорировать.

Этот ответ на самом деле должен быть зачислен на @JonDouglas, но он написал только комментарий.

К сожалению, мне пришлось отключить Переименовать символы. Но это была основная причина, по которой я хотел использовать Crypto Obfuscator. Потому что я не мог получить защиту имени в запущенном ConfuserEx. Так как он не работает ни в одном инструменте, а в поддержке Crypto Obfuscators все еще не отвечает на мою электронную почту, я возвращаюсь к ConfuserEx. Это бесплатно, и он не может быть deobfuscated с de4dot.