Latest 4.0.4
Homepage https://github.com/robbiehanson/XMPPFramework
License BSD
Platforms osx 10.9, ios 8.0, tvos 9.0, requires ARC
Dependencies CocoaLumberjack, CocoaAsyncSocket, KissXML, libidn
Frameworks CoreData, SystemConfiguration, CoreLocation
Authors

XMPPFramework

XMPPFramework

Build Status Version Status Carthage compatible Platform License (3-Clause BSD)

An XMPP Framework in Objective-C for the Mac and iOS development community.

Abstract

XMPPFramework provides a core implementation of RFC-3920 (the XMPP standard), along with the tools needed to read & write XML. It comes with multiple popular extensions (XEP’s), all built atop a modular architecture, allowing you to plug-in any code needed for the job. Additionally the framework is massively parallel and thread-safe. Structured using GCD, this framework performs well regardless of whether it’s being run on an old iPhone, or on a 12-core Mac Pro. (And it won’t block the main thread… at all)

Install

The minimum deployment target is iOS 8.0 / macOS 10.9 / tvOS 9.0.

CocoaPods

The easiest way to install XMPPFramework is using CocoaPods. Remember to add to the top of your Podfile the use_frameworks! line (even if you are not using swift):

This will install the whole framework with all the available extensions:

use_frameworks!
pod 'XMPPFramework', '~> 3.7.0'

After pod install open the .xcworkspace and import:

import XMPPFramework      // swift
@import XMPPFramework;   //objective-c

Carthage

To integrate XMPPFramework into your Xcode project using Carthage, specify it in your Cartfile:

# ⚠️ Carthage support is currently experimental ⚠️
# For now, use the master branch until a Carthage-compatible
# tagged release is available.

github "robbiehanson/XMPPFramework" "master"

Run carthage to build the framework and drag the built XMPPFramework.framework into your Xcode project.

Contributing

Pull requests are welcome! If you are planning a larger feature, please open an issue first for community input. Please use modern Objective-C syntax, including nullability annotations and generics. Here’s some tips to make the process go more smoothly:

  • Make sure to add any new files to the iOS, macOS, and tvOS targets for XMPPFramework.framework in XMPPFramework.xcodeproj, and ensure any applicable header files are set to public.
  • Please try to write your code in a way that’s testable. Using XMPPMockStream makes testing pretty easy. Look at examples in Testing-Shared for inspiration.
  • You will need both CocoaPods and Carthage to work on tests. Run carthage checkout in the root of the repository, and bundle install && bundle exec pod install in the Testing-iOS and Testing-macOS folders.
  • Create your test files to the Testing-Shared folder, and then add them to the iOS, macOS, and tvOS targets in Testing-Carthage/XMPPFrameworkTests.xcodeproj, Testing-macOS/XMPPFrameworkTests.xcworkspace and Testing-iOS/XMPPFrameworkTests.xcworkspace.

Looking to help but don’t know where to start?

  • A large portion of the framework is not yet annotated for nullability and generics.
  • Adding more test coverage is always appreciated
  • Modernizing the old Examples projects

Security Issues

If you find a security problem, please do not open a public issue on GitHub. Instead, email one of the maintainers directly:

Wiki:

For more info please take a look at the wiki.

Can’t find the answer to your question in any of the wiki articles? Try the mailing list.

Love the project? Wanna buy me a ☕️? (or a 🍺 😀):

donation-bitcoin
donation-paypal

Latest podspec

{
    "name": "SLXMPPFramework",
    "version": "4.0.4",
    "platforms": {
        "osx": "10.9",
        "ios": "8.0",
        "tvos": "9.0"
    },
    "license": {
        "type": "BSD",
        "file": "copying.txt"
    },
    "summary": "An XMPP Framework in Objective-C for the Mac / iOS development community.",
    "homepage": "https://github.com/robbiehanson/XMPPFramework",
    "authors": {
        "Robbie Hanson": "[email protected]"
    },
    "source": {
        "git": "https://github.com/SomnusLee1988/XMPPFramework.git",
        "tag": "4.0.4"
    },
    "resources": [
        "Extensions/**/*.{xcdatamodel,xcdatamodeld}"
    ],
    "description": "XMPPFramework provides a core implementation of RFC-3920 (the xmpp standard), along withn  the tools needed to read & write XML. It comes with multiple popular extensions (XEPs),n  all built atop a modular architecture, allowing you to plug-in any code needed for the job.n  Additionally the framework is massively parallel and thread-safe. Structured using GCD,n  this framework performs    well regardless of whether it's being run on an old iPhone, orn  on a 12-core Mac Pro. (And it won't block the main thread... at all).",
    "requires_arc": true,
    "source_files": [
        "Core/**/*.{h,m}",
        "Authentication/**/*.{h,m}",
        "Categories/**/*.{h,m}",
        "Utilities/**/*.{h,m}",
        "Extensions/**/*.{h,m}"
    ],
    "ios": {
        "exclude_files": "Extensions/SystemInputActivityMonitor/**/*.{h,m}"
    },
    "libraries": [
        "xml2",
        "resolv"
    ],
    "frameworks": [
        "CoreData",
        "SystemConfiguration",
        "CoreLocation"
    ],
    "xcconfig": {
        "HEADER_SEARCH_PATHS": "$(SDKROOT)/usr/include/libxml2 $(SDKROOT)/usr/include/libresolv"
    },
    "dependencies": {
        "CocoaLumberjack": [],
        "CocoaAsyncSocket": [
            "~> 7.6.0"
        ],
        "KissXML": [
            "~> 5.2.0"
        ],
        "libidn": [
            "~> 1.33.0"
        ]
    },
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This