ios – MonoTouch调试没有用ServiceStack.Text构建(AOT错误)?

我刚开始在MonoTouch解决方案中使用ServiceStack.Text.MonoTouch.dll.一切都在模拟器中编译和运行,但是一旦我尝试在手机上运行Debug构建,编译过程就会因以下错误而消失:
错误MT3001:无法AOT程序集’… / ServiceStack.Text.MonoTouch.dll’

我读过这是因为ServiceStack.Text dll太大或者沿着那些行.所以我试着在发布模式下工作,因为LLVM处于打开状态,链接器转向“仅限链接SDK程序集”.

这是有问题的,因为我现在无法在设备上进行调试.在调试模式下,链接器被禁用,LLVM被关闭.有没有办法解决?

MT 6.0.8&
最新版本的ServiceStack dll是关闭Github的.

解决方法

In debug mode the linker is disabled,

不(至少不是默认情况下).

默认情况下,为所有设备构建(调试或发布)启用托管链接器(Link SDK).但是,默认(Link SDK)将无法从ServiceStack.Text.dll中删除未使用的代码,因为该程序集不是SDK程序集.

您需要将选项切换到链接所有程序集以确保它得到处理.

请注意,如果链接器不安全(例如使用反射),则可能需要在自己的代码上添加[Preserve]属性(或–linkskip = ASSEMBLY).有关示例,请参见此thread.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...