具有单个数据库和单个登录的多个iOS应用程序

具有单个数据库和单个登录的多个iOS应用程序,ios,iphone,swift,Ios,Iphone,Swift,我在android中创建了多个应用程序,使用单个数据库(内容提供商),单次登录(这意味着如果我登录一个应用程序,它应该对所有人都有效,如果我从一个应用程序注销,它应该从所有其他应用程序注销),我必须从另一个应用程序打开一个应用程序,每天我必须将所有离线数据更新到服务器(应该在每天的特定时间发生)。现在我要将此系统(所有应用程序)移植到iOS,是否可以在iPhone中使用?我不打算将此应用程序提交到app store。是的,这是可能的。您需要将数据库保存在容器url处,您可以使用: - (NSUR

我在android中创建了多个应用程序,使用单个数据库(内容提供商),单次登录(这意味着如果我登录一个应用程序,它应该对所有人都有效,如果我从一个应用程序注销,它应该从所有其他应用程序注销),我必须从另一个应用程序打开一个应用程序,每天我必须将所有离线数据更新到服务器(应该在每天的特定时间发生)。现在我要将此系统(所有应用程序)移植到iOS,是否可以在iPhone中使用?我不打算将此应用程序提交到app store。

是的,这是可能的。您需要将数据库保存在容器url处,您可以使用:

- (NSURL *)containerURLForSecurityApplicationGroupIdentifier:(NSString *)groupIdentifier;
所有应用程序的
groupIdentifier
参数都必须相同,并且需要在Target->Capabilities->App group内部进行配置

为每个应用程序配置相同的appGroup后,您可以使用上述方法将数据库保存在该方法提供的位置。这样,所有应用程序都可以访问相同的数据库

有一个NSUserDefaults init methid,它接受suitename(appGroup),并创建一个共享的UserDefaults,可用于您的单一登录目的

- (instancetype)initWithSuiteName:(NSString *)suitename;
参考:


您可以使用
AppGroups
在应用程序之间共享文件。使用
AppGroups
您可以通过在数据库中存储一个
Bool
来实现
单一开启功能,您的每个应用程序都可以访问该数据库,该数据库指示用户当前是否已登录,并在打开时相应地执行操作g您的一个应用。

感谢Puneet sharma的快速响应,您能给出一些详细的例子吗谢谢David Pasztor,我如何从另一个应用打开一个应用,以及如何每天在同一时间将所有数据上传到服务器(为此,我使用android服务),iOS中的替代方案是什么?您无法从任何其他应用程序自动打开您的应用程序,
iOS
需要用户交互。您必须在其他应用程序中提供指向您的应用程序的链接,用户可以单击以启动您的应用程序。但是,如果您使用共享数据库,则不需要打开其他应用程序来上载其数据o服务器。您只需确保在任何应用关闭之前将数据写入数据库,然后您每天只需从其中一个应用上载数据库内容。设备连接到internet数小时后,用户正在脱机工作,因此有可能将我的所有应用挂起在该设备联机之前声明。你不需要连接internet即可保存到本地数据库。至于如何在你的应用程序中设置每日任务,你可以找到一些已启用的答案。你是对的,大卫,但每天我都必须在午夜将本地数据库更新到服务器,那时我的应用程序可能处于运行状态,也可能不处于运行状态这就是为什么我在android中使用服务为什么你用
android
标记你的问题?因为我已经在android中实现了同样的功能,所以android和iOS的普通开发者可以很容易地给我提建议