CryptoObfuscator + Android 缺少 pdb 文件

CryptoObfuscator + Android is missing a pdb file

我尝试使用 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>

如您所见,我为所有 7 个项目设置了 GeneratePdbFile="True"。我在我的构建过程中集成了 co.exe,它声称已成功实现 运行。它生成 7 个 dll 但只有 6 个 pdb。我上面粘贴的主要 PCL 项目的 pdb 文件丢失,因此 Xamarins 链接器失败,我无法构建 apk。

如何让 CryptoObfuscator 创建所有 pdb?或者我可以在没有它们的情况下生成 apk 吗?

不幸的是,CryptoObfuscator 支持没有回复我的电子邮件,我找不到其他有类似问题的人。

我通过完全禁用 Pdb 使其工作。我切换到发布模式并打开了每个应该混淆的项目的属性。在 Build / A​​dvanced 中,您可以将 Debug Info 设置为 None。 在 Crypto Obfuscator 中,我禁用了 Output Settings / Generate New Pdb File For Assembly。 然后没有创建 Pdb 文件。我在构建解决方案时收到警告,但可以忽略它们。

这个答案实际上应该归功于@JonDouglas,但他只写了一条评论。

不幸的是我也不得不禁用重命名符号。但这是我想使用 Crypto Obfuscator 的主要原因。因为我无法在 ConfuserEx 运行 中获得名称保护。因此,由于它在这两种工具中都不起作用,而且 Crypto Obfuscators 支持仍然没有回复我的电子邮件,我又回到了 ConfuserEx。这是免费的,不能用 de4dot 去混淆。