提问人:redrock68 提问时间:11/6/2023 最后编辑:redrock68 更新时间:11/9/2023 访问量:75
NSUserDefaults 可以跨不同的代码库工作吗?
Can NSUserDefaults work across different code bases?
问:
我正在尝试使用应用程序组在目标 c iOS 应用程序和 c# xamarin forms 应用程序之间共享数据。
我正在 objective c 项目中设置初始数据,并使用可用于应用程序组的共享数据“剪贴板”传递数据。
这是我的目标 c 代码,用于初始化和发布字符串。
NSString *appGroupId = @"group.sample";
NSUserDefaults *groupUserDefaults = [[NSUserDefaults alloc] initWithSuiteName:appGroupId];
[groupUserDefaults setValue:offlineMsg forKey:@"RunwayRequest"];
[groupUserDefaults synchronize];
这是我在 Xamarin.Forms 应用程序中的 c# 代码。
string groupName = "group.sample";
NSUserDefaults shared = new NSUserDefaults();
shared.AddSuite(groupName);
var test = 共享。ValueForKey((NSString)“RunwayRequest”);
它总是返回一个空值,但我认为我正在将字符串添加到共享文件夹,但我无法检索其他项目中的数据。
我已将应用组标识符添加到两个配置文件中。我认为我不必向 plist 文件添加任何内容,但我并不肯定。
答:
0赞
Liqun Shen-MSFT
11/9/2023
#1
是的,您不必在 info.plist 中添加任何内容。但也有一些细节。
首先,应在 Apple 开发人员门户上为这两个 iOS 应用启用应用组功能。
综上所述,
创建一个 App Group,假设 Identifier 为 group.sample。
为每个应用单独创建一个 App ID,开启 App Group 功能,并在 App Group 中添加每个 App ID。
为每个应用单独生成预配配置文件。不要忘记在配置文件中包含要部署的正确证书和物理设备。
其次,为每个应用添加 Entitlements.plist 的键值。有关详细信息,可以参考应用组。
完成上述步骤后,您可以在 iOS 设备上部署每个应用程序,并立即与应用程序组共享数据。
希望对您有所帮助!
评论