【发布时间】:2019-07-31 13:43:54
【问题描述】:
我有一个供应商提供的.framework 文件,我为使用Objective Sharpie 创建了一个iOS 绑定项目。我可以调用库,获取回调,提取数据,除了库能够访问当前位置之外,几乎所有东西都可以正常工作。该项目的公共标头在这里StripeTerminal
在我的 C# 代码中,我使用 Xamarin.Essentials 来拉取当前位置。
var location = await Geolocation.GetLastKnownLocationAsync();
这将返回我在模拟器和真实 iPhone 上的位置。我可以在 Privacy-> Location Services 菜单中看到我的应用已获得访问权限。
我的info.plist 文件中有以下内容,我尝试将其定位为 9.0 SDK 和 12.0 SDK。
<key>NSLocationWhenInUseUsageDescription</key>
<string>Location required for accepting payments.</string>
在供应商提供的示例 XCode 项目中,它能够通过检查其详细日志来提取位置。在 Xamarin 应用程序中,他们的日志卡在 requestLocation 上,并且永远不会超过它。我什至尝试将链接选项设置为Don't Link,结果是一样的。
我的绑定项目有什么问题会阻止本机框架库访问该位置?
【问题讨论】:
-
也许,您的供应商 iOS 框架实际上是在使用另一个库/框架来访问位置数据?如果是这种情况,则必须将此依赖项添加到您的绑定项目中作为参考。在 iOS 中,依赖项没有嵌入到 .Framework 存档中
-
他们的示例项目只是将 Static.framework 和 AlamoFire.framework 链接/嵌入到他们的项目中。两者都用于编写示例代码。
标签: xamarin xamarin.ios stripe-payments