From 6556fd169295a671b477b9352989741fc2e87974 Mon Sep 17 00:00:00 2001 From: Chava Friedler Date: Thu, 18 Jun 2020 17:13:46 -0400 Subject: [PATCH] Prepare for release 3.2.0 --- .gitignore | 7 +- CHANGELOG.md | 19 + CarthageExample/Cartfile | 3 + CarthageExample/Cartfile.resolved | 3 + .../CarthageExample.xcodeproj/project.pbxproj | 402 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 0 CarthageExample/CarthageExample/AppDelegate.h | 7 + CarthageExample/CarthageExample/AppDelegate.m | 41 ++ .../AppIcon.appiconset/Contents.json | 98 +++++ .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../Base.lproj/Main.storyboard | 96 +++++ CarthageExample/CarthageExample/Info.plist | 64 +++ .../CarthageExample/SceneDelegate.h | 7 + .../CarthageExample/SceneDelegate.m | 50 +++ .../CarthageExample/ViewController.h | 6 + .../CarthageExample/ViewController.m | 32 ++ CarthageExample/CarthageExample/main.m | 11 + CarthageExample/input.xcfilelist | 4 + CarthageExample/output.xcfilelist | 4 + {Example => CocoapodsExample}/Podfile | 3 + .../Segment-Appboy.xcodeproj/project.pbxproj | 0 .../contents.xcworkspacedata | 0 .../xcschemes/Segment-Appboy-Example.xcscheme | 0 .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../AppIcon.appiconset/Contents.json | 0 .../Contents.cold.json | 0 .../LaunchImage.launchimage/Contents.json | 0 .../LaunchImage.launchimage/Default-1.png | Bin .../LaunchImage.launchimage/Default-2-1-1.png | Bin .../LaunchImage.launchimage/Default-2-1.png | Bin .../LaunchImage.launchimage/Default-2.png | Bin .../Default-568h@2x.png | Bin .../LaunchImage.launchimage/Default.png | Bin .../Default@2x-1-1-1-1-1.png | Bin .../Default@2x-1-1-1-1.png | Bin .../Default@2x-1-1-1.png | Bin .../Default@2x-1-1.png | Bin .../LaunchImage.launchimage/Default@2x-1.png | Bin .../LaunchImage.launchimage/Default@2x.png | Bin .../Segment-Appboy/LaunchScreen.xib | 0 .../Segment-Appboy/Main.storyboard | 81 +++- .../Segment-Appboy/SEGAppDelegate.h | 0 .../Segment-Appboy/SEGAppDelegate.m | 0 .../Segment-Appboy/SEGViewController.h | 2 + .../Segment-Appboy/SEGViewController.m | 32 ++ .../Segment-Appboy/Segment-Appboy-Info.plist | 0 .../Segment-Appboy/Segment-Appboy-Prefix.pch | 0 .../Segment-Appboy/en.lproj/InfoPlist.strings | 0 .../Segment-Appboy/main.m | 0 .../Segment-Appboy_Example.entitlements | 0 .../Tests/SEGAppboyIntegrationFactoryTest.m | 0 .../Tests/SEGAppboyIntegrationTest.m | 0 .../Tests/Tests-Info.plist | 0 .../Tests/Tests-Prefix.pch | 0 .../Tests/en.lproj/InfoPlist.strings | 0 .../fastlane/Appfile | 0 .../fastlane/Fastfile | 0 .../fastlane/Matchfile | 0 Example/fastlane/README.md | 33 -- Example/fastlane/report.xml | 23 - Makefile | 6 +- README.md | 24 +- Segment-Appboy.podspec | 14 +- 66 files changed, 1027 insertions(+), 91 deletions(-) create mode 100644 CarthageExample/Cartfile create mode 100644 CarthageExample/Cartfile.resolved create mode 100644 CarthageExample/CarthageExample.xcodeproj/project.pbxproj create mode 100644 CarthageExample/CarthageExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename {Example/Segment-Appboy.xcworkspace => CarthageExample/CarthageExample.xcodeproj/project.xcworkspace}/xcshareddata/IDEWorkspaceChecks.plist (100%) create mode 100644 CarthageExample/CarthageExample/AppDelegate.h create mode 100644 CarthageExample/CarthageExample/AppDelegate.m create mode 100644 CarthageExample/CarthageExample/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 CarthageExample/CarthageExample/Assets.xcassets/Contents.json create mode 100644 CarthageExample/CarthageExample/Base.lproj/LaunchScreen.storyboard create mode 100644 CarthageExample/CarthageExample/Base.lproj/Main.storyboard create mode 100644 CarthageExample/CarthageExample/Info.plist create mode 100644 CarthageExample/CarthageExample/SceneDelegate.h create mode 100644 CarthageExample/CarthageExample/SceneDelegate.m create mode 100644 CarthageExample/CarthageExample/ViewController.h create mode 100644 CarthageExample/CarthageExample/ViewController.m create mode 100644 CarthageExample/CarthageExample/main.m create mode 100644 CarthageExample/input.xcfilelist create mode 100644 CarthageExample/output.xcfilelist rename {Example => CocoapodsExample}/Podfile (89%) rename {Example => CocoapodsExample}/Segment-Appboy.xcodeproj/project.pbxproj (100%) rename {Example => CocoapodsExample}/Segment-Appboy.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) rename {Example => CocoapodsExample}/Segment-Appboy.xcodeproj/xcshareddata/xcschemes/Segment-Appboy-Example.xcscheme (100%) rename {Example => CocoapodsExample}/Segment-Appboy.xcworkspace/contents.xcworkspacedata (100%) create mode 100644 CocoapodsExample/Segment-Appboy.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Contents.cold.json (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Contents.json (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-1.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2-1-1.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2-1.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1-1-1.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1-1.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x.png (100%) rename {Example => CocoapodsExample}/Segment-Appboy/LaunchScreen.xib (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Main.storyboard (73%) rename {Example => CocoapodsExample}/Segment-Appboy/SEGAppDelegate.h (100%) rename {Example => CocoapodsExample}/Segment-Appboy/SEGAppDelegate.m (100%) rename {Example => CocoapodsExample}/Segment-Appboy/SEGViewController.h (74%) rename {Example => CocoapodsExample}/Segment-Appboy/SEGViewController.m (78%) rename {Example => CocoapodsExample}/Segment-Appboy/Segment-Appboy-Info.plist (100%) rename {Example => CocoapodsExample}/Segment-Appboy/Segment-Appboy-Prefix.pch (100%) rename {Example => CocoapodsExample}/Segment-Appboy/en.lproj/InfoPlist.strings (100%) rename {Example => CocoapodsExample}/Segment-Appboy/main.m (100%) rename {Example => CocoapodsExample}/Segment-Appboy_Example.entitlements (100%) rename {Example => CocoapodsExample}/Tests/SEGAppboyIntegrationFactoryTest.m (100%) rename {Example => CocoapodsExample}/Tests/SEGAppboyIntegrationTest.m (100%) rename {Example => CocoapodsExample}/Tests/Tests-Info.plist (100%) rename {Example => CocoapodsExample}/Tests/Tests-Prefix.pch (100%) rename {Example => CocoapodsExample}/Tests/en.lproj/InfoPlist.strings (100%) rename {Example => CocoapodsExample}/fastlane/Appfile (100%) rename {Example => CocoapodsExample}/fastlane/Fastfile (100%) rename {Example => CocoapodsExample}/fastlane/Matchfile (100%) delete mode 100644 Example/fastlane/README.md delete mode 100644 Example/fastlane/report.xml diff --git a/.gitignore b/.gitignore index a915eb5..ea70397 100644 --- a/.gitignore +++ b/.gitignore @@ -29,9 +29,8 @@ DerivedData *~ # Cocoapods -Example/Podfile.lock +CocoapodsExample/Podfile.lock -Carthage # We recommend against adding the Pods directory to your .gitignore. However # you should judge for yourself, the pros and cons are mentioned at: # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control @@ -40,3 +39,7 @@ Carthage # `pod install` in .travis.yml # Pods/ + +# Carthage +Carthage +Segment_Appboy.framework.zip diff --git a/CHANGELOG.md b/CHANGELOG.md index f20a2ef..9917b45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +## 3.2.0 + +#### Added +- Added Carthage support + +To install the Braze integration through Carthage, add the following lines to your `Cartfile`: +``` +github "segmentio/analytics-ios" +github "appboy/appboy-segment-ios" +github "appboy/appboy-ios-sdk" +``` + +And run: +```sh +carthage update +``` + +Follow the standard procedure to add the frameworks built/retrieved by Carthage to your project (see [Adding frameworks to an application](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application)) + ## 3.1.0 #### Added diff --git a/CarthageExample/Cartfile b/CarthageExample/Cartfile new file mode 100644 index 0000000..efc016e --- /dev/null +++ b/CarthageExample/Cartfile @@ -0,0 +1,3 @@ +github "segmentio/analytics-ios" +github "appboy/appboy-segment-ios" +github "appboy/appboy-ios-sdk" diff --git a/CarthageExample/Cartfile.resolved b/CarthageExample/Cartfile.resolved new file mode 100644 index 0000000..57074d2 --- /dev/null +++ b/CarthageExample/Cartfile.resolved @@ -0,0 +1,3 @@ +github "appboy/appboy-ios-sdk" "3.23.0" +github "appboy/appboy-segment-ios" "3.1.0" +github "segmentio/analytics-ios" "3.8.2" diff --git a/CarthageExample/CarthageExample.xcodeproj/project.pbxproj b/CarthageExample/CarthageExample.xcodeproj/project.pbxproj new file mode 100644 index 0000000..923f482 --- /dev/null +++ b/CarthageExample/CarthageExample.xcodeproj/project.pbxproj @@ -0,0 +1,402 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + 701199942486D41400946DAA /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 701199932486D41400946DAA /* AppDelegate.m */; }; + 701199972486D41400946DAA /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 701199962486D41400946DAA /* SceneDelegate.m */; }; + 7011999A2486D41400946DAA /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 701199992486D41400946DAA /* ViewController.m */; }; + 7011999D2486D41400946DAA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7011999B2486D41400946DAA /* Main.storyboard */; }; + 7011999F2486D41500946DAA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7011999E2486D41500946DAA /* Assets.xcassets */; }; + 701199A22486D41500946DAA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 701199A02486D41500946DAA /* LaunchScreen.storyboard */; }; + 701199A52486D41500946DAA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 701199A42486D41500946DAA /* main.m */; }; + 701199B02486D53E00946DAA /* Analytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 701199AC2486D53E00946DAA /* Analytics.framework */; }; + 701199B22486D53E00946DAA /* Segment_Appboy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 701199AD2486D53E00946DAA /* Segment_Appboy.framework */; }; + 701199B42486D53F00946DAA /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 701199AE2486D53E00946DAA /* SDWebImage.framework */; }; + 701199B62486D53F00946DAA /* Appboy_iOS_SDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 701199AF2486D53E00946DAA /* Appboy_iOS_SDK.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 7011998F2486D41400946DAA /* CarthageExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CarthageExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 701199922486D41400946DAA /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 701199932486D41400946DAA /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 701199952486D41400946DAA /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = ""; }; + 701199962486D41400946DAA /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = ""; }; + 701199982486D41400946DAA /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 701199992486D41400946DAA /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + 7011999C2486D41400946DAA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 7011999E2486D41500946DAA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 701199A12486D41500946DAA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 701199A32486D41500946DAA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 701199A42486D41500946DAA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 701199AC2486D53E00946DAA /* Analytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Analytics.framework; path = Carthage/Build/iOS/Analytics.framework; sourceTree = ""; }; + 701199AD2486D53E00946DAA /* Segment_Appboy.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Segment_Appboy.framework; path = Carthage/Build/iOS/Segment_Appboy.framework; sourceTree = ""; }; + 701199AE2486D53E00946DAA /* SDWebImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDWebImage.framework; path = Carthage/Build/iOS/SDWebImage.framework; sourceTree = ""; }; + 701199AF2486D53E00946DAA /* Appboy_iOS_SDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Appboy_iOS_SDK.framework; path = Carthage/Build/iOS/Appboy_iOS_SDK.framework; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 7011998C2486D41400946DAA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 701199B02486D53E00946DAA /* Analytics.framework in Frameworks */, + 701199B42486D53F00946DAA /* SDWebImage.framework in Frameworks */, + 701199B62486D53F00946DAA /* Appboy_iOS_SDK.framework in Frameworks */, + 701199B22486D53E00946DAA /* Segment_Appboy.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 701199862486D41400946DAA = { + isa = PBXGroup; + children = ( + 701199912486D41400946DAA /* CarthageExample */, + 701199902486D41400946DAA /* Products */, + 701199AB2486D53E00946DAA /* Frameworks */, + ); + sourceTree = ""; + }; + 701199902486D41400946DAA /* Products */ = { + isa = PBXGroup; + children = ( + 7011998F2486D41400946DAA /* CarthageExample.app */, + ); + name = Products; + sourceTree = ""; + }; + 701199912486D41400946DAA /* CarthageExample */ = { + isa = PBXGroup; + children = ( + 701199922486D41400946DAA /* AppDelegate.h */, + 701199932486D41400946DAA /* AppDelegate.m */, + 701199952486D41400946DAA /* SceneDelegate.h */, + 701199962486D41400946DAA /* SceneDelegate.m */, + 701199982486D41400946DAA /* ViewController.h */, + 701199992486D41400946DAA /* ViewController.m */, + 7011999B2486D41400946DAA /* Main.storyboard */, + 7011999E2486D41500946DAA /* Assets.xcassets */, + 701199A02486D41500946DAA /* LaunchScreen.storyboard */, + 701199A32486D41500946DAA /* Info.plist */, + 701199A42486D41500946DAA /* main.m */, + ); + path = CarthageExample; + sourceTree = ""; + }; + 701199AB2486D53E00946DAA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 701199AC2486D53E00946DAA /* Analytics.framework */, + 701199AF2486D53E00946DAA /* Appboy_iOS_SDK.framework */, + 701199AE2486D53E00946DAA /* SDWebImage.framework */, + 701199AD2486D53E00946DAA /* Segment_Appboy.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7011998E2486D41400946DAA /* CarthageExample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 701199A82486D41500946DAA /* Build configuration list for PBXNativeTarget "CarthageExample" */; + buildPhases = ( + 7011998B2486D41400946DAA /* Sources */, + 7011998C2486D41400946DAA /* Frameworks */, + 7011998D2486D41400946DAA /* Resources */, + 701199B92486D56000946DAA /* Carthage */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CarthageExample; + productName = CarthageExample; + productReference = 7011998F2486D41400946DAA /* CarthageExample.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 701199872486D41400946DAA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1150; + ORGANIZATIONNAME = Appboy; + TargetAttributes = { + 7011998E2486D41400946DAA = { + CreatedOnToolsVersion = 11.5; + }; + }; + }; + buildConfigurationList = 7011998A2486D41400946DAA /* Build configuration list for PBXProject "CarthageExample" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 701199862486D41400946DAA; + productRefGroup = 701199902486D41400946DAA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7011998E2486D41400946DAA /* CarthageExample */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7011998D2486D41400946DAA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 701199A22486D41500946DAA /* LaunchScreen.storyboard in Resources */, + 7011999F2486D41500946DAA /* Assets.xcassets in Resources */, + 7011999D2486D41400946DAA /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 701199B92486D56000946DAA /* Carthage */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "$(SRCROOT)/input.xcfilelist", + ); + inputPaths = ( + ); + name = Carthage; + outputFileListPaths = ( + "$(SRCROOT)/output.xcfilelist", + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/carthage copy-frameworks\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7011998B2486D41400946DAA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7011999A2486D41400946DAA /* ViewController.m in Sources */, + 701199942486D41400946DAA /* AppDelegate.m in Sources */, + 701199A52486D41500946DAA /* main.m in Sources */, + 701199972486D41400946DAA /* SceneDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 7011999B2486D41400946DAA /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 7011999C2486D41400946DAA /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 701199A02486D41500946DAA /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 701199A12486D41500946DAA /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 701199A62486D41500946DAA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 701199A72486D41500946DAA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 701199A92486D41500946DAA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5GLZKGNWQ3; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = CarthageExample/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.appboy.CarthageExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 701199AA2486D41500946DAA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5GLZKGNWQ3; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = CarthageExample/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.appboy.CarthageExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7011998A2486D41400946DAA /* Build configuration list for PBXProject "CarthageExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 701199A62486D41500946DAA /* Debug */, + 701199A72486D41500946DAA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 701199A82486D41500946DAA /* Build configuration list for PBXNativeTarget "CarthageExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 701199A92486D41500946DAA /* Debug */, + 701199AA2486D41500946DAA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 701199872486D41400946DAA /* Project object */; +} diff --git a/CarthageExample/CarthageExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/CarthageExample/CarthageExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..ef35de3 --- /dev/null +++ b/CarthageExample/CarthageExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Example/Segment-Appboy.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/CarthageExample/CarthageExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from Example/Segment-Appboy.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to CarthageExample/CarthageExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/CarthageExample/CarthageExample/AppDelegate.h b/CarthageExample/CarthageExample/AppDelegate.h new file mode 100644 index 0000000..d79858b --- /dev/null +++ b/CarthageExample/CarthageExample/AppDelegate.h @@ -0,0 +1,7 @@ +#import + +@interface AppDelegate : UIResponder + + +@end + diff --git a/CarthageExample/CarthageExample/AppDelegate.m b/CarthageExample/CarthageExample/AppDelegate.m new file mode 100644 index 0000000..d4e5f85 --- /dev/null +++ b/CarthageExample/CarthageExample/AppDelegate.m @@ -0,0 +1,41 @@ +#import "AppDelegate.h" +#import + +@interface AppDelegate () + +@end + +@implementation AppDelegate + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + + SEGAnalyticsConfiguration *config = [SEGAnalyticsConfiguration configurationWithWriteKey:@"xNAmGpyITen4FEZg9C2ES6r2iYm8Ommk"]; + [config use:[SEGAppboyIntegrationFactory instance]]; + + [[SEGAppboyIntegrationFactory instance] saveLaunchOptions:launchOptions]; + [SEGAnalytics setupWithConfiguration:config]; + [SEGAnalytics debug:YES]; + + return YES; +} + + +#pragma mark - UISceneSession lifecycle + + +- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; +} + + +- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. +} + + +@end diff --git a/CarthageExample/CarthageExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/CarthageExample/CarthageExample/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9221b9b --- /dev/null +++ b/CarthageExample/CarthageExample/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CarthageExample/CarthageExample/Assets.xcassets/Contents.json b/CarthageExample/CarthageExample/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/CarthageExample/CarthageExample/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CarthageExample/CarthageExample/Base.lproj/LaunchScreen.storyboard b/CarthageExample/CarthageExample/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/CarthageExample/CarthageExample/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CarthageExample/CarthageExample/Base.lproj/Main.storyboard b/CarthageExample/CarthageExample/Base.lproj/Main.storyboard new file mode 100644 index 0000000..3e93af4 --- /dev/null +++ b/CarthageExample/CarthageExample/Base.lproj/Main.storyboard @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CarthageExample/CarthageExample/Info.plist b/CarthageExample/CarthageExample/Info.plist new file mode 100644 index 0000000..7b6037c --- /dev/null +++ b/CarthageExample/CarthageExample/Info.plist @@ -0,0 +1,64 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + SceneDelegate + UISceneStoryboardFile + Main + + + + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/CarthageExample/CarthageExample/SceneDelegate.h b/CarthageExample/CarthageExample/SceneDelegate.h new file mode 100644 index 0000000..9d3a8ba --- /dev/null +++ b/CarthageExample/CarthageExample/SceneDelegate.h @@ -0,0 +1,7 @@ +#import + +@interface SceneDelegate : UIResponder + +@property (strong, nonatomic) UIWindow * window; + +@end diff --git a/CarthageExample/CarthageExample/SceneDelegate.m b/CarthageExample/CarthageExample/SceneDelegate.m new file mode 100644 index 0000000..5183a76 --- /dev/null +++ b/CarthageExample/CarthageExample/SceneDelegate.m @@ -0,0 +1,50 @@ +#import "SceneDelegate.h" + +@interface SceneDelegate () + +@end + +@implementation SceneDelegate + + +- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). +} + + +- (void)sceneDidDisconnect:(UIScene *)scene { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). +} + + +- (void)sceneDidBecomeActive:(UIScene *)scene { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. +} + + +- (void)sceneWillResignActive:(UIScene *)scene { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). +} + + +- (void)sceneWillEnterForeground:(UIScene *)scene { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. +} + + +- (void)sceneDidEnterBackground:(UIScene *)scene { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. +} + + +@end diff --git a/CarthageExample/CarthageExample/ViewController.h b/CarthageExample/CarthageExample/ViewController.h new file mode 100644 index 0000000..33fce24 --- /dev/null +++ b/CarthageExample/CarthageExample/ViewController.h @@ -0,0 +1,6 @@ +#import + +@interface ViewController : UIViewController + + +@end diff --git a/CarthageExample/CarthageExample/ViewController.m b/CarthageExample/CarthageExample/ViewController.m new file mode 100644 index 0000000..3f46030 --- /dev/null +++ b/CarthageExample/CarthageExample/ViewController.m @@ -0,0 +1,32 @@ +#import +#import "ViewController.h" + +@interface ViewController () +@property (weak, nonatomic) IBOutlet UITextField *userIdTextField; +@property (weak, nonatomic) IBOutlet UITextField *customEventTextField; +@property (weak, nonatomic) IBOutlet UITextField *propertyKeyTextField; +@property (weak, nonatomic) IBOutlet UITextField *propertyValueTextField; + +@end + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. +} + +- (IBAction)identifyButtonPressed:(id)sender { + [[SEGAnalytics sharedAnalytics] identify:self.userIdTextField.text]; +} + +- (IBAction)trackButtonPressed:(id)sender { + [[SEGAnalytics sharedAnalytics] track:self.customEventTextField.text + properties:@{self.propertyKeyTextField.text: self.propertyValueTextField.text}]; +} + +- (IBAction)flushButtonPressed:(id)sender { + [[SEGAnalytics sharedAnalytics] flush]; +} + +@end diff --git a/CarthageExample/CarthageExample/main.m b/CarthageExample/CarthageExample/main.m new file mode 100644 index 0000000..76c8d9f --- /dev/null +++ b/CarthageExample/CarthageExample/main.m @@ -0,0 +1,11 @@ +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + NSString * appDelegateClassName; + @autoreleasepool { + // Setup code that might create autoreleased objects goes here. + appDelegateClassName = NSStringFromClass([AppDelegate class]); + } + return UIApplicationMain(argc, argv, nil, appDelegateClassName); +} diff --git a/CarthageExample/input.xcfilelist b/CarthageExample/input.xcfilelist new file mode 100644 index 0000000..769969b --- /dev/null +++ b/CarthageExample/input.xcfilelist @@ -0,0 +1,4 @@ +$(SRCROOT)/Carthage/Build/iOS/Segment_Appboy.framework +$(SRCROOT)/Carthage/Build/iOS/Analytics.framework +$(SRCROOT)/Carthage/Build/iOS/Appboy_iOS_SDK.framework +$(SRCROOT)/Carthage/Build/iOS/SDWebImage.framework diff --git a/CarthageExample/output.xcfilelist b/CarthageExample/output.xcfilelist new file mode 100644 index 0000000..639eade --- /dev/null +++ b/CarthageExample/output.xcfilelist @@ -0,0 +1,4 @@ +$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Segment_Appboy.framework +$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Analytics.framework +$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Appboy_iOS_SDK.framework +$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SDWebImage.framework \ No newline at end of file diff --git a/Example/Podfile b/CocoapodsExample/Podfile similarity index 89% rename from Example/Podfile rename to CocoapodsExample/Podfile index be54cbf..2e6f9b6 100644 --- a/Example/Podfile +++ b/CocoapodsExample/Podfile @@ -1,3 +1,6 @@ +install! 'cocoapods', + :share_schemes_for_development_pods => true + source 'https://github.com/CocoaPods/Specs.git' use_frameworks! diff --git a/Example/Segment-Appboy.xcodeproj/project.pbxproj b/CocoapodsExample/Segment-Appboy.xcodeproj/project.pbxproj similarity index 100% rename from Example/Segment-Appboy.xcodeproj/project.pbxproj rename to CocoapodsExample/Segment-Appboy.xcodeproj/project.pbxproj diff --git a/Example/Segment-Appboy.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/CocoapodsExample/Segment-Appboy.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Example/Segment-Appboy.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to CocoapodsExample/Segment-Appboy.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/Example/Segment-Appboy.xcodeproj/xcshareddata/xcschemes/Segment-Appboy-Example.xcscheme b/CocoapodsExample/Segment-Appboy.xcodeproj/xcshareddata/xcschemes/Segment-Appboy-Example.xcscheme similarity index 100% rename from Example/Segment-Appboy.xcodeproj/xcshareddata/xcschemes/Segment-Appboy-Example.xcscheme rename to CocoapodsExample/Segment-Appboy.xcodeproj/xcshareddata/xcschemes/Segment-Appboy-Example.xcscheme diff --git a/Example/Segment-Appboy.xcworkspace/contents.xcworkspacedata b/CocoapodsExample/Segment-Appboy.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Example/Segment-Appboy.xcworkspace/contents.xcworkspacedata rename to CocoapodsExample/Segment-Appboy.xcworkspace/contents.xcworkspacedata diff --git a/CocoapodsExample/Segment-Appboy.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/CocoapodsExample/Segment-Appboy.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/CocoapodsExample/Segment-Appboy.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Example/Segment-Appboy/Images.xcassets/AppIcon.appiconset/Contents.json b/CocoapodsExample/Segment-Appboy/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/AppIcon.appiconset/Contents.json rename to CocoapodsExample/Segment-Appboy/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Contents.cold.json b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Contents.cold.json similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Contents.cold.json rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Contents.cold.json diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Contents.json b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Contents.json similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Contents.json rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Contents.json diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-1.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-1.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-1.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-1.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2-1-1.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2-1-1.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2-1-1.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2-1-1.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2-1.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2-1.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2-1.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2-1.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-2.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1-1-1.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1-1-1.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1-1-1.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1-1-1.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1-1.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1-1.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1-1.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1-1.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1-1.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1-1.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x-1.png diff --git a/Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x.png b/CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x.png similarity index 100% rename from Example/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x.png rename to CocoapodsExample/Segment-Appboy/Images.xcassets/LaunchImage.launchimage/Default@2x.png diff --git a/Example/Segment-Appboy/LaunchScreen.xib b/CocoapodsExample/Segment-Appboy/LaunchScreen.xib similarity index 100% rename from Example/Segment-Appboy/LaunchScreen.xib rename to CocoapodsExample/Segment-Appboy/LaunchScreen.xib diff --git a/Example/Segment-Appboy/Main.storyboard b/CocoapodsExample/Segment-Appboy/Main.storyboard similarity index 73% rename from Example/Segment-Appboy/Main.storyboard rename to CocoapodsExample/Segment-Appboy/Main.storyboard index 76a51c2..64be7bd 100644 --- a/Example/Segment-Appboy/Main.storyboard +++ b/CocoapodsExample/Segment-Appboy/Main.storyboard @@ -1,14 +1,28 @@ - - - - + + - + + + + + + + + + + + + + + + + + @@ -22,87 +36,106 @@ - - + - - + - - + - - + + + + + + + + + + + + + @@ -113,9 +146,11 @@ + + @@ -127,14 +162,18 @@ + + + + diff --git a/Example/Segment-Appboy/SEGAppDelegate.h b/CocoapodsExample/Segment-Appboy/SEGAppDelegate.h similarity index 100% rename from Example/Segment-Appboy/SEGAppDelegate.h rename to CocoapodsExample/Segment-Appboy/SEGAppDelegate.h diff --git a/Example/Segment-Appboy/SEGAppDelegate.m b/CocoapodsExample/Segment-Appboy/SEGAppDelegate.m similarity index 100% rename from Example/Segment-Appboy/SEGAppDelegate.m rename to CocoapodsExample/Segment-Appboy/SEGAppDelegate.m diff --git a/Example/Segment-Appboy/SEGViewController.h b/CocoapodsExample/Segment-Appboy/SEGViewController.h similarity index 74% rename from Example/Segment-Appboy/SEGViewController.h rename to CocoapodsExample/Segment-Appboy/SEGViewController.h index 622b198..f919a1f 100644 --- a/Example/Segment-Appboy/SEGViewController.h +++ b/CocoapodsExample/Segment-Appboy/SEGViewController.h @@ -6,6 +6,8 @@ @property IBOutlet UITextField *customEventTextField; @property IBOutlet UITextField *propertyKeyTextField; @property IBOutlet UITextField *propertyValueTextField; +@property (weak, nonatomic) IBOutlet UILabel *unreadContentCardsLabel; +@property (weak, nonatomic) IBOutlet UISegmentedControl *modalOrNavigationControl; - (IBAction)identifyButtonPress:(id)sender; - (IBAction)flushButtonPress:(id)sender; diff --git a/Example/Segment-Appboy/SEGViewController.m b/CocoapodsExample/Segment-Appboy/SEGViewController.m similarity index 78% rename from Example/Segment-Appboy/SEGViewController.m rename to CocoapodsExample/Segment-Appboy/SEGViewController.m index 3ad9365..f35739f 100644 --- a/Example/Segment-Appboy/SEGViewController.m +++ b/CocoapodsExample/Segment-Appboy/SEGViewController.m @@ -2,6 +2,7 @@ #import "SEGAnalytics.h" #import "AppboyKit.h" #import "ABKNewsFeedViewController.h" +#import "ABKContentCardsViewController.h" @interface SEGViewController () @@ -12,6 +13,11 @@ @implementation SEGViewController - (void)viewDidLoad { [super viewDidLoad]; + [self contentCardsUpdated:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(contentCardsUpdated:) + name:ABKContentCardsProcessedNotification + object:nil]; } - (void)didReceiveMemoryWarning @@ -117,4 +123,30 @@ - (IBAction)feedButtonPress:(id)sender { [self presentViewController:newsFeed animated:YES completion:nil]; } } + +- (IBAction)contentCardsButtonPress:(id)sender { + if ([Appboy sharedInstance] != nil) { + if (self.modalOrNavigationControl.selectedSegmentIndex == 0) { + ABKContentCardsViewController *contentCardsVC = [ABKContentCardsViewController new]; + contentCardsVC.contentCardsViewController.navigationItem.title = @"Modal Cards"; + [self.navigationController presentViewController:contentCardsVC animated:YES completion:nil]; + } else { + ABKContentCardsTableViewController *contentCards = [ABKContentCardsTableViewController getNavigationContentCardsViewController]; + contentCards.navigationItem.title = @"Navigation Cards"; + [self.navigationController pushViewController:contentCards animated:YES]; + } + } +} + +- (void)contentCardsUpdated:(NSNotification *)notification { + if ([Appboy sharedInstance] != nil) { + self.unreadContentCardsLabel.text = [NSString stringWithFormat:@"Unread Content Cards: %ld / %ld", + (long)[Appboy sharedInstance].contentCardsController.unviewedContentCardCount, + (long)[Appboy sharedInstance].contentCardsController.contentCardCount]; + [self.view setNeedsDisplay]; + } else { + self.unreadContentCardsLabel.text = [NSString stringWithFormat:@"Unread Content Cards: 0 / 0"]; + } +} + @end diff --git a/Example/Segment-Appboy/Segment-Appboy-Info.plist b/CocoapodsExample/Segment-Appboy/Segment-Appboy-Info.plist similarity index 100% rename from Example/Segment-Appboy/Segment-Appboy-Info.plist rename to CocoapodsExample/Segment-Appboy/Segment-Appboy-Info.plist diff --git a/Example/Segment-Appboy/Segment-Appboy-Prefix.pch b/CocoapodsExample/Segment-Appboy/Segment-Appboy-Prefix.pch similarity index 100% rename from Example/Segment-Appboy/Segment-Appboy-Prefix.pch rename to CocoapodsExample/Segment-Appboy/Segment-Appboy-Prefix.pch diff --git a/Example/Segment-Appboy/en.lproj/InfoPlist.strings b/CocoapodsExample/Segment-Appboy/en.lproj/InfoPlist.strings similarity index 100% rename from Example/Segment-Appboy/en.lproj/InfoPlist.strings rename to CocoapodsExample/Segment-Appboy/en.lproj/InfoPlist.strings diff --git a/Example/Segment-Appboy/main.m b/CocoapodsExample/Segment-Appboy/main.m similarity index 100% rename from Example/Segment-Appboy/main.m rename to CocoapodsExample/Segment-Appboy/main.m diff --git a/Example/Segment-Appboy_Example.entitlements b/CocoapodsExample/Segment-Appboy_Example.entitlements similarity index 100% rename from Example/Segment-Appboy_Example.entitlements rename to CocoapodsExample/Segment-Appboy_Example.entitlements diff --git a/Example/Tests/SEGAppboyIntegrationFactoryTest.m b/CocoapodsExample/Tests/SEGAppboyIntegrationFactoryTest.m similarity index 100% rename from Example/Tests/SEGAppboyIntegrationFactoryTest.m rename to CocoapodsExample/Tests/SEGAppboyIntegrationFactoryTest.m diff --git a/Example/Tests/SEGAppboyIntegrationTest.m b/CocoapodsExample/Tests/SEGAppboyIntegrationTest.m similarity index 100% rename from Example/Tests/SEGAppboyIntegrationTest.m rename to CocoapodsExample/Tests/SEGAppboyIntegrationTest.m diff --git a/Example/Tests/Tests-Info.plist b/CocoapodsExample/Tests/Tests-Info.plist similarity index 100% rename from Example/Tests/Tests-Info.plist rename to CocoapodsExample/Tests/Tests-Info.plist diff --git a/Example/Tests/Tests-Prefix.pch b/CocoapodsExample/Tests/Tests-Prefix.pch similarity index 100% rename from Example/Tests/Tests-Prefix.pch rename to CocoapodsExample/Tests/Tests-Prefix.pch diff --git a/Example/Tests/en.lproj/InfoPlist.strings b/CocoapodsExample/Tests/en.lproj/InfoPlist.strings similarity index 100% rename from Example/Tests/en.lproj/InfoPlist.strings rename to CocoapodsExample/Tests/en.lproj/InfoPlist.strings diff --git a/Example/fastlane/Appfile b/CocoapodsExample/fastlane/Appfile similarity index 100% rename from Example/fastlane/Appfile rename to CocoapodsExample/fastlane/Appfile diff --git a/Example/fastlane/Fastfile b/CocoapodsExample/fastlane/Fastfile similarity index 100% rename from Example/fastlane/Fastfile rename to CocoapodsExample/fastlane/Fastfile diff --git a/Example/fastlane/Matchfile b/CocoapodsExample/fastlane/Matchfile similarity index 100% rename from Example/fastlane/Matchfile rename to CocoapodsExample/fastlane/Matchfile diff --git a/Example/fastlane/README.md b/Example/fastlane/README.md deleted file mode 100644 index 096886b..0000000 --- a/Example/fastlane/README.md +++ /dev/null @@ -1,33 +0,0 @@ -fastlane documentation -================ -# Installation - -Make sure you have the latest version of the Xcode command line tools installed: - -``` -xcode-select --install -``` - -Install _fastlane_ using -``` -[sudo] gem install fastlane -NV -``` -or alternatively using `brew cask install fastlane` - -# Available Actions -### matchFullAccess -``` -fastlane matchFullAccess -``` - -### matchReadOnly -``` -fastlane matchReadOnly -``` - - ----- - -This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. -More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). -The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools). diff --git a/Example/fastlane/report.xml b/Example/fastlane/report.xml deleted file mode 100644 index aeded9d..0000000 --- a/Example/fastlane/report.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Makefile b/Makefile index b8d7fcd..1fc3e3b 100644 --- a/Makefile +++ b/Makefile @@ -3,10 +3,10 @@ XCPRETTY := xcpretty -c && exit ${PIPESTATUS[0]} SDK ?= "iphonesimulator" DESTINATION ?= "platform=iOS Simulator,name=iPhone 5" PROJECT := Segment-Appboy -XC_ARGS := -scheme $(PROJECT)-Example -workspace Example/$(PROJECT).xcworkspace -sdk $(SDK) -destination $(DESTINATION) ONLY_ACTIVE_ARCH=NO +XC_ARGS := -scheme $(PROJECT)-Example -workspace CocoapodsExample/$(PROJECT).xcworkspace -sdk $(SDK) -destination $(DESTINATION) ONLY_ACTIVE_ARCH=NO -install: Example/Podfile Segment-Appboy.podspec - pod install --project-directory=Example +install: CocoapodsExample/Podfile Segment-Appboy.podspec + pod install --project-directory=CocoapodsExample clean: xcodebuild $(XC_ARGS) clean | $(XCPRETTY) diff --git a/README.md b/README.md index b029e25..133e795 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,17 @@ Braze iOS Segment SDK ========== [![Version](https://img.shields.io/cocoapods/v/Segment-Appboy.svg?style=flat)](http://cocoapods.org/pods/Segment-Appboy) +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![License](https://img.shields.io/cocoapods/l/Segment-Appboy.svg?style=flat)](http://cocoapods.org/pods/Segment-Appboy) Braze integration for analytics-ios. ## Installation -Analytics is available through [CocoaPods](http://cocoapods.org). To install -it, simply add the following line to your `Podfile`: +Analytics is available through [CocoaPods](http://cocoapods.org) and [Carthage](https://github.com/Carthage/Carthage). + +### Cocoapods +To install the Braze integration through Cocoapods, simply add the following line to your `Podfile`: ```ruby pod "Segment-Appboy" @@ -23,6 +26,23 @@ If you would like to use the `Appboy-iOS-SDK/Core` subspec instead of the full ` pod "Segment-Appboy/Core" ``` +### Carthage + +To install the Braze integration through Carthage, add the following lines to your `Cartfile`: + +``` +github "segmentio/analytics-ios" +github "appboy/appboy-segment-ios" +github "appboy/appboy-ios-sdk" +``` + +And run: +```sh +carthage update +``` + +Follow the standard procedure to add the frameworks built/retrieved by Carthage to your project (see [Adding frameworks to an application](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application)) + ## Usage After adding the dependency, you must register the integration with our SDK. To do this, import the Braze integration in your AppDelegate: diff --git a/Segment-Appboy.podspec b/Segment-Appboy.podspec index d3cb216..df3d9c6 100644 --- a/Segment-Appboy.podspec +++ b/Segment-Appboy.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "Segment-Appboy" - s.version = "3.1.0" + s.version = "3.2.0" s.summary = "Braze Integration for Segment's analytics-ios library." s.description = <<-DESC @@ -18,31 +18,31 @@ Pod::Spec.new do |s| s.platform = :ios, '9.0' s.requires_arc = true - s.dependency 'Analytics', '~> 3.0' + s.dependency 'Analytics' s.default_subspec = 'Full-SDK' s.subspec 'Full-SDK' do |default| - default.dependency 'Appboy-iOS-SDK', '~>3.22.0' + default.dependency 'Appboy-iOS-SDK', '~>3.24.1' default.source_files = 'Pod/Classes/**/*' end s.subspec 'Core' do |core| - core.dependency 'Appboy-iOS-SDK/Core', '~>3.22.0' + core.dependency 'Appboy-iOS-SDK/Core', '~>3.24.1' core.source_files = 'Pod/Classes/**/*' end s.subspec 'InAppMessage' do |iam| - iam.dependency 'Appboy-iOS-SDK/InAppMessage', '~>3.22.0' + iam.dependency 'Appboy-iOS-SDK/InAppMessage', '~>3.24.1' iam.source_files = 'Pod/Classes/**/*' end s.subspec 'NewsFeed' do |nf| - nf.dependency 'Appboy-iOS-SDK/NewsFeed', '~>3.22.0' + nf.dependency 'Appboy-iOS-SDK/NewsFeed', '~>3.24.1' nf.source_files = 'Pod/Classes/**/*' end s.subspec 'ContentCards' do |cc| - cc.dependency 'Appboy-iOS-SDK/ContentCards', '~>3.22.0' + cc.dependency 'Appboy-iOS-SDK/ContentCards', '~>3.24.1' cc.source_files = 'Pod/Classes/**/*' end