“链接全部”时 Xamarin Forms iOS NoConstructorFoundException 与 AutoFac,以及“不链接”时的无限构建

问题描述 投票:0回答:1

在物理 iPhone 上构建和部署适用于 iOS 的 Xamarin Forms 应用程序时,我遇到了一个令人困惑的问题。该应用程序在 Android 上成功构建和部署,并且也可以在 iOS 模拟器上运行。但是,当我将链接器设置为“Link All”时,我遇到了与 AutoFac 相关的 NoConstructorFoundException。

如果我将链接器切换到“不链接”,异常就会消失,但构建过程会变得无限,并且我无法在物理 iPhone 上部署应用程序。

总结一下:

Android:运行良好。 iOS 模拟器:与“不链接”配合良好。 iOS 实体 iPhone: “链接全部”:NoConstructorFoundException 与 AutoFac。 “不链接”:无限构建,无法部署。 我已经验证我的 AutoFac 注册是正确的,并且依赖项没有问题。

我正在寻求有关如何解决此问题并在链接器设置为“链接全部”的情况下在物理 iPhone 上成功部署应用程序的指导。

任何帮助或见解将不胜感激。预先感谢您!

输出如下:

/Users/mateusz/shftrun/SHFTRUN/SHFTRUN/SHFTRUN.iOS/obj/iPhone/Debug/device-builds/iphone13.2-16.1.2/mtouch-cache/registrar.m(35506,17): warning G3E9910A3: auto property synthesis will not synthesize property 'extrapolate' declared in protocol 'CIPhotoEffect' [-Wobjc-protocol-property-synthesis]
@implementation CoreImage_CIPhotoEffect {
                ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.0.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilterBuiltins.h:417:30: note: property declared here
  @property (nonatomic) bool extrapolate NS_AVAILABLE(14_0, 17_0);
                             ^
/Users/mateusz/shftrun/SHFTRUN/SHFTRUN/SHFTRUN.iOS/obj/iPhone/Debug/device-builds/iphone13.2-16.1.2/mtouch-cache/registrar.m:35583:1: note: add a '@synthesize' directive
@end
^
1 warning generated.
c# ios xamarin xamarin.forms autofac
1个回答
0
投票

问题解决了,问题是Apple不允许选择“不链接”或“仅链接SDK”,但是当选择“链接全部”时,Autofac无法访问其他项目,所以只需对 AutoFac 中使用的所有项目使用 --linkskip :D

© www.soinside.com 2019 - 2024. All rights reserved.