iOS8 App Groups

本文介绍iOS8中AppGroup特性,它允许不同应用或应用与小部件间通过创建共享路径进行离线数据共享。文章提供了如何在开发者账号中设置AppGroup的方法及代码示例。

iOS8 里的App Groups允许应用间相互共享数据,以下有说明:

AppGroup allows data sharing between two different apps or even app and widgets by creating one common shared path (like document directory). Data saved over there can be accessed by any app which is associated with that particular AppGroup. It is an offline data sharing between apps.

用自己的账号测试了一下,在这里创建App Groups(app id 下面):



然后代码里可通过UserDefaults来调用:

[[NSUserDefaults alloc] initWithSuiteName:@"<group identifier>"];

这里是官方文档,附有使用例子


参考文章:

http://stackoverflow.com/questions/24015506/communicating-and-persisting-data-between-apps-with-app-groups

http://technet.weblineindia.com/mobile/ios-8-app-group/





iOS和macOS应用开发中,**App Groups** 是一种允许同一开发团队下的多个应用或应用扩展共享数据的机制。通过App Groups,应用之间可以共享用户默认数据、缓存、文件等内容。要配置App Groups,除了在Xcode中进行设置外,还需要正确配置**描述文件(Provisioning Profile)**,以确保应用能够在设备上正常运行。 ### 配置App Groups描述文件的流程 #### 1. 创建App Group标识符 在Apple Developer网站中,进入 **"Certificates, Identifiers & Profiles"** 页面,选择 **"App Groups"** 选项,点击“+”按钮创建一个新的App Group。命名格式通常为: ``` group.com.yourcompanyname.appgroupname ``` 确保该名称与Xcode中配置的App Group名称一致[^1]。 #### 2. 在Xcode中启用App Groups 在Xcode项目中,选择目标应用的 **Signing & Capabilities** 选项卡,点击“+ Capability”按钮,添加 **App Groups** 功能。随后在列表中添加之前创建的App Group标识符。 #### 3. 更新Provisioning Profile 在Apple Developer网站中,需要将App Group添加到相应的 **Provisioning Profile** 中: - 进入 **Provisioning Profiles** 页面,选择用于开发或分发的描述文件。 - 编辑该描述文件,并在 **App Groups** 部分勾选已创建的Group。 - 保存并下载更新后的描述文件,然后在Xcode中重新导入该描述文件。 #### 4. 配置代码中使用App Groups 在代码中通过 `NSUserDefaults` 或 `FileManager` 访问共享容器: ```swift // Swift示例 let sharedDefaults = UserDefaults(suiteName: "group.com.yourcompanyname.appgroupname") sharedDefaults?.set("SharedValue", forKey: "key") ``` ```objc // Objective-C示例 NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.yourcompanyname.appgroupname"]; [sharedDefaults setObject:@"SharedValue" forKey:@"key"]; ``` #### 5. 获共享容器路径 可通过 `FileManager` 获共享文件目录: ```swift let fileManager = FileManager.default if let containerURL = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "group.com.yourcompanyname.appgroupname") { let filePath = containerURL.appendingPathComponent("sharedfile.txt") // 进行文件操作 } ``` ### 注意事项 - 确保所有使用该App Group的应用和扩展都具有相同的 **Team ID** 和 **App Group标识符**。 - 若在Xcode中遇到签名错误,应检查描述文件是否包含App Group配置,并确保Xcode中选中的描述文件为最新版本。 - 在企业证书环境下,App Group功能可能受到限制,需确保描述文件和配置正确无误。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值