adobe / aepsdk-core-ios

Adobe Experience Platform Mobile Core SDK in Swift
Apache License 2.0
25 stars 41 forks source link

Adobe Experience Platform Core SDK

CocoaPods CocoaPods CocoaPods CocoaPods CocoaPods

SPM CircleCI Code Coverage

About this project

The AEPCore, AEPServices, and AEPIdentity extensions represent the foundation of the Adobe Experience Platform SDK - every app using the SDK must include them. These modules contain a common set of functionality and services which are required by all SDK extensions.

AEPCore contains implementation of the Event Hub. The Event Hub is the mechanism used for delivering events between the app and the SDK. The Event Hub is also used for sharing data between extensions.

AEPServices provides several reusable implementations needed for platform support, including networking, disk access, and database management.

AEPIdentity implements the integration with Adobe Experience Platform Identity services.

AEPSignal represents the Adobe Experience Platform SDK's Signal extension that allows marketers to send a "signal" to their apps to send data to external destinations or to open URLs.

AEPLifecycle represents the Adobe Experience Platform SDK's Lifecycle extension that helps collect application Lifecycle metrics such as, application install or upgrade information, application launch and session information, device information, and any additional context data provided by the application developer.

Requirements

Installation

These are currently the supported installation options:

CocoaPods

# Podfile
use_frameworks!

# for app development, include all the following pods
target 'YOUR_TARGET_NAME' do
    pod 'AEPCore'
    pod 'AEPLifecycle'
    pod 'AEPIdentity'
    pod 'AEPSignal'
end

# for extension development, include AEPCore and its dependencies
target 'YOUR_TARGET_NAME' do
    pod 'AEPCore'
end

Replace YOUR_TARGET_NAME and then, in the Podfile directory, type:

$ pod install

Swift Package Manager

To add the AEPCore Package to your application, from the Xcode menu select:

File > Swift Packages > Add Package Dependency...

Enter the URL for the AEPCore package repository: https://github.com/adobe/aepsdk-core-ios.git.

When prompted, input a specific version or a range of versions, and choose all the AEP* libraries.

Alternatively, if your project has a Package.swift file, you can add AEPCore directly to your dependencies:

dependencies: [
    .package(url: "https://github.com/adobe/aepsdk-core-ios.git", .upToNextMajor(from: "5.0.0"))
]

Project Reference

Include AEPCore.xcodeproj in the targeted Xcode project and link all necessary libraries to your app target.

Binaries

Run make archive or make archive-ios from the root directory to generate .xcframeworks for each module. The make archive command will generate XCFrameworks which support iOS and tvOS, while make archive-ios will generate XCFrameworks for iOS alone. Once complete, the XCFrameworks can be found in the build folder. Drag and drop all .xcframeworks to your app target in Xcode.

Documentation

Additional documentation for usage and SDK architecture can be found under the Documentation directory.

Related Projects

Project Latest Release Github
Rules Engine CocoaPods SPM Link
Profile CocoaPods SPM Link
Adobe Experience Platform Edge Network CocoaPods SPM Link
Identity for Edge Network CocoaPods SPM Link
Consent for Edge Network CocoaPods SPM Link
Edge Bridge CocoaPods SPM Link
Adobe Experience Platform Assurance CocoaPods SPM Link
Places Service CocoaPods SPM Link
Adobe Analytics CocoaPods SPM Link
Adobe Streaming Media for Edge Network CocoaPods SPM Link
Adobe Analytics - Media Analytics for Audio & Video CocoaPods SPM Link
Adobe Audience Manager CocoaPods SPM Link
Adobe Journey Optimizer CocoaPods SPM Link
Adobe Journey Optimizer - Decisioning CocoaPods SPM Link
Adobe Target CocoaPods SPM Link
Adobe Campaign Standard CocoaPods SPM Link
Adobe Campaign Classic CocoaPods SPM Link
AEP SDK Sample App for iOS - Link

Contributing

Contributions are welcomed! Read the Contributing Guide for more information.

Licensing

This project is licensed under the Apache V2 License. See LICENSE for more information.