From f11462ce22d2e5c13d4498f836201a59798c4c79 Mon Sep 17 00:00:00 2001 From: Jesse Squires Date: Wed, 19 Jul 2017 16:03:52 -0700 Subject: [PATCH] Dump former MessageKit repo contents (#3) * Dump former MessageKit repo contents * Update MessageKit.podspec --- .codecov.yml | 32 + .gitignore | 46 +- .travis.yml | 57 ++ CHANGELOG.md | 12 + Example/ChatExample.xcodeproj/project.pbxproj | 614 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcschemes/ChatExample.xcscheme | 65 +- .../xcschemes/ChatExampleUITests.xcscheme | 56 ++ Example/Sources/AppDelegate.swift | 30 + .../AppIcon.appiconset/Contents.json | 73 +++ Example/Sources/Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 28 + Example/Sources/Base.lproj/Main.storyboard | 122 ++++ Example/Sources/InboxViewController.swift | 30 + Example/Sources/Info.plist | 57 ++ Example/Sources/SettingsViewController.swift | 30 + Example/Tests/ChatExampleTests.swift | 36 + {MessageKitTests => Example/Tests}/Info.plist | 2 + Example/UITests/ChatExampleUITests.swift | 48 ++ Example/UITests/Info.plist | 24 + MessageKit.podspec | 32 +- MessageKit.xcodeproj/project.pbxproj | 379 ++++------- .../UserInterfaceState.xcuserstate | Bin 14666 -> 0 bytes .../xcschemes/MessageKit.xcscheme | 15 +- .../xcschemes/xcschememanagement.plist | 27 - .../xcschemes/xcschememanagement.plist | 27 - MessageKit/Avatar.swift | 36 - MessageKit/MessageBubble.swift | 26 - MessageKit/MessageData.swift | 33 - MessageKit/MessageKit.h | 19 - MessageKit/MessageType.swift | 23 - MessageKit/MessagesCollectionView.swift | 23 - MessageKit/MessagesDataSource.swift | 27 - MessageKit/MessagesDisplayDataSource.swift | 18 - MessageKit/MessagesViewController.swift | 22 - MessageKit/Sender.swift | 31 - MessageKitTests/MessageKitTests.swift | 36 - README.md | 4 +- {MessageKit => Sources}/Info.plist | 4 +- Sources/MessageKit.h | 23 + Sources/MessageProtocol.swift | 69 ++ Sources/MessagesDataSource.swift | 84 +++ Sources/MessagesViewController.swift | 28 + Tests/Info.plist | 24 + Tests/MessageKitTests.swift | 38 ++ 45 files changed, 1726 insertions(+), 697 deletions(-) create mode 100644 .codecov.yml create mode 100644 .travis.yml create mode 100644 CHANGELOG.md create mode 100644 Example/ChatExample.xcodeproj/project.pbxproj create mode 100644 Example/ChatExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename MessageKit.xcodeproj/xcuserdata/steven.xcuserdatad/xcschemes/MessageKit.xcscheme => Example/ChatExample.xcodeproj/xcshareddata/xcschemes/ChatExample.xcscheme (56%) create mode 100644 Example/ChatExample.xcodeproj/xcshareddata/xcschemes/ChatExampleUITests.xcscheme create mode 100644 Example/Sources/AppDelegate.swift create mode 100644 Example/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Example/Sources/Assets.xcassets/Contents.json create mode 100644 Example/Sources/Base.lproj/LaunchScreen.storyboard create mode 100644 Example/Sources/Base.lproj/Main.storyboard create mode 100644 Example/Sources/InboxViewController.swift create mode 100644 Example/Sources/Info.plist create mode 100644 Example/Sources/SettingsViewController.swift create mode 100644 Example/Tests/ChatExampleTests.swift rename {MessageKitTests => Example/Tests}/Info.plist (92%) create mode 100644 Example/UITests/ChatExampleUITests.swift create mode 100644 Example/UITests/Info.plist delete mode 100644 MessageKit.xcodeproj/project.xcworkspace/xcuserdata/steven.xcuserdatad/UserInterfaceState.xcuserstate rename MessageKit.xcodeproj/{xcuserdata/omar.xcuserdatad => xcshareddata}/xcschemes/MessageKit.xcscheme (88%) delete mode 100644 MessageKit.xcodeproj/xcuserdata/omar.xcuserdatad/xcschemes/xcschememanagement.plist delete mode 100644 MessageKit.xcodeproj/xcuserdata/steven.xcuserdatad/xcschemes/xcschememanagement.plist delete mode 100644 MessageKit/Avatar.swift delete mode 100644 MessageKit/MessageBubble.swift delete mode 100644 MessageKit/MessageData.swift delete mode 100644 MessageKit/MessageKit.h delete mode 100644 MessageKit/MessageType.swift delete mode 100644 MessageKit/MessagesCollectionView.swift delete mode 100644 MessageKit/MessagesDataSource.swift delete mode 100644 MessageKit/MessagesDisplayDataSource.swift delete mode 100644 MessageKit/MessagesViewController.swift delete mode 100644 MessageKit/Sender.swift delete mode 100644 MessageKitTests/MessageKitTests.swift rename {MessageKit => Sources}/Info.plist (90%) create mode 100644 Sources/MessageKit.h create mode 100644 Sources/MessageProtocol.swift create mode 100644 Sources/MessagesDataSource.swift create mode 100644 Sources/MessagesViewController.swift create mode 100644 Tests/Info.plist create mode 100644 Tests/MessageKitTests.swift diff --git a/.codecov.yml b/.codecov.yml new file mode 100644 index 00000000..18f175cb --- /dev/null +++ b/.codecov.yml @@ -0,0 +1,32 @@ +codecov: + branch: develop + +coverage: + precision: 2 + round: nearest + range: "60...100" + ignore: + - Tests/* + +status: + project: + default: + target: auto + threshold: 2.0 + branches: + - master + - develop + + patch: + default: + target: auto + branches: + - master + - develop + +comment: + layout: "header, diff, changes, sunburst, uncovered" + branches: + - master + - develop + behavior: default diff --git a/.gitignore b/.gitignore index d5340449..066a002f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,11 @@ +# OS X +.DS_Store + # Xcode -# -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore ## Build generated build/ -DerivedData/ +DerivedData ## Various settings *.pbxuser @@ -15,53 +16,22 @@ DerivedData/ !default.mode2v3 *.perspectivev3 !default.perspectivev3 -xcuserdata/ +xcuserdata ## Other -*.moved-aside *.xccheckout +*.moved-aside +*.xcuserstate *.xcscmblueprint ## Obj-C/Swift specific *.hmap *.ipa -*.dSYM.zip -*.dSYM - -## Playgrounds -timeline.xctimeline -playground.xcworkspace - -# Swift Package Manager -# -# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. -# Packages/ -# Package.pins -.build/ # CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -# Pods/ +Pods/ # Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. # Carthage/Checkouts Carthage/Build - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/#source-control - -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots -fastlane/test_output diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..a67cae29 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,57 @@ +language: objective-c +osx_image: xcode8.1 + +env: + global: + - LANG=en_US.UTF-8 + + - PROJECT="MessageKit.xcodeproj" + - IOS_SCHEME="MessageKit" + - IOS_SDK=iphonesimulator10.1 + + matrix: + - DESTINATION="OS=8.1,name=iPhone 4s" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="NO" BUILD_EXAMPLE="YES" POD_LINT="YES" RUN_UI_TESTS="NO" + - DESTINATION="OS=8.2,name=iPhone 5" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="NO" BUILD_EXAMPLE="NO" POD_LINT="NO" RUN_UI_TESTS="NO" + - DESTINATION="OS=8.3,name=iPhone 5s" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="NO" BUILD_EXAMPLE="NO" POD_LINT="NO" RUN_UI_TESTS="NO" + - DESTINATION="OS=8.4,name=iPhone 6" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="NO" BUILD_EXAMPLE="NO" POD_LINT="NO" RUN_UI_TESTS="NO" + + - DESTINATION="OS=9.0,name=iPhone 6 Plus" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="YES" POD_LINT="NO" RUN_UI_TESTS="YES" + - DESTINATION="OS=9.1,name=iPhone 6s" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="NO" POD_LINT="NO" RUN_UI_TESTS="NO" + - DESTINATION="OS=9.2,name=iPhone 6s" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="NO" POD_LINT="NO" RUN_UI_TESTS="NO" + - DESTINATION="OS=9.3,name=iPad Pro" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="NO" POD_LINT="NO" RUN_UI_TESTS="NO" + + - DESTINATION="OS=10.0,name=iPhone 6s" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="YES" POD_LINT="NO" RUN_UI_TESTS="YES" + - DESTINATION="OS=10.1,name=iPhone 7" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="NO" POD_LINT="NO" RUN_UI_TESTS="NO" + +script: + +- if [ $POD_LINT == "YES" ]; then + pod lib lint; + fi + + +- if [ $BUILD_EXAMPLE == "YES" ]; then + xcodebuild build analyze -project Example/ChatExample.xcodeproj -scheme ChatExample -sdk "$SDK" -destination "$DESTINATION" ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | xcpretty -c; + fi + + +- if [ $RUN_TESTS == "YES" ]; then + xcodebuild analyze test -project "$PROJECT" -scheme "$SCHEME" -sdk "$SDK" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | xcpretty -c; + else + xcodebuild build analyze -project "$PROJECT" -scheme "$SCHEME" -sdk "$SDK" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | xcpretty -c; + fi + + +- if [ $RUN_UI_TESTS == "YES" ]; then + xcodebuild test -project Example/ChatExample.xcodeproj -scheme ChatExampleUITests -sdk "$SDK" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO | xcpretty -c; + fi + + +# Build for reporting test coverage +- if [ $RUN_TESTS == "YES" ]; then + xcodebuild test -project MessageKit.xcodeproj -scheme MessageKit -destination "platform=iOS Simulator,name=iPhone 7" CODE_SIGNING_REQUIRED=NO; + fi + + +after_success: +- bash <(curl -s https://codecov.io/bash) diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..82e1cdcf --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +# CHANGELOG + +The changelog for `MessageKit`. Also see the [releases](https://github.com/MessageKit/MessageKit/releases) on GitHub. + +-------------------------------------- + +Upcoming release +---------------- + +This release closes the [0.1 milestone](https://github.com/MessageKit/MessageKit/milestone/1?closed=1). + +Initial release. :tada: diff --git a/Example/ChatExample.xcodeproj/project.pbxproj b/Example/ChatExample.xcodeproj/project.pbxproj new file mode 100644 index 00000000..32ff41d7 --- /dev/null +++ b/Example/ChatExample.xcodeproj/project.pbxproj @@ -0,0 +1,614 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 882B5E811CF7D53600B6E160 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 882B5E781CF7D53600B6E160 /* AppDelegate.swift */; }; + 882B5E821CF7D53600B6E160 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 882B5E791CF7D53600B6E160 /* Assets.xcassets */; }; + 882B5E831CF7D53600B6E160 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 882B5E7A1CF7D53600B6E160 /* LaunchScreen.storyboard */; }; + 882B5E841CF7D53600B6E160 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 882B5E7C1CF7D53600B6E160 /* Main.storyboard */; }; + 882B5E851CF7D53600B6E160 /* InboxViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 882B5E7E1CF7D53600B6E160 /* InboxViewController.swift */; }; + 882B5E871CF7D53600B6E160 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 882B5E801CF7D53600B6E160 /* SettingsViewController.swift */; }; + 882B5E901CF7D56000B6E160 /* ChatExampleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 882B5E8E1CF7D56000B6E160 /* ChatExampleUITests.swift */; }; + 882B5E951CF7D56E00B6E160 /* ChatExampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 882B5E931CF7D56E00B6E160 /* ChatExampleTests.swift */; }; + 882B5EA01CF7D8D100B6E160 /* MessageKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 882B5E9D1CF7D8CA00B6E160 /* MessageKit.framework */; }; + 882B5EA11CF7D8D100B6E160 /* MessageKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 882B5E9D1CF7D8CA00B6E160 /* MessageKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 882B5E4A1CF7D4B900B6E160 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 882B5E2B1CF7D4B900B6E160 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 882B5E321CF7D4B900B6E160; + remoteInfo = ChatExample; + }; + 882B5E551CF7D4B900B6E160 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 882B5E2B1CF7D4B900B6E160 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 882B5E321CF7D4B900B6E160; + remoteInfo = ChatExample; + }; + 882B5E9C1CF7D8CA00B6E160 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 882B5E971CF7D8CA00B6E160 /* MessageKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 88916B221CF0DF2F00469F91; + remoteInfo = MessageKit; + }; + 882B5E9E1CF7D8CA00B6E160 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 882B5E971CF7D8CA00B6E160 /* MessageKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 88916B2C1CF0DF2F00469F91; + remoteInfo = MessageKitTests; + }; + 882B5EA21CF7D8D100B6E160 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 882B5E971CF7D8CA00B6E160 /* MessageKit.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 88916B211CF0DF2F00469F91; + remoteInfo = MessageKit; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 882B5EA41CF7D8D100B6E160 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 882B5EA11CF7D8D100B6E160 /* MessageKit.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 882B5E331CF7D4B900B6E160 /* ChatExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ChatExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 882B5E491CF7D4B900B6E160 /* ChatExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChatExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 882B5E541CF7D4B900B6E160 /* ChatExampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChatExampleUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 882B5E781CF7D53600B6E160 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 882B5E791CF7D53600B6E160 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 882B5E7B1CF7D53600B6E160 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 882B5E7D1CF7D53600B6E160 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 882B5E7E1CF7D53600B6E160 /* InboxViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InboxViewController.swift; sourceTree = ""; }; + 882B5E7F1CF7D53600B6E160 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 882B5E801CF7D53600B6E160 /* SettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = ""; }; + 882B5E8E1CF7D56000B6E160 /* ChatExampleUITests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatExampleUITests.swift; sourceTree = ""; }; + 882B5E8F1CF7D56000B6E160 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 882B5E931CF7D56E00B6E160 /* ChatExampleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatExampleTests.swift; sourceTree = ""; }; + 882B5E941CF7D56E00B6E160 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 882B5E971CF7D8CA00B6E160 /* MessageKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MessageKit.xcodeproj; path = ../MessageKit.xcodeproj; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 882B5E301CF7D4B900B6E160 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 882B5EA01CF7D8D100B6E160 /* MessageKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 882B5E461CF7D4B900B6E160 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 882B5E511CF7D4B900B6E160 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 882B5E2A1CF7D4B900B6E160 = { + isa = PBXGroup; + children = ( + 882B5E771CF7D53600B6E160 /* Sources */, + 882B5E921CF7D56D00B6E160 /* Tests */, + 882B5E8D1CF7D56000B6E160 /* UITests */, + 882B5E341CF7D4B900B6E160 /* Products */, + 882B5E971CF7D8CA00B6E160 /* MessageKit.xcodeproj */, + ); + sourceTree = ""; + }; + 882B5E341CF7D4B900B6E160 /* Products */ = { + isa = PBXGroup; + children = ( + 882B5E331CF7D4B900B6E160 /* ChatExample.app */, + 882B5E491CF7D4B900B6E160 /* ChatExampleTests.xctest */, + 882B5E541CF7D4B900B6E160 /* ChatExampleUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 882B5E771CF7D53600B6E160 /* Sources */ = { + isa = PBXGroup; + children = ( + 882B5E781CF7D53600B6E160 /* AppDelegate.swift */, + 882B5E791CF7D53600B6E160 /* Assets.xcassets */, + 882B5E7E1CF7D53600B6E160 /* InboxViewController.swift */, + 882B5E7F1CF7D53600B6E160 /* Info.plist */, + 882B5E7A1CF7D53600B6E160 /* LaunchScreen.storyboard */, + 882B5E7C1CF7D53600B6E160 /* Main.storyboard */, + 882B5E801CF7D53600B6E160 /* SettingsViewController.swift */, + ); + path = Sources; + sourceTree = ""; + }; + 882B5E8D1CF7D56000B6E160 /* UITests */ = { + isa = PBXGroup; + children = ( + 882B5E8E1CF7D56000B6E160 /* ChatExampleUITests.swift */, + 882B5E8F1CF7D56000B6E160 /* Info.plist */, + ); + path = UITests; + sourceTree = ""; + }; + 882B5E921CF7D56D00B6E160 /* Tests */ = { + isa = PBXGroup; + children = ( + 882B5E931CF7D56E00B6E160 /* ChatExampleTests.swift */, + 882B5E941CF7D56E00B6E160 /* Info.plist */, + ); + path = Tests; + sourceTree = ""; + }; + 882B5E981CF7D8CA00B6E160 /* Products */ = { + isa = PBXGroup; + children = ( + 882B5E9D1CF7D8CA00B6E160 /* MessageKit.framework */, + 882B5E9F1CF7D8CA00B6E160 /* MessageKitTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 882B5E321CF7D4B900B6E160 /* ChatExample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 882B5E5D1CF7D4B900B6E160 /* Build configuration list for PBXNativeTarget "ChatExample" */; + buildPhases = ( + 882B5E2F1CF7D4B900B6E160 /* Sources */, + 882B5E301CF7D4B900B6E160 /* Frameworks */, + 882B5E311CF7D4B900B6E160 /* Resources */, + 882B5EA41CF7D8D100B6E160 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 882B5EA31CF7D8D100B6E160 /* PBXTargetDependency */, + ); + name = ChatExample; + productName = ChatExample; + productReference = 882B5E331CF7D4B900B6E160 /* ChatExample.app */; + productType = "com.apple.product-type.application"; + }; + 882B5E481CF7D4B900B6E160 /* ChatExampleTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 882B5E601CF7D4B900B6E160 /* Build configuration list for PBXNativeTarget "ChatExampleTests" */; + buildPhases = ( + 882B5E451CF7D4B900B6E160 /* Sources */, + 882B5E461CF7D4B900B6E160 /* Frameworks */, + 882B5E471CF7D4B900B6E160 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 882B5E4B1CF7D4B900B6E160 /* PBXTargetDependency */, + ); + name = ChatExampleTests; + productName = ChatExampleTests; + productReference = 882B5E491CF7D4B900B6E160 /* ChatExampleTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 882B5E531CF7D4B900B6E160 /* ChatExampleUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 882B5E631CF7D4B900B6E160 /* Build configuration list for PBXNativeTarget "ChatExampleUITests" */; + buildPhases = ( + 882B5E501CF7D4B900B6E160 /* Sources */, + 882B5E511CF7D4B900B6E160 /* Frameworks */, + 882B5E521CF7D4B900B6E160 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 882B5E561CF7D4B900B6E160 /* PBXTargetDependency */, + ); + name = ChatExampleUITests; + productName = ChatExampleUITests; + productReference = 882B5E541CF7D4B900B6E160 /* ChatExampleUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 882B5E2B1CF7D4B900B6E160 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0810; + ORGANIZATIONNAME = "Hexed Bits"; + TargetAttributes = { + 882B5E321CF7D4B900B6E160 = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 0800; + }; + 882B5E481CF7D4B900B6E160 = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 0800; + TestTargetID = 882B5E321CF7D4B900B6E160; + }; + 882B5E531CF7D4B900B6E160 = { + CreatedOnToolsVersion = 7.3.1; + TestTargetID = 882B5E321CF7D4B900B6E160; + }; + }; + }; + buildConfigurationList = 882B5E2E1CF7D4B900B6E160 /* Build configuration list for PBXProject "ChatExample" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 882B5E2A1CF7D4B900B6E160; + productRefGroup = 882B5E341CF7D4B900B6E160 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 882B5E981CF7D8CA00B6E160 /* Products */; + ProjectRef = 882B5E971CF7D8CA00B6E160 /* MessageKit.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 882B5E321CF7D4B900B6E160 /* ChatExample */, + 882B5E481CF7D4B900B6E160 /* ChatExampleTests */, + 882B5E531CF7D4B900B6E160 /* ChatExampleUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 882B5E9D1CF7D8CA00B6E160 /* MessageKit.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = MessageKit.framework; + remoteRef = 882B5E9C1CF7D8CA00B6E160 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 882B5E9F1CF7D8CA00B6E160 /* MessageKitTests.xctest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = MessageKitTests.xctest; + remoteRef = 882B5E9E1CF7D8CA00B6E160 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 882B5E311CF7D4B900B6E160 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 882B5E841CF7D53600B6E160 /* Main.storyboard in Resources */, + 882B5E821CF7D53600B6E160 /* Assets.xcassets in Resources */, + 882B5E831CF7D53600B6E160 /* LaunchScreen.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 882B5E471CF7D4B900B6E160 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 882B5E521CF7D4B900B6E160 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 882B5E2F1CF7D4B900B6E160 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 882B5E871CF7D53600B6E160 /* SettingsViewController.swift in Sources */, + 882B5E811CF7D53600B6E160 /* AppDelegate.swift in Sources */, + 882B5E851CF7D53600B6E160 /* InboxViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 882B5E451CF7D4B900B6E160 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 882B5E951CF7D56E00B6E160 /* ChatExampleTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 882B5E501CF7D4B900B6E160 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 882B5E901CF7D56000B6E160 /* ChatExampleUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 882B5E4B1CF7D4B900B6E160 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 882B5E321CF7D4B900B6E160 /* ChatExample */; + targetProxy = 882B5E4A1CF7D4B900B6E160 /* PBXContainerItemProxy */; + }; + 882B5E561CF7D4B900B6E160 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 882B5E321CF7D4B900B6E160 /* ChatExample */; + targetProxy = 882B5E551CF7D4B900B6E160 /* PBXContainerItemProxy */; + }; + 882B5EA31CF7D8D100B6E160 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MessageKit; + targetProxy = 882B5EA21CF7D8D100B6E160 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 882B5E7A1CF7D53600B6E160 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 882B5E7B1CF7D53600B6E160 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + 882B5E7C1CF7D53600B6E160 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 882B5E7D1CF7D53600B6E160 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 882B5E5B1CF7D4B900B6E160 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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 = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 882B5E5C1CF7D4B900B6E160 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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 = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 882B5E5E1CF7D4B900B6E160 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.hexedbits.ChatExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + 882B5E5F1CF7D4B900B6E160 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.hexedbits.ChatExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; + 882B5E611CF7D4B900B6E160 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + INFOPLIST_FILE = Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.hexedbits.ChatExampleTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ChatExample.app/ChatExample"; + }; + name = Debug; + }; + 882B5E621CF7D4B900B6E160 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + INFOPLIST_FILE = Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.hexedbits.ChatExampleTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ChatExample.app/ChatExample"; + }; + name = Release; + }; + 882B5E641CF7D4B900B6E160 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.hexedbits.ChatExampleUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_TARGET_NAME = ChatExample; + }; + name = Debug; + }; + 882B5E651CF7D4B900B6E160 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.hexedbits.ChatExampleUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; + TEST_TARGET_NAME = ChatExample; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 882B5E2E1CF7D4B900B6E160 /* Build configuration list for PBXProject "ChatExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 882B5E5B1CF7D4B900B6E160 /* Debug */, + 882B5E5C1CF7D4B900B6E160 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 882B5E5D1CF7D4B900B6E160 /* Build configuration list for PBXNativeTarget "ChatExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 882B5E5E1CF7D4B900B6E160 /* Debug */, + 882B5E5F1CF7D4B900B6E160 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 882B5E601CF7D4B900B6E160 /* Build configuration list for PBXNativeTarget "ChatExampleTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 882B5E611CF7D4B900B6E160 /* Debug */, + 882B5E621CF7D4B900B6E160 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 882B5E631CF7D4B900B6E160 /* Build configuration list for PBXNativeTarget "ChatExampleUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 882B5E641CF7D4B900B6E160 /* Debug */, + 882B5E651CF7D4B900B6E160 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 882B5E2B1CF7D4B900B6E160 /* Project object */; +} diff --git a/Example/ChatExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/ChatExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..831fce3b --- /dev/null +++ b/Example/ChatExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/MessageKit.xcodeproj/xcuserdata/steven.xcuserdatad/xcschemes/MessageKit.xcscheme b/Example/ChatExample.xcodeproj/xcshareddata/xcschemes/ChatExample.xcscheme similarity index 56% rename from MessageKit.xcodeproj/xcuserdata/steven.xcuserdatad/xcschemes/MessageKit.xcscheme rename to Example/ChatExample.xcodeproj/xcshareddata/xcschemes/ChatExample.xcscheme index 28794fa1..4bfd027d 100644 --- a/MessageKit.xcodeproj/xcuserdata/steven.xcuserdatad/xcschemes/MessageKit.xcscheme +++ b/Example/ChatExample.xcodeproj/xcshareddata/xcschemes/ChatExample.xcscheme @@ -1,6 +1,6 @@ + ReferencedContainer = "container:../MessageKit.xcodeproj"> + + + + @@ -26,26 +40,27 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> + BlueprintIdentifier = "882B5E481CF7D4B900B6E160" + BuildableName = "ChatExampleTests.xctest" + BlueprintName = "ChatExampleTests" + ReferencedContainer = "container:ChatExample.xcodeproj"> + BlueprintIdentifier = "882B5E321CF7D4B900B6E160" + BuildableName = "ChatExample.app" + BlueprintName = "ChatExample" + ReferencedContainer = "container:ChatExample.xcodeproj"> @@ -61,15 +76,16 @@ debugDocumentVersioning = "YES" debugServiceExtension = "internal" allowLocationSimulation = "YES"> - + + BlueprintIdentifier = "882B5E321CF7D4B900B6E160" + BuildableName = "ChatExample.app" + BlueprintName = "ChatExample" + ReferencedContainer = "container:ChatExample.xcodeproj"> - + @@ -79,15 +95,16 @@ savedToolIdentifier = "" useCustomWorkingDirectory = "NO" debugDocumentVersioning = "YES"> - + + BlueprintIdentifier = "882B5E321CF7D4B900B6E160" + BuildableName = "ChatExample.app" + BlueprintName = "ChatExample" + ReferencedContainer = "container:ChatExample.xcodeproj"> - + diff --git a/Example/ChatExample.xcodeproj/xcshareddata/xcschemes/ChatExampleUITests.xcscheme b/Example/ChatExample.xcodeproj/xcshareddata/xcschemes/ChatExampleUITests.xcscheme new file mode 100644 index 00000000..2cefbe63 --- /dev/null +++ b/Example/ChatExample.xcodeproj/xcshareddata/xcschemes/ChatExampleUITests.xcscheme @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Sources/AppDelegate.swift b/Example/Sources/AppDelegate.swift new file mode 100644 index 00000000..98ae1b0b --- /dev/null +++ b/Example/Sources/AppDelegate.swift @@ -0,0 +1,30 @@ +// +// Created by Jesse Squires +// http://www.jessesquires.com +// +// +// Documentation +// http://messagekit.github.io +// +// +// GitHub +// https://github.com/MessageKit/MessageKit +// +// +// License +// Copyright (c) 2016-present Jesse Squires +// Released under an MIT license: http://opensource.org/licenses/MIT +// + +import UIKit + +@UIApplicationMain +final class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool { + return true + } +} diff --git a/Example/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json b/Example/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..eeea76c2 --- /dev/null +++ b/Example/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,73 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Example/Sources/Assets.xcassets/Contents.json b/Example/Sources/Assets.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/Example/Sources/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Example/Sources/Base.lproj/LaunchScreen.storyboard b/Example/Sources/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..8e945dee --- /dev/null +++ b/Example/Sources/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Sources/Base.lproj/Main.storyboard b/Example/Sources/Base.lproj/Main.storyboard new file mode 100644 index 00000000..e113f6c0 --- /dev/null +++ b/Example/Sources/Base.lproj/Main.storyboard @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Sources/InboxViewController.swift b/Example/Sources/InboxViewController.swift new file mode 100644 index 00000000..79442319 --- /dev/null +++ b/Example/Sources/InboxViewController.swift @@ -0,0 +1,30 @@ +// +// Created by Jesse Squires +// http://www.jessesquires.com +// +// +// Documentation +// http://messagekit.github.io +// +// +// GitHub +// https://github.com/MessageKit/MessageKit +// +// +// License +// Copyright (c) 2016-present Jesse Squires +// Released under an MIT license: http://opensource.org/licenses/MIT +// + +import UIKit + +import MessageKit + + +final class InboxViewController: UITableViewController { + + override func viewDidLoad() { + super.viewDidLoad() + } +} + diff --git a/Example/Sources/Info.plist b/Example/Sources/Info.plist new file mode 100644 index 00000000..fd1ab7c3 --- /dev/null +++ b/Example/Sources/Info.plist @@ -0,0 +1,57 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UIStatusBarTintParameters + + UINavigationBar + + Style + UIBarStyleDefault + Translucent + + + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Example/Sources/SettingsViewController.swift b/Example/Sources/SettingsViewController.swift new file mode 100644 index 00000000..bb82dc15 --- /dev/null +++ b/Example/Sources/SettingsViewController.swift @@ -0,0 +1,30 @@ +// +// Created by Jesse Squires +// http://www.jessesquires.com +// +// +// Documentation +// http://messagekit.github.io +// +// +// GitHub +// https://github.com/MessageKit/MessageKit +// +// +// License +// Copyright (c) 2016-present Jesse Squires +// Released under an MIT license: http://opensource.org/licenses/MIT +// + +import UIKit + +import MessageKit + + +final class SettingsViewController: UITableViewController { + + override func viewDidLoad() { + super.viewDidLoad() + } +} + diff --git a/Example/Tests/ChatExampleTests.swift b/Example/Tests/ChatExampleTests.swift new file mode 100644 index 00000000..128a25e2 --- /dev/null +++ b/Example/Tests/ChatExampleTests.swift @@ -0,0 +1,36 @@ +// +// Created by Jesse Squires +// http://www.jessesquires.com +// +// +// Documentation +// http://messagekit.github.io +// +// +// GitHub +// https://github.com/MessageKit/MessageKit +// +// +// License +// Copyright (c) 2016-present Jesse Squires +// Released under an MIT license: http://opensource.org/licenses/MIT +// + +import XCTest +@testable import ChatExample + +final class ChatExampleTests: XCTestCase { + + override func setUp() { + super.setUp() + } + + override func tearDown() { + super.tearDown() + } + + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } +} diff --git a/MessageKitTests/Info.plist b/Example/Tests/Info.plist similarity index 92% rename from MessageKitTests/Info.plist rename to Example/Tests/Info.plist index 6c6c23c4..ba72822e 100644 --- a/MessageKitTests/Info.plist +++ b/Example/Tests/Info.plist @@ -16,6 +16,8 @@ BNDL CFBundleShortVersionString 1.0 + CFBundleSignature + ???? CFBundleVersion 1 diff --git a/Example/UITests/ChatExampleUITests.swift b/Example/UITests/ChatExampleUITests.swift new file mode 100644 index 00000000..3fa22105 --- /dev/null +++ b/Example/UITests/ChatExampleUITests.swift @@ -0,0 +1,48 @@ +// +// Created by Jesse Squires +// http://www.jessesquires.com +// +// +// Documentation +// http://messagekit.github.io +// +// +// GitHub +// https://github.com/MessageKit/MessageKit +// +// +// License +// Copyright (c) 2016-present Jesse Squires +// Released under an MIT license: http://opensource.org/licenses/MIT +// + +import XCTest +@testable import ChatExample + +final class ChatExampleUITests: XCTestCase { + + override func setUp() { + super.setUp() + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. + if #available(iOS 9.0, *) { + XCUIApplication().launch() + } else { + // Fallback on earlier versions + } + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. + // The setUp method is a good place to do this. + } + + override func tearDown() { + super.tearDown() + } + + func testExample() { + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } +} diff --git a/Example/UITests/Info.plist b/Example/UITests/Info.plist new file mode 100644 index 00000000..ba72822e --- /dev/null +++ b/Example/UITests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/MessageKit.podspec b/MessageKit.podspec index f96e7cb6..8f42c3ba 100644 --- a/MessageKit.podspec +++ b/MessageKit.podspec @@ -1,17 +1,21 @@ Pod::Spec.new do |s| + s.name = 'MessageKit' + s.version = '0.0.1' + s.license = { :type => "MIT", :file => "LICENSE" } - s.name = "MessageKit" - s.version = "0.0.1" - s.summary = "Super easy to use client for Hacker News API" - s.license = { :type => "MIT", :file => "LICENSE" } - s.homepage = "https://github.com/SD10/MessageKit" - s.author = { "Steven Deutsch" => "stevensdeutsch@yahoo.com" } - s.social_media_url = "https://twitter.com/_SD10_" - s.platform = :ios, "9.0" - s.requires_arc = "true" - s.source = { git: "https://github.com/SD10/MessageKit.git", tag: "#{s.version}" } - s.source_files = "MessageKit/**/*.*" - s.pod_target_xcconfig = { - "SWIFT_VERSION" => "3.0", - } + s.summary = 'An elegant messages UI library for iOS.' + s.homepage = 'https://github.com/MessageKit/MessageKit' + s.social_media_url = 'https://twitter.com/_SD10_' + s.author = { "Steven Deutsch" => "stevensdeutsch@yahoo.com" } + + s.source = { :git => 'https://github.com/MessageKit/MessageKit.git', :tag => s.version } + s.source_files = 'Sources/*.swift' + + s.pod_target_xcconfig = { + "SWIFT_VERSION" => "3.0", + } + + s.ios.deployment_target = '8.0' + + s.requires_arc = true end diff --git a/MessageKit.xcodeproj/project.pbxproj b/MessageKit.xcodeproj/project.pbxproj index c68e301c..ce49afe8 100644 --- a/MessageKit.xcodeproj/project.pbxproj +++ b/MessageKit.xcodeproj/project.pbxproj @@ -7,168 +7,116 @@ objects = { /* Begin PBXBuildFile section */ - B011FD661F1D48E700CE0D6A /* MessageKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B011FD5C1F1D48E600CE0D6A /* MessageKit.framework */; }; - B011FD6B1F1D48E700CE0D6A /* MessageKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B011FD6A1F1D48E700CE0D6A /* MessageKitTests.swift */; }; - B011FD6D1F1D48E700CE0D6A /* MessageKit.h in Headers */ = {isa = PBXBuildFile; fileRef = B011FD5F1F1D48E600CE0D6A /* MessageKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B04FA5241F1F287B00149F7B /* MessagesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04FA5231F1F287B00149F7B /* MessagesViewController.swift */; }; - B04FA5261F1F28E000149F7B /* MessagesCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04FA5251F1F28E000149F7B /* MessagesCollectionView.swift */; }; - B04FA5281F1F298A00149F7B /* Sender.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04FA5271F1F298A00149F7B /* Sender.swift */; }; - B04FA52A1F1F571F00149F7B /* MessageType.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04FA5291F1F571F00149F7B /* MessageType.swift */; }; - B04FA52C1F1F57CF00149F7B /* MessageData.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04FA52B1F1F57CF00149F7B /* MessageData.swift */; }; - B04FA52E1F1F586200149F7B /* MessageBubble.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04FA52D1F1F586200149F7B /* MessageBubble.swift */; }; - B04FA5301F1F58CC00149F7B /* Avatar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04FA52F1F1F58CC00149F7B /* Avatar.swift */; }; - B04FA5321F1F594400149F7B /* MessagesDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04FA5311F1F594400149F7B /* MessagesDataSource.swift */; }; - B04FA5341F1F598700149F7B /* MessagesDisplayDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04FA5331F1F598700149F7B /* MessagesDisplayDataSource.swift */; }; - BC45179D4196151E0FD7A189 /* Pods_MessageKitTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5ED3F40490956A74E35BFD58 /* Pods_MessageKitTests.framework */; }; - D6AE5064A8D0E2FD15DB2F3F /* Pods_MessageKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03A7B19053F1302354AE9741 /* Pods_MessageKit.framework */; }; + 882D75841DE507320033F95F /* MessagesDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 882D75831DE507320033F95F /* MessagesDataSource.swift */; }; + 888CEBFC1D3FD525005178DE /* MessagesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888CEBFB1D3FD525005178DE /* MessagesViewController.swift */; }; + 88916B2D1CF0DF2F00469F91 /* MessageKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88916B221CF0DF2F00469F91 /* MessageKit.framework */; }; + 88916B401CF0DF5100469F91 /* MessageKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 88916B3E1CF0DF5100469F91 /* MessageKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88916B451CF0DF5900469F91 /* MessageKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88916B431CF0DF5900469F91 /* MessageKitTests.swift */; }; + 88916B471CF0DFE600469F91 /* MessageProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88916B461CF0DFE600469F91 /* MessageProtocol.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - B011FD671F1D48E700CE0D6A /* PBXContainerItemProxy */ = { + 88916B2E1CF0DF2F00469F91 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = B011FD531F1D48E600CE0D6A /* Project object */; + containerPortal = 88916B191CF0DF2F00469F91 /* Project object */; proxyType = 1; - remoteGlobalIDString = B011FD5B1F1D48E600CE0D6A; + remoteGlobalIDString = 88916B211CF0DF2F00469F91; remoteInfo = MessageKit; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 03A7B19053F1302354AE9741 /* Pods_MessageKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MessageKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 15F571E7B0E9FFD6A34E4E39 /* Pods-MessageKitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MessageKitTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-MessageKitTests/Pods-MessageKitTests.debug.xcconfig"; sourceTree = ""; }; - 37685864038ED9ED95D54A6B /* Pods-MessageKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MessageKit.release.xcconfig"; path = "Pods/Target Support Files/Pods-MessageKit/Pods-MessageKit.release.xcconfig"; sourceTree = ""; }; - 5ED3F40490956A74E35BFD58 /* Pods_MessageKitTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MessageKitTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 90AE798D8AF4DF5A08FA0857 /* Pods-MessageKitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MessageKitTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-MessageKitTests/Pods-MessageKitTests.release.xcconfig"; sourceTree = ""; }; - B011FD5C1F1D48E600CE0D6A /* MessageKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MessageKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B011FD5F1F1D48E600CE0D6A /* MessageKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageKit.h; sourceTree = ""; }; - B011FD601F1D48E700CE0D6A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B011FD651F1D48E700CE0D6A /* MessageKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MessageKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - B011FD6A1F1D48E700CE0D6A /* MessageKitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageKitTests.swift; sourceTree = ""; }; - B011FD6C1F1D48E700CE0D6A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B04FA5231F1F287B00149F7B /* MessagesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagesViewController.swift; sourceTree = ""; }; - B04FA5251F1F28E000149F7B /* MessagesCollectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagesCollectionView.swift; sourceTree = ""; }; - B04FA5271F1F298A00149F7B /* Sender.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Sender.swift; sourceTree = ""; }; - B04FA5291F1F571F00149F7B /* MessageType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageType.swift; sourceTree = ""; }; - B04FA52B1F1F57CF00149F7B /* MessageData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageData.swift; sourceTree = ""; }; - B04FA52D1F1F586200149F7B /* MessageBubble.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageBubble.swift; sourceTree = ""; }; - B04FA52F1F1F58CC00149F7B /* Avatar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Avatar.swift; sourceTree = ""; }; - B04FA5311F1F594400149F7B /* MessagesDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagesDataSource.swift; sourceTree = ""; }; - B04FA5331F1F598700149F7B /* MessagesDisplayDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagesDisplayDataSource.swift; sourceTree = ""; }; - CE5C38D25AA833DD1F0F3CDD /* Pods-MessageKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MessageKit.debug.xcconfig"; path = "Pods/Target Support Files/Pods-MessageKit/Pods-MessageKit.debug.xcconfig"; sourceTree = ""; }; + 882D75831DE507320033F95F /* MessagesDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagesDataSource.swift; sourceTree = ""; }; + 888CEBFB1D3FD525005178DE /* MessagesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagesViewController.swift; sourceTree = ""; }; + 88916B221CF0DF2F00469F91 /* MessageKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MessageKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 88916B2C1CF0DF2F00469F91 /* MessageKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MessageKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 88916B3D1CF0DF5100469F91 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 88916B3E1CF0DF5100469F91 /* MessageKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageKit.h; sourceTree = ""; }; + 88916B421CF0DF5900469F91 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 88916B431CF0DF5900469F91 /* MessageKitTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageKitTests.swift; sourceTree = ""; }; + 88916B461CF0DFE600469F91 /* MessageProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageProtocol.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - B011FD581F1D48E600CE0D6A /* Frameworks */ = { + 88916B1E1CF0DF2F00469F91 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D6AE5064A8D0E2FD15DB2F3F /* Pods_MessageKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - B011FD621F1D48E700CE0D6A /* Frameworks */ = { + 88916B291CF0DF2F00469F91 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B011FD661F1D48E700CE0D6A /* MessageKit.framework in Frameworks */, - BC45179D4196151E0FD7A189 /* Pods_MessageKitTests.framework in Frameworks */, + 88916B2D1CF0DF2F00469F91 /* MessageKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 21774BC7B716CD53B997A91A /* Pods */ = { + 88916B181CF0DF2F00469F91 = { isa = PBXGroup; children = ( - CE5C38D25AA833DD1F0F3CDD /* Pods-MessageKit.debug.xcconfig */, - 37685864038ED9ED95D54A6B /* Pods-MessageKit.release.xcconfig */, - 15F571E7B0E9FFD6A34E4E39 /* Pods-MessageKitTests.debug.xcconfig */, - 90AE798D8AF4DF5A08FA0857 /* Pods-MessageKitTests.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 8AC462B02AB45AF2E88DFCE0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 03A7B19053F1302354AE9741 /* Pods_MessageKit.framework */, - 5ED3F40490956A74E35BFD58 /* Pods_MessageKitTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - B011FD521F1D48E600CE0D6A = { - isa = PBXGroup; - children = ( - B011FD5E1F1D48E600CE0D6A /* MessageKit */, - B011FD691F1D48E700CE0D6A /* MessageKitTests */, - B011FD5D1F1D48E600CE0D6A /* Products */, - 21774BC7B716CD53B997A91A /* Pods */, - 8AC462B02AB45AF2E88DFCE0 /* Frameworks */, + 88916B3C1CF0DF5100469F91 /* Sources */, + 88916B411CF0DF5900469F91 /* Tests */, + 88916B231CF0DF2F00469F91 /* Products */, ); sourceTree = ""; }; - B011FD5D1F1D48E600CE0D6A /* Products */ = { + 88916B231CF0DF2F00469F91 /* Products */ = { isa = PBXGroup; children = ( - B011FD5C1F1D48E600CE0D6A /* MessageKit.framework */, - B011FD651F1D48E700CE0D6A /* MessageKitTests.xctest */, + 88916B221CF0DF2F00469F91 /* MessageKit.framework */, + 88916B2C1CF0DF2F00469F91 /* MessageKitTests.xctest */, ); name = Products; sourceTree = ""; }; - B011FD5E1F1D48E600CE0D6A /* MessageKit */ = { + 88916B3C1CF0DF5100469F91 /* Sources */ = { isa = PBXGroup; children = ( - B04FA5231F1F287B00149F7B /* MessagesViewController.swift */, - B04FA5251F1F28E000149F7B /* MessagesCollectionView.swift */, - B04FA5291F1F571F00149F7B /* MessageType.swift */, - B04FA52B1F1F57CF00149F7B /* MessageData.swift */, - B04FA52D1F1F586200149F7B /* MessageBubble.swift */, - B04FA5311F1F594400149F7B /* MessagesDataSource.swift */, - B04FA5331F1F598700149F7B /* MessagesDisplayDataSource.swift */, - B04FA52F1F1F58CC00149F7B /* Avatar.swift */, - B04FA5271F1F298A00149F7B /* Sender.swift */, - B011FD5F1F1D48E600CE0D6A /* MessageKit.h */, - B011FD601F1D48E700CE0D6A /* Info.plist */, + 88916B3D1CF0DF5100469F91 /* Info.plist */, + 88916B3E1CF0DF5100469F91 /* MessageKit.h */, + 88916B461CF0DFE600469F91 /* MessageProtocol.swift */, + 882D75831DE507320033F95F /* MessagesDataSource.swift */, + 888CEBFB1D3FD525005178DE /* MessagesViewController.swift */, ); - path = MessageKit; + path = Sources; sourceTree = ""; }; - B011FD691F1D48E700CE0D6A /* MessageKitTests */ = { + 88916B411CF0DF5900469F91 /* Tests */ = { isa = PBXGroup; children = ( - B011FD6A1F1D48E700CE0D6A /* MessageKitTests.swift */, - B011FD6C1F1D48E700CE0D6A /* Info.plist */, + 88916B421CF0DF5900469F91 /* Info.plist */, + 88916B431CF0DF5900469F91 /* MessageKitTests.swift */, ); - path = MessageKitTests; - sourceTree = ""; + path = Tests; + sourceTree = SOURCE_ROOT; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - B011FD591F1D48E600CE0D6A /* Headers */ = { + 88916B1F1CF0DF2F00469F91 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B011FD6D1F1D48E700CE0D6A /* MessageKit.h in Headers */, + 88916B401CF0DF5100469F91 /* MessageKit.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - B011FD5B1F1D48E600CE0D6A /* MessageKit */ = { + 88916B211CF0DF2F00469F91 /* MessageKit */ = { isa = PBXNativeTarget; - buildConfigurationList = B011FD701F1D48E700CE0D6A /* Build configuration list for PBXNativeTarget "MessageKit" */; + buildConfigurationList = 88916B361CF0DF2F00469F91 /* Build configuration list for PBXNativeTarget "MessageKit" */; buildPhases = ( - 50657C327C29354A89F15E95 /* [CP] Check Pods Manifest.lock */, - B011FD571F1D48E600CE0D6A /* Sources */, - B011FD581F1D48E600CE0D6A /* Frameworks */, - B011FD591F1D48E600CE0D6A /* Headers */, - B011FD5A1F1D48E600CE0D6A /* Resources */, - 358B4AC0BD39D8779CB51726 /* [CP] Copy Pods Resources */, + 88916B1D1CF0DF2F00469F91 /* Sources */, + 88916B1E1CF0DF2F00469F91 /* Frameworks */, + 88916B1F1CF0DF2F00469F91 /* Headers */, + 88916B201CF0DF2F00469F91 /* Resources */, ); buildRules = ( ); @@ -176,78 +124,73 @@ ); name = MessageKit; productName = MessageKit; - productReference = B011FD5C1F1D48E600CE0D6A /* MessageKit.framework */; + productReference = 88916B221CF0DF2F00469F91 /* MessageKit.framework */; productType = "com.apple.product-type.framework"; }; - B011FD641F1D48E700CE0D6A /* MessageKitTests */ = { + 88916B2B1CF0DF2F00469F91 /* MessageKitTests */ = { isa = PBXNativeTarget; - buildConfigurationList = B011FD731F1D48E700CE0D6A /* Build configuration list for PBXNativeTarget "MessageKitTests" */; + buildConfigurationList = 88916B391CF0DF2F00469F91 /* Build configuration list for PBXNativeTarget "MessageKitTests" */; buildPhases = ( - 504AFAE755BAE7332732F276 /* [CP] Check Pods Manifest.lock */, - B011FD611F1D48E700CE0D6A /* Sources */, - B011FD621F1D48E700CE0D6A /* Frameworks */, - B011FD631F1D48E700CE0D6A /* Resources */, - 4A35689F82E911BFAD7F2CBA /* [CP] Embed Pods Frameworks */, - F27300DBC43E309D9688EE4C /* [CP] Copy Pods Resources */, + 88916B281CF0DF2F00469F91 /* Sources */, + 88916B291CF0DF2F00469F91 /* Frameworks */, + 88916B2A1CF0DF2F00469F91 /* Resources */, ); buildRules = ( ); dependencies = ( - B011FD681F1D48E700CE0D6A /* PBXTargetDependency */, + 88916B2F1CF0DF2F00469F91 /* PBXTargetDependency */, ); name = MessageKitTests; productName = MessageKitTests; - productReference = B011FD651F1D48E700CE0D6A /* MessageKitTests.xctest */; + productReference = 88916B2C1CF0DF2F00469F91 /* MessageKitTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - B011FD531F1D48E600CE0D6A /* Project object */ = { + 88916B191CF0DF2F00469F91 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0830; - ORGANIZATIONNAME = MessageKit; + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0810; + ORGANIZATIONNAME = "Hexed Bits"; TargetAttributes = { - B011FD5B1F1D48E600CE0D6A = { - CreatedOnToolsVersion = 8.3.2; - LastSwiftMigration = 0830; - ProvisioningStyle = Automatic; + 88916B211CF0DF2F00469F91 = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 0800; }; - B011FD641F1D48E700CE0D6A = { - CreatedOnToolsVersion = 8.3.2; - ProvisioningStyle = Automatic; + 88916B2B1CF0DF2F00469F91 = { + CreatedOnToolsVersion = 7.3.1; }; }; }; - buildConfigurationList = B011FD561F1D48E600CE0D6A /* Build configuration list for PBXProject "MessageKit" */; + buildConfigurationList = 88916B1C1CF0DF2F00469F91 /* Build configuration list for PBXProject "MessageKit" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = B011FD521F1D48E600CE0D6A; - productRefGroup = B011FD5D1F1D48E600CE0D6A /* Products */; + mainGroup = 88916B181CF0DF2F00469F91; + productRefGroup = 88916B231CF0DF2F00469F91 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - B011FD5B1F1D48E600CE0D6A /* MessageKit */, - B011FD641F1D48E700CE0D6A /* MessageKitTests */, + 88916B211CF0DF2F00469F91 /* MessageKit */, + 88916B2B1CF0DF2F00469F91 /* MessageKitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - B011FD5A1F1D48E600CE0D6A /* Resources */ = { + 88916B201CF0DF2F00469F91 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - B011FD631F1D48E700CE0D6A /* Resources */ = { + 88916B2A1CF0DF2F00469F91 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -256,126 +199,41 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 358B4AC0BD39D8779CB51726 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MessageKit/Pods-MessageKit-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 4A35689F82E911BFAD7F2CBA /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MessageKitTests/Pods-MessageKitTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 504AFAE755BAE7332732F276 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 50657C327C29354A89F15E95 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - F27300DBC43E309D9688EE4C /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MessageKitTests/Pods-MessageKitTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ - B011FD571F1D48E600CE0D6A /* Sources */ = { + 88916B1D1CF0DF2F00469F91 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B04FA52C1F1F57CF00149F7B /* MessageData.swift in Sources */, - B04FA52E1F1F586200149F7B /* MessageBubble.swift in Sources */, - B04FA5261F1F28E000149F7B /* MessagesCollectionView.swift in Sources */, - B04FA5281F1F298A00149F7B /* Sender.swift in Sources */, - B04FA5341F1F598700149F7B /* MessagesDisplayDataSource.swift in Sources */, - B04FA5301F1F58CC00149F7B /* Avatar.swift in Sources */, - B04FA5241F1F287B00149F7B /* MessagesViewController.swift in Sources */, - B04FA5321F1F594400149F7B /* MessagesDataSource.swift in Sources */, - B04FA52A1F1F571F00149F7B /* MessageType.swift in Sources */, + 882D75841DE507320033F95F /* MessagesDataSource.swift in Sources */, + 888CEBFC1D3FD525005178DE /* MessagesViewController.swift in Sources */, + 88916B471CF0DFE600469F91 /* MessageProtocol.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - B011FD611F1D48E700CE0D6A /* Sources */ = { + 88916B281CF0DF2F00469F91 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B011FD6B1F1D48E700CE0D6A /* MessageKitTests.swift in Sources */, + 88916B451CF0DF5900469F91 /* MessageKitTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - B011FD681F1D48E700CE0D6A /* PBXTargetDependency */ = { + 88916B2F1CF0DF2F00469F91 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = B011FD5B1F1D48E600CE0D6A /* MessageKit */; - targetProxy = B011FD671F1D48E700CE0D6A /* PBXContainerItemProxy */; + target = 88916B211CF0DF2F00469F91 /* MessageKit */; + targetProxy = 88916B2E1CF0DF2F00469F91 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - B011FD6E1F1D48E700CE0D6A /* Debug */ = { + 88916B341CF0DF2F00469F91 /* 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++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -383,7 +241,6 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = 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; @@ -412,24 +269,23 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.3; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - B011FD6F1F1D48E700CE0D6A /* Release */ = { + 88916B351CF0DF2F00469F91 /* 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++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -437,7 +293,6 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = 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; @@ -460,10 +315,10 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.3; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -471,20 +326,20 @@ }; name = Release; }; - B011FD711F1D48E700CE0D6A /* Debug */ = { + 88916B371CF0DF2F00469F91 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CE5C38D25AA833DD1F0F3CDD /* Pods-MessageKit.debug.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = MessageKit/Info.plist; + INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = MessageKit.MessageKit; + PRODUCT_BUNDLE_IDENTIFIER = com.hexedbits.MessageKit; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -492,83 +347,79 @@ }; name = Debug; }; - B011FD721F1D48E700CE0D6A /* Release */ = { + 88916B381CF0DF2F00469F91 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 37685864038ED9ED95D54A6B /* Pods-MessageKit.release.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = MessageKit/Info.plist; + INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = MessageKit.MessageKit; + PRODUCT_BUNDLE_IDENTIFIER = com.hexedbits.MessageKit; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 3.0; }; name = Release; }; - B011FD741F1D48E700CE0D6A /* Debug */ = { + 88916B3A1CF0DF2F00469F91 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 15F571E7B0E9FFD6A34E4E39 /* Pods-MessageKitTests.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - INFOPLIST_FILE = MessageKitTests/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = MessageKit.MessageKitTests; + PRODUCT_BUNDLE_IDENTIFIER = com.hexedbits.MessageKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; }; name = Debug; }; - B011FD751F1D48E700CE0D6A /* Release */ = { + 88916B3B1CF0DF2F00469F91 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 90AE798D8AF4DF5A08FA0857 /* Pods-MessageKitTests.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - INFOPLIST_FILE = MessageKitTests/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = MessageKit.MessageKitTests; + PRODUCT_BUNDLE_IDENTIFIER = com.hexedbits.MessageKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - B011FD561F1D48E600CE0D6A /* Build configuration list for PBXProject "MessageKit" */ = { + 88916B1C1CF0DF2F00469F91 /* Build configuration list for PBXProject "MessageKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - B011FD6E1F1D48E700CE0D6A /* Debug */, - B011FD6F1F1D48E700CE0D6A /* Release */, + 88916B341CF0DF2F00469F91 /* Debug */, + 88916B351CF0DF2F00469F91 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B011FD701F1D48E700CE0D6A /* Build configuration list for PBXNativeTarget "MessageKit" */ = { + 88916B361CF0DF2F00469F91 /* Build configuration list for PBXNativeTarget "MessageKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - B011FD711F1D48E700CE0D6A /* Debug */, - B011FD721F1D48E700CE0D6A /* Release */, + 88916B371CF0DF2F00469F91 /* Debug */, + 88916B381CF0DF2F00469F91 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B011FD731F1D48E700CE0D6A /* Build configuration list for PBXNativeTarget "MessageKitTests" */ = { + 88916B391CF0DF2F00469F91 /* Build configuration list for PBXNativeTarget "MessageKitTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - B011FD741F1D48E700CE0D6A /* Debug */, - B011FD751F1D48E700CE0D6A /* Release */, + 88916B3A1CF0DF2F00469F91 /* Debug */, + 88916B3B1CF0DF2F00469F91 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = B011FD531F1D48E600CE0D6A /* Project object */; + rootObject = 88916B191CF0DF2F00469F91 /* Project object */; } diff --git a/MessageKit.xcodeproj/project.xcworkspace/xcuserdata/steven.xcuserdatad/UserInterfaceState.xcuserstate b/MessageKit.xcodeproj/project.xcworkspace/xcuserdata/steven.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 5aba0a39446d51d8f29813bb41b14899d3f011da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14666 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 kf&FM&LRvDtKb@a8D6K55ipJjb4 @@ -26,13 +26,14 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> @@ -42,7 +43,7 @@ @@ -64,7 +65,7 @@ @@ -82,7 +83,7 @@ diff --git a/MessageKit.xcodeproj/xcuserdata/omar.xcuserdatad/xcschemes/xcschememanagement.plist b/MessageKit.xcodeproj/xcuserdata/omar.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 665fbbde..00000000 --- a/MessageKit.xcodeproj/xcuserdata/omar.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - MessageKit.xcscheme - - orderHint - 2 - - - SuppressBuildableAutocreation - - B011FD5B1F1D48E600CE0D6A - - primary - - - B011FD641F1D48E700CE0D6A - - primary - - - - - diff --git a/MessageKit.xcodeproj/xcuserdata/steven.xcuserdatad/xcschemes/xcschememanagement.plist b/MessageKit.xcodeproj/xcuserdata/steven.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 17146323..00000000 --- a/MessageKit.xcodeproj/xcuserdata/steven.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - MessageKit.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - B011FD5B1F1D48E600CE0D6A - - primary - - - B011FD641F1D48E700CE0D6A - - primary - - - - - diff --git a/MessageKit/Avatar.swift b/MessageKit/Avatar.swift deleted file mode 100644 index 0af348ee..00000000 --- a/MessageKit/Avatar.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// Avatar.swift -// MessageKit -// -// Created by Steven on 7/19/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -import Foundation - -// MARK: - Avatar - -public struct Avatar { - - // MARK: - Properties - - public let image: UIImage? - - public let highlightedImage: UIImage? - - public let placeholderImage: UIImage - - // MARK: - Initializers - - public init(image: UIImage? = nil, highlightedImage: UIImage? = nil, placeholderImage: UIImage) { - self.image = image - self.highlightedImage = highlightedImage - self.placeholderImage = placeholderImage - } - - // MARK: - Methods - - public func image(highlighted: Bool) -> UIImage { - return (highlighted ? highlightedImage : image) ?? placeholderImage - } -} diff --git a/MessageKit/MessageBubble.swift b/MessageKit/MessageBubble.swift deleted file mode 100644 index 9e73da4f..00000000 --- a/MessageKit/MessageBubble.swift +++ /dev/null @@ -1,26 +0,0 @@ -// -// MessageBubble.swift -// MessageKit -// -// Created by Steven on 7/19/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -import UIKit - -// MARK: - MessageBubble - -public struct MessageBubble { - - // MARK: - Properties - - public let image: UIImage - - public let highlightedImage: UIImage - - // MARK: - Methods - - public func image(highlighted: Bool) -> UIImage { - return highlighted ? image : highlightedImage - } -} diff --git a/MessageKit/MessageData.swift b/MessageKit/MessageData.swift deleted file mode 100644 index edcfdc68..00000000 --- a/MessageKit/MessageData.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// MessageData.swift -// MessageKit -// -// Created by Steven on 7/19/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -import Foundation -import class CoreLocation.CLLocation - -// MARK: - MessageData - -public enum MessageData { - - case text(String) - - case attributedText(NSAttributedString) - - case audio(Data) - - case location(CLLocation) - - case photo(UIImage) - - case video(file: NSURL, thumbnail: UIImage) - - case system(String) - - case custom(Any) - - case placeholder -} diff --git a/MessageKit/MessageKit.h b/MessageKit/MessageKit.h deleted file mode 100644 index ed93fa12..00000000 --- a/MessageKit/MessageKit.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// MessageKit.h -// MessageKit -// -// Created by Steven on 7/17/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -#import - -//! Project version number for MessageKit. -FOUNDATION_EXPORT double MessageKitVersionNumber; - -//! Project version string for MessageKit. -FOUNDATION_EXPORT const unsigned char MessageKitVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/MessageKit/MessageType.swift b/MessageKit/MessageType.swift deleted file mode 100644 index b5d68eba..00000000 --- a/MessageKit/MessageType.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// MessageType.swift -// MessageKit -// -// Created by Steven on 7/19/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -import Foundation - -// MARK: - MessageType - -public protocol MessageType { - - var sender: Sender { get } - - var messageId: String { get } - - var sentDate: Date { get } - - var messageData: MessageData { get } - -} diff --git a/MessageKit/MessagesCollectionView.swift b/MessageKit/MessagesCollectionView.swift deleted file mode 100644 index 1a704631..00000000 --- a/MessageKit/MessagesCollectionView.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// MessagesCollectionView.swift -// MessageKit -// -// Created by Steven on 7/19/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -import UIKit - -// MARK: - MessagesCollectionView - -open class MessagesCollectionView: UICollectionView { - - /* - // Only override draw() if you perform custom drawing. - // An empty implementation adversely affects performance during animation. - override func draw(_ rect: CGRect) { - // Drawing code - } - */ - -} diff --git a/MessageKit/MessagesDataSource.swift b/MessageKit/MessagesDataSource.swift deleted file mode 100644 index 65694dcd..00000000 --- a/MessageKit/MessagesDataSource.swift +++ /dev/null @@ -1,27 +0,0 @@ -// -// MessagesDataSource.swift -// MessageKit -// -// Created by Steven on 7/19/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -import Foundation - -// MARK: - MessagesDataSource - -public protocol MessagesDataSource { - - var currentSender: Sender { get } - - func messageForItem(at indexPath: IndexPath, in collectionView: UICollectionView) -> MessageType -} - -// MARK: - MessagesDataSource Default - -extension MessagesDataSource { - - func isFromCurrentSender(message: MessageType) -> Bool { - return message.sender == currentSender - } -} diff --git a/MessageKit/MessagesDisplayDataSource.swift b/MessageKit/MessagesDisplayDataSource.swift deleted file mode 100644 index e858405d..00000000 --- a/MessageKit/MessagesDisplayDataSource.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// MessagesDisplayDataSource.swift -// MessageKit -// -// Created by Steven on 7/19/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -import Foundation - -// MARK: - MessagesDisplayDataSource - -public protocol MessagesDisplayDataSource { - - func bubbleForMessage(_ message: MessageType, at indexPath: IndexPath, in collectionView: UICollectionView) -> MessageBubble - - func avatarForMessage(_ message: MessageType, at indexPath: IndexPath, in collectionView: UICollectionView) -> Avatar -} diff --git a/MessageKit/MessagesViewController.swift b/MessageKit/MessagesViewController.swift deleted file mode 100644 index 3e49a63d..00000000 --- a/MessageKit/MessagesViewController.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// MessagesViewController.swift -// MessageKit -// -// Created by Steven on 7/19/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -import UIKit - -// MARK: - MessagesViewController - -open class MessagesViewController: UIViewController { - - // MARK: - View Life Cycle - - override open func viewDidLoad() { - super.viewDidLoad() - } - -} - diff --git a/MessageKit/Sender.swift b/MessageKit/Sender.swift deleted file mode 100644 index 01c62aa8..00000000 --- a/MessageKit/Sender.swift +++ /dev/null @@ -1,31 +0,0 @@ -// -// Sender.swift -// MessageKit -// -// Created by Steven on 7/19/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -import Foundation - -// MARK: - Sender - -public struct Sender { - - // MARK: - Properties - - let id: String - - let displayName: String - -} - -// MARK: - Equatable Conformance - -extension Sender: Equatable { - - static public func ==(lhs: Sender, rhs: Sender) -> Bool { - return lhs.id == rhs.id - } - -} diff --git a/MessageKitTests/MessageKitTests.swift b/MessageKitTests/MessageKitTests.swift deleted file mode 100644 index 8a05d70f..00000000 --- a/MessageKitTests/MessageKitTests.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// MessageKitTests.swift -// MessageKitTests -// -// Created by Steven on 7/17/17. -// Copyright © 2017 MessageKit. All rights reserved. -// - -import XCTest -@testable import MessageKit - -class MessageKitTests: XCTestCase { - - override func setUp() { - super.setUp() - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - super.tearDown() - } - - func testExample() { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. - } - - func testPerformanceExample() { - // This is an example of a performance test case. - self.measure { - // Put the code you want to measure the time of here. - } - } - -} diff --git a/README.md b/README.md index 11cd012f..d8a6ee12 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # MessageKit -This project is intended to be a rewrite of the recently deprecated [JSQMessagesViewController](https://github.com/jessesquires/JSQMessagesViewController) in Swift. +[![Build Status](https://travis-ci.org/MessageKit/MessageKit.svg)](https://travis-ci.org/MessageKit/MessageKit) [![codecov](https://codecov.io/gh/MessageKit/MessageKit/branch/master/graph/badge.svg)](https://codecov.io/gh/MessageKit/MessageKit) + +**In-progress**, this project is intended to be a Swift rewrite of the recently deprecated [JSQMessagesViewController](https://github.com/jessesquires/JSQMessagesViewController) in Swift. ## Want to contribute? diff --git a/MessageKit/Info.plist b/Sources/Info.plist similarity index 90% rename from MessageKit/Info.plist rename to Sources/Info.plist index 259d58ea..60b9c008 100644 --- a/MessageKit/Info.plist +++ b/Sources/Info.plist @@ -15,7 +15,9 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.0.1 + 1.0.0 + CFBundleSignature + ???? CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass diff --git a/Sources/MessageKit.h b/Sources/MessageKit.h new file mode 100644 index 00000000..57dfdc11 --- /dev/null +++ b/Sources/MessageKit.h @@ -0,0 +1,23 @@ +// +// Created by Jesse Squires +// http://www.jessesquires.com +// +// +// Documentation +// http://messagekit.github.io +// +// +// GitHub +// https://github.com/MessageKit/MessageKit +// +// +// License +// Copyright (c) 2016-present Jesse Squires +// Released under an MIT license: http://opensource.org/licenses/MIT +// + +#import + +FOUNDATION_EXPORT double MessageKitVersionNumber; + +FOUNDATION_EXPORT const unsigned char MessageKitVersionString[]; diff --git a/Sources/MessageProtocol.swift b/Sources/MessageProtocol.swift new file mode 100644 index 00000000..fa35a158 --- /dev/null +++ b/Sources/MessageProtocol.swift @@ -0,0 +1,69 @@ +// +// Created by Jesse Squires +// http://www.jessesquires.com +// +// +// Documentation +// http://messagekit.github.io +// +// +// GitHub +// https://github.com/MessageKit/MessageKit +// +// +// License +// Copyright (c) 2016-present Jesse Squires +// Released under an MIT license: http://opensource.org/licenses/MIT +// + +import Foundation +import CoreLocation + + +public struct Sender { + + public let id: String + + public let displayName: String +} + + +extension Sender: Equatable { + static public func ==(left: Sender, right: Sender) -> Bool { + return left.id == right.id + } +} + + +public enum MessageData { + + case text(String) + + case attributedText(NSAttributedString) + + case audio(Data) + + case location(CLLocation) + + case photo(UIImage) + + case video(file: NSURL, thumbnail: UIImage) + + case system(String) + + case custom(Any) + + case placeholder +} + + +public protocol MessageType { + + var sender: Sender { get } + + var messageId: String { get } + + var sentDate: Date { get } + + var data: MessageData { get } +} diff --git a/Sources/MessagesDataSource.swift b/Sources/MessagesDataSource.swift new file mode 100644 index 00000000..2ac2fe71 --- /dev/null +++ b/Sources/MessagesDataSource.swift @@ -0,0 +1,84 @@ +// +// Created by Jesse Squires +// http://www.jessesquires.com +// +// +// Documentation +// http://messagekit.github.io +// +// +// GitHub +// https://github.com/MessageKit/MessageKit +// +// +// License +// Copyright (c) 2016-present Jesse Squires +// Released under an MIT license: http://opensource.org/licenses/MIT +// + +import Foundation +import UIKit + + +public struct MessageBubble { + + public let image: UIImage + + public let highlightedImage: UIImage + + public func image(highlighted: Bool) -> UIImage { + return highlighted ? image : highlightedImage + } +} + + +public struct Avatar { + + public let image: UIImage? + + public let highlightedImage: UIImage? + + public let placeholderImage: UIImage + + public init(image: UIImage? = nil, highlightedImage: UIImage? = nil, placeholderImage: UIImage) { + self.image = image + self.highlightedImage = highlightedImage + self.placeholderImage = placeholderImage + } + + public func image(highlighted: Bool) -> UIImage { + guard let image = image else { + return placeholderImage + } + + guard let highlightedImage = highlightedImage else { + return image + } + + return highlighted ? image : highlightedImage + } +} + + +public protocol MessagesDataSource { + + var currentSender: Sender { get } + + func messageForItem(at indexPath: IndexPath, in collectionView: UICollectionView) -> MessageType +} + + +extension MessagesDataSource { + + func isFromCurrentSender(message: MessageType) -> Bool { + return message.sender == currentSender + } +} + + +public protocol MessagesDisplayDataSource { + + func bubbleForMessage(_ message: MessageType, at indexPath: IndexPath, in collectionView: UICollectionView) -> MessageBubble + + func avatarForMessage(_ message: MessageType, at indexPath: IndexPath, in collectionView: UICollectionView) -> Avatar +} diff --git a/Sources/MessagesViewController.swift b/Sources/MessagesViewController.swift new file mode 100644 index 00000000..2326ce5b --- /dev/null +++ b/Sources/MessagesViewController.swift @@ -0,0 +1,28 @@ +// +// Created by Jesse Squires +// http://www.jessesquires.com +// +// +// Documentation +// http://messagekit.github.io +// +// +// GitHub +// https://github.com/MessageKit/MessageKit +// +// +// License +// Copyright (c) 2016-present Jesse Squires +// Released under an MIT license: http://opensource.org/licenses/MIT +// + +import UIKit +import Foundation + + +public final class MessagesViewController: UICollectionViewController { + + override public func viewDidLoad() { + super.viewDidLoad() + } +} diff --git a/Tests/Info.plist b/Tests/Info.plist new file mode 100644 index 00000000..ba72822e --- /dev/null +++ b/Tests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/Tests/MessageKitTests.swift b/Tests/MessageKitTests.swift new file mode 100644 index 00000000..babf355f --- /dev/null +++ b/Tests/MessageKitTests.swift @@ -0,0 +1,38 @@ +// +// Created by Jesse Squires +// http://www.jessesquires.com +// +// +// Documentation +// http://messagekit.github.io +// +// +// GitHub +// https://github.com/MessageKit/MessageKit +// +// +// License +// Copyright (c) 2016-present Jesse Squires +// Released under an MIT license: http://opensource.org/licenses/MIT +// + +import XCTest +@testable import MessageKit + + +final class MessageKitTests: XCTestCase { + + override func setUp() { + super.setUp() + } + + override func tearDown() { + super.tearDown() + } + + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + +}