我正在尝试使用我的xamarin.ios应用程序使用preemptive解决方案 - dotfuscator,但是构建失败了,我遇到了此错误:
我从这里完成了所有步骤:
https://www.preemptive.com/obfuscating-xamarin-with-dotfuscator
我的Xamarin.android效果很好,但是iOS项目失败了。
错误:
命令" C: Program Files(X86( Microsoft Visual Studio 14.0 Preemptive Solutions dotfuscator和Analytics Community Edition dotfuscatorcli.exe.exe.exe"/p:indir =" obj iphone iPhone iPhone doars dotfuscatorxamarin dfuscatorxamarin dfin dfin",OutDir =" OBJ iPhone Release dotfuscatorxamarin dfout",reportdir =" dotfuscatorReports iPhone iphone Release" dotfuscatorconfig.xml">
任何想法我如何解决?
更新29-06-2017:dotfuscatorconfig.xml文件的内容xamarin.ios project
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE dotfuscator SYSTEM "http://www.preemptive.com/dotfuscator/dtd/dotfuscator_v2.3.dtd">
<dotfuscator version="2.3">
<propertylist>
<property name="InDir" value="objiPhoneReleaseDotfuscatorXamarindfin" />
<property name="OutDir" value="objiPhoneReleaseDotfuscatorXamarindfout" />
<property name="ReportDir" value="DotfuscatorReportsiPhoneRelease" />
</propertylist>
<global>
<option>monocompat</option>
</global>
<input>
<asmlist>
<inputassembly refid="7cf160e1-e28e-4f81-bd8d-f10fdcbcc3f8">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="${configdir}${InDir}" name="MyProject.dll" />
</inputassembly>
<inputassembly refid="2d40ee83-3b30-421c-8b1a-fa4d404fb2d9">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="${configdir}${InDir}" name="MyProject.dll.mdb" />
</inputassembly>
<inputassembly refid="11652964-9a02-4f24-b042-25f260fada88">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="${configdir}${InDir}" name="MyProject.iOS.exe" />
</inputassembly>
</asmlist>
</input>
<output>
<file dir="${configdir}${OutDir}" />
</output>
<renaming>
<option>xmlserialization</option>
<mapping>
<mapoutput overwrite="true">
<file dir="${configdir}${ReportDir}" name="Renaming.xml" />
</mapoutput>
</mapping>
<referencerulelist>
<referencerule rulekey="{6655B10A-FD58-462d-8D4F-5B1316DFF0FF}" />
<referencerule rulekey="{7D9C8B02-2383-420f-8740-A9760394C2C1}" />
<referencerule rulekey="{229FD6F8-5BCC-427b-8F72-A7A413ECDF1A}" />
<referencerule rulekey="{2B7E7C8C-A39A-4db8-9DFC-6AFD38509061}" />
<referencerule rulekey="{494EA3BA-B947-44B5-BEE8-A11CC85AAF9B}" />
<referencerule rulekey="{89769974-93E9-4e71-8D92-BE70E855ACFC}" />
<referencerule rulekey="{4D81E604-A545-4631-8B6D-C3735F793F80}" />
</referencerulelist>
</renaming>
<sos mergeruntime="true">
<option>version:v4</option>
<option>disable</option>
<option>dontsendtamper</option>
</sos>
<smartobfuscation>
<smartobfuscationreport verbosity="all" overwrite="true">
<file dir="${configdir}${ReportDir}" name="SmartObfuscation.xml" />
</smartobfuscationreport>
</smartobfuscation>
</dotfuscator>
和preemptive.dotfuscator.xamarin.targets文件,我正在使用官方网站上的文件。preemptive.dotfuscator.xamarin.targets
,如问题的评论所述,我为先发制人的解决方案工作。这是DotFuscator-Xamarin Targets文件(PreEmptive.Dotfuscator.Xamarin.targets
(中的一个错误,对此很抱歉。
Note :在目标文件的1.1.0版中纠正了此问题。该文件的最新版本可以在此页面上下载。
具体来说,当生成初始dotfuscator配置文件(DotfuscatorConfig.xml
(时,我们将MDB(单声道调试符号(文件视为输入程序集。目标文件的下一个版本将纠正此问题。
要使用目标文件的1.0.0版本解决此问题,请从DotfuscatorConfig.xml
中删除以下行:
<inputassembly refid="2d40ee83-3b30-421c-8b1a-fa4d404fb2d9">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="${configdir}${InDir}" name="MyProject.dll.mdb" />
</inputassembly>
目标文件从那时起将使用您的更正版本。