我有一个广告sdk本机库,在64位更改之前对我有用。它在这里:https://github.com/bbhsu2/XamarinAdMarvelBinding。
我的问题是我现在有以下代码在iOS模拟器中加载广告,但不在真实设备中运行:
public AGPAdMarvelAd(UIViewController viewController, CGRect frame) : base(frame)
{
adMarvelView = AdMarvelView.CreateView(this);
adMarvelView.GetAdWithNotification();
AddSubview(adMarvelView);
}
其中AdMarvelView.CreateView()定义为:
[BaseType(typeof(UIView))]
[Protocol]
interface AdMarvelView
{
[Static, Export("createAdMarvelViewWithDelegate:")]
AdMarvelView CreateView(IAdMarvelDelegate del);
...
}
在模拟器中,创建了adMarvelView对象,广告加载得很好。在设备中,adMarvelView为null,应用程序崩溃。
我还更新了我的libAdMarvelSDK.linkwith.cs文件,如下所示:
using System;
using ObjCRuntime;
[assembly: LinkWith ("libAdMarvelSDK.a", LinkTarget.Simulator64 | LinkTarget.Arm64 | LinkTarget.ArmV7 | LinkTarget.ArmV7s | LinkTarget.Simulator,
SmartLink = true, ForceLoad = true)]
另外,我可以使用本机库,使用Obj-C和Swift没有问题。