如何从跨平台PCL使用iOSAppTrackingTransparency.ATTrackingManager?

How use iOS AppTrackingTransparency.ATTrackingManager from cross-platform PCL?

所以昨天这一行:

          ATTrackingManager.RequestTrackingAuthorization((status) => {
                     if (status == ATTrackingManagerAuthorizationStatus.Authorized)
                     {
                     }

是工作代码(在我的跨平台 Xamarin.Forms PCL 中)。 今天 xamarin.ios 收到更新。

在PCL项目中,找不到跟踪管理器了。 Intellisense 不再知道它是什么,我无法调试该应用程序。

它在 xamarin.ios 项目中被识别,但我需要从我的 PCL 访问它。

有人遇到同样的问题和/或已经找到解决方案了吗?

如何回滚到今天收到的 xamarin.ios 之前?

不需要回滚。作为测试,我更新了

  • Visual Studio(也更新了 Xamarin.iOS)。
  • XCode 到 14.5.1.

然后我向现有的 Xamarin Forms 解决方案添加了一行代码,该解决方案引用了 AppTrackingTransparency.ATTrackingManager。这被认为是有效代码。我还尝试了 ATTrackingManager,Intellisense 正确地告诉我我需要 using AppTrackingTransparency

所以它现在就在那里。

该命名空间+class名称特定于 iOS,因此必须从特定于 iOS 的项目中引用。 (如果它以前在 PCL 中是可引用的,那可能是一个已被纠正的错误;这样的代码在任何其他平台上都会中断。)


第一步:

在您的 iOS 项目中,编写引用 class 的代码。


第二步:

您需要了解如何使用来自跨平台 Xamarin Forms PCL 的自定义 iOS 代码 PCL。

我不会在这里重复 - 关于该主题有多个问答。
google“Whosebug xamarin 表单调用平台特定代码”。