Latest 0.3.0
License MIT
Platforms ios 8.0, osx 10.9, tvos 9.0
Dependencies Prephirences

Join the chat at

Applications communication using group identifier.

let appGroup = ApplicationGroup(identifier: "")
appGroup.postMessage("your message", withIdentifier: "key")
appGroup.observeMessageForIdentifier("key") { message in


The data sharing between applications and extensions require you to enable App Group or Keychain sharing (if using key chain messenger type):

Then you must create an ApplicationGroup object.

let appGroup = ApplicationGroup(identifier: "")!

You can choose the way the messages are transferred by choosing one of the MessengerType enum value (File, UserDefaults, FileCoordinator, KeyChain, …)

let appGroup = ApplicationGroup(identifier: "..", messengerType: .UserDefaults)!

:warning: ApplicationGroup could return nil if you misconfigured application group.

Post a message

Choose a message identifier and post any NSCoding compliant object

appGroup.postMessage("your message", withIdentifier: "key to identify message")

Using subscript

appGroup["key to identify message"] = "your message"

Receive a message

Using the same message identifier you can receive message into callback

appGroup.observeMessageForIdentifier("key to identify message") { message in

Read a message

You can read current value using same message identifier

if let message = appGroup.messageForIdentifier("key to identify message") {

Using subscript

if let message = appGroup["key to identify message"] as? String { .. }


  • Tests
  • WatchKit (WatchConnectivity/WCSession…)
  • Carthage: let me know if carthage work and I will add the badges and installation instruction


I am more than happy to accept external contributions to the project in the form of feedback, bug reports and even better pull requests.

Implement WatchKit features and I will add you to the project (I have no need and time to do it now)


Using CocoaPods

CocoaPods is a centralized dependency manager for
Objective-C and Swift. Go here
to learn more.

  1. Add the project to your Podfile.

    pod 'ApplicationGroupKit'
  2. Run pod install and open the .xcworkspace file to launch Xcode.

Latest podspec

    "name": "ApplicationGroupKit",
    "version": "0.3.0",
    "summary": "Share information between your applications and extensions",
    "homepage": "",
    "license": "MIT",
    "authors": {
        "phimage": "[email protected]"
    "platforms": {
        "ios": "8.0",
        "osx": "10.9",
        "tvos": "9.0"
    "source": {
        "git": "",
        "tag": "0.3.0"
    "default_subspecs": "Core",
    "dependencies": {
        "Prephirences": []
    "pushed_with_swift_version": "3.0",
    "subspecs": [
            "name": "Core",
            "source_files": "Sources/*.swift"

Pin It on Pinterest

Share This