diff --git a/.circleci/config.yml b/.circleci/config.yml index beaf6e03..e07e2c24 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 jobs: build: - working_directory: /Users/distiller/launchdarkly/ios-client/tmp + working_directory: /Users/distiller/launchdarkly/ios-client-sdk/tmp parallelism: 1 # controls the # of containers for the job. In theory, adding another container should halve the number of tests run in each container, but instead appears to run all tests in both containers. shell: /bin/bash --login @@ -51,7 +51,7 @@ jobs: - run: name: Clean, Build, & Test Darkly_iOS - command: set -o pipefail && xcodebuild clean build test -workspace 'Darkly.xcworkspace' -scheme 'Darkly_iOS' -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone XS,OS=latest' CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= PROVISIONING_PROFILE= | tee 'Darkly_iOS_xcode_raw.log' | xcpretty --color --report html --output '/Users/distiller/launchdarkly/ios-client/tmp/output/report.html' --report junit --output '/Users/distiller/launchdarkly/ios-client/tmp/output/xcode/report.junit' + command: set -o pipefail && xcodebuild clean build test -workspace 'Darkly.xcworkspace' -scheme 'Darkly_iOS' -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone XS,OS=latest' CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= PROVISIONING_PROFILE= | tee 'Darkly_iOS_xcode_raw.log' | xcpretty --color --report html --output '/Users/distiller/launchdarkly/ios-client-sdk/tmp/output/report.html' --report junit --output '/Users/distiller/launchdarkly/ios-client-sdk/tmp/output/xcode/report.junit' - run: name: Clean & Build Darkly_watchOS diff --git a/.circleci/run-build-locally.sh b/.circleci/run-build-locally.sh index c694dbff..86b84323 100644 --- a/.circleci/run-build-locally.sh +++ b/.circleci/run-build-locally.sh @@ -1,6 +1,6 @@ # A script that triggers a circleci build from the command line # Script from https://circleci.com/docs/2.0/examples/#video-test-your-config-file-locally -# Usage: From the project folder (e.g. 'ios-client') run 'bash .circleci/run-build-locally.sh' +# Usage: From the project folder (e.g. 'ios-client-sdk') run 'bash .circleci/run-build-locally.sh' # Set the url to run in this format # https://circleci.com/api/v1.1/project////tree/ # Dependencies: @@ -10,4 +10,4 @@ curl --user ${CIRCLE_TOKEN}: \ --request POST \ --form config=@.circleci/config.yml \ --form notify=false \ - https://circleci.com/api/v1.1/project/github/launchdarkly/ios-client/tree/master + https://circleci.com/api/v1.1/project/github/launchdarkly/ios-client-sdk/tree/master diff --git a/.gitignore b/.gitignore index 86766ed4..3f4e9ed1 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,4 @@ DerivedData # Vim files *.swp -/Carthage +Carthage/Checkouts diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d12351c..17dfb551 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to the LaunchDarkly iOS SDK will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org). +## [3.0.1] - 2019-04-30 +### Changed +- Deployed Carthage built DarklyEventSource frameworks as part of the Darkly project. + ## [3.0.0] - 2019-04-17 ### Changed - Renamed the non-iOS Darkly frameworks to include the platform name. e.g. Darkly_watchOS. Because non-CocoaPods apps will need to update imports for the new modules, advanced to the next major version. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0a129132..78be3b3d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,31 @@ -Contributing to LaunchDarkly SDK for iOS -========================================= +Contributing to the LaunchDarkly SDK for iOS +================================================ -We encourage pull-requests and other contributions from the community. We've also published an [SDK contributor's guide](http://docs.launchdarkly.com/docs/sdk-contributors-guide) that provides a detailed explanation of how our SDKs work. +LaunchDarkly has published an [SDK contributor's guide](https://docs.launchdarkly.com/docs/sdk-contributors-guide) that provides a detailed explanation of how our SDKs work. See below for additional information on how to contribute to this SDK. +Submitting bug reports and feature requests +------------------ + +The LaunchDarkly SDK team monitors the [issue tracker](https://github.com/launchdarkly/ios-client-sdk/issues) in the SDK repository. Bug reports and feature requests specific to this SDK should be filed in this issue tracker. The SDK team will respond to all newly filed issues within two business days. + +Submitting pull requests +------------------ + +We encourage pull requests and other contributions from the community. Before submitting pull requests, ensure that all temporary or unintended code is removed. Don't worry about adding reviewers to the pull request; the LaunchDarkly SDK team will add themselves. The SDK team will acknowledge all pull requests within two business days. + +Build instructions +------------------ + +### Prerequisites + +This SDK is built with [XCode](https://developer.apple.com/xcode/). This version is compatible with XCode 10.2. + +### Building + +The exact command used to build the SDK depends on where you want to use it (for example -- iOS, watchOS, etc.). Refer to the `xcodebuild` commands in the SDK's [continuous integration build configuration](.circleci/config.yml) for examples on how to build for the different platforms. + +If you wish to clean your working directory between builds, include the `clean` goal in your `xcodebuild` command(s). + +### Testing + +To build the SDK and run all unit tests, include the `test` goal in your `xcodebuild` command(s). diff --git a/Carthage/Build/.ios-eventsource.version b/Carthage/Build/.ios-eventsource.version new file mode 100644 index 00000000..010e9711 --- /dev/null +++ b/Carthage/Build/.ios-eventsource.version @@ -0,0 +1,27 @@ +{ + "Mac" : [ + { + "name" : "DarklyEventSource", + "hash" : "40e819c5d288aaa1fb64936c85f9c6d5e743eed06b58f50bb1c85f3ade7aa277" + } + ], + "watchOS" : [ + { + "name" : "DarklyEventSource", + "hash" : "1c53cc327e2253ac6ad20105985899b89f4866723370e6b9ee2a9207d45080df" + } + ], + "tvOS" : [ + { + "name" : "DarklyEventSource", + "hash" : "0695065ce4399718a6f6c41c4b0face3f377fb70af1cd36082452bfa0aba292d" + } + ], + "commitish" : "4.0.1", + "iOS" : [ + { + "name" : "DarklyEventSource", + "hash" : "5bec3137414d93472e7dfce4fc5e1594891cabcf05a8daa1e2ccbb9110ae091f" + } + ] +} \ No newline at end of file diff --git a/Carthage/Build/Mac/DarklyEventSource.framework.dSYM/Contents/Info.plist b/Carthage/Build/Mac/DarklyEventSource.framework.dSYM/Contents/Info.plist new file mode 100644 index 00000000..a481cb27 --- /dev/null +++ b/Carthage/Build/Mac/DarklyEventSource.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.com.launchdarkly.EventSource + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 4.0.1 + CFBundleVersion + 1 + + diff --git a/Carthage/Build/Mac/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource b/Carthage/Build/Mac/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource new file mode 100644 index 00000000..66acac07 Binary files /dev/null and b/Carthage/Build/Mac/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource differ diff --git a/Carthage/Build/Mac/DarklyEventSource.framework/DarklyEventSource b/Carthage/Build/Mac/DarklyEventSource.framework/DarklyEventSource new file mode 120000 index 00000000..f0683700 --- /dev/null +++ b/Carthage/Build/Mac/DarklyEventSource.framework/DarklyEventSource @@ -0,0 +1 @@ +Versions/Current/DarklyEventSource \ No newline at end of file diff --git a/Carthage/Build/Mac/DarklyEventSource.framework/Headers b/Carthage/Build/Mac/DarklyEventSource.framework/Headers new file mode 120000 index 00000000..a177d2a6 --- /dev/null +++ b/Carthage/Build/Mac/DarklyEventSource.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Carthage/Build/Mac/DarklyEventSource.framework/Modules b/Carthage/Build/Mac/DarklyEventSource.framework/Modules new file mode 120000 index 00000000..5736f318 --- /dev/null +++ b/Carthage/Build/Mac/DarklyEventSource.framework/Modules @@ -0,0 +1 @@ +Versions/Current/Modules \ No newline at end of file diff --git a/Carthage/Build/Mac/DarklyEventSource.framework/Resources b/Carthage/Build/Mac/DarklyEventSource.framework/Resources new file mode 120000 index 00000000..953ee36f --- /dev/null +++ b/Carthage/Build/Mac/DarklyEventSource.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/DarklyEventSource b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/DarklyEventSource new file mode 100755 index 00000000..2ad7e2d7 Binary files /dev/null and b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/DarklyEventSource differ diff --git a/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Headers/DarklyEventSource.h b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Headers/DarklyEventSource.h new file mode 100644 index 00000000..7a49426b --- /dev/null +++ b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Headers/DarklyEventSource.h @@ -0,0 +1,11 @@ +// +// DarklyEventSource.h +// DarklyEventSource +// +// Created by Mark Pokorny on 12/1/17. +JMJ +// Copyright © 2017 Catamorphic Co. All rights reserved. +// + +#import + +#import diff --git a/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Headers/LDEventSource.h b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Headers/LDEventSource.h new file mode 100644 index 00000000..b4f910aa --- /dev/null +++ b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Headers/LDEventSource.h @@ -0,0 +1,148 @@ +// +// LDEventSource.h +// LDEventSource +// +// Created by Neil on 25/07/2013. +// Copyright (c) 2013 Neil Cowburn. All rights reserved. +// + +#import + +typedef enum { + kEventStateConnecting = 0, + kEventStateOpen = 1, + kEventStateClosed = 2, +} LDEventState; + +NS_ASSUME_NONNULL_BEGIN + +extern NSString *const LDEventSourceErrorDomain; + +// --------------------------------------------------------------------------------------------------------------------- + +/// Describes an Event received from an EventSource +@interface LDEvent : NSObject + +/// The Event ID +@property (nonatomic, strong, nullable) id id; +/// The name of the Event +@property (nonatomic, strong, nullable) NSString *event; +/// The data received from the EventSource +@property (nonatomic, strong, nullable) NSString *data; + +/// The current state of the connection to the EventSource +@property (nonatomic, assign) LDEventState readyState; +/// Provides details of any errors with the connection to the EventSource +@property (nonatomic, strong, nullable) NSError *error; + +-(id)copyWithZone:(nullable NSZone*)zone; +@end + +// --------------------------------------------------------------------------------------------------------------------- + +typedef void (^LDEventSourceEventHandler)(LDEvent * _Nullable event); + +// --------------------------------------------------------------------------------------------------------------------- + +/// Connect to and receive Server-Sent Events (SSEs). +@interface LDEventSource : NSObject + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included ++ (instancetype)eventSourceWithURL:(NSURL *)URL httpHeaders:(nullable NSDictionary*) headers; + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil ++ (instancetype)eventSourceWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param timeoutInterval The request timeout interval in seconds. See NSURLRequest for more details. Default: 5 minutes. +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil ++ (instancetype)eventSourceWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + timeoutInterval:(NSTimeInterval)timeoutInterval + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +- (instancetype)initWithURL:(NSURL *)URL httpHeaders:(nullable NSDictionary*) headers; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil +- (instancetype)initWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param timeoutInterval The request timeout interval in seconds. See NSURLRequest for more details. Default: 5 minutes. +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil +- (instancetype)initWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + timeoutInterval:(NSTimeInterval)timeoutInterval + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Registers an event handler for the Message event. +/// +/// @param handler The handler for the Message event. +- (void)onMessage:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for the Error event. +/// +/// @param handler The handler for the Error event. +- (void)onError:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for the Open event. +/// +/// @param handler The handler for the Open event. +- (void)onOpen:(LDEventSourceEventHandler)handler; + +- (void)onReadyStateChanged:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for a named event. +/// +/// @param eventName The name of the event you registered. +/// @param handler The handler for the Message event. +- (void)addEventListener:(NSString *)eventName handler:(LDEventSourceEventHandler)handler; + +/// Opens the connection to the EventSource. +- (void)open; + +/// Closes the connection to the EventSource. +- (void)close; + +@end + +// --------------------------------------------------------------------------------------------------------------------- + +extern NSString *const MessageEvent; +extern NSString *const ErrorEvent; +extern NSString *const OpenEvent; +extern NSString *const ReadyStateEvent; + +NS_ASSUME_NONNULL_END diff --git a/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Modules/module.modulemap b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Modules/module.modulemap new file mode 100644 index 00000000..2545245b --- /dev/null +++ b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module DarklyEventSource { + umbrella header "DarklyEventSource.h" + + export * + module * { export * } +} diff --git a/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Resources/Info.plist b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Resources/Info.plist new file mode 100644 index 00000000..7c9e538f --- /dev/null +++ b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,49 @@ + + + + + BuildMachineOSBuild + 18E226 + CFBundleDevelopmentRegion + en + CFBundleExecutable + DarklyEventSource + CFBundleIdentifier + com.launchdarkly.EventSource + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + DarklyEventSource + CFBundlePackageType + FMWK + CFBundleShortVersionString + 4.0.1 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 10E1001 + DTPlatformVersion + GM + DTSDKBuild + 18E219 + DTSDKName + macosx10.14 + DTXcode + 1020 + DTXcodeBuild + 10E1001 + UIDeviceFamily + + 1 + 2 + 3 + 4 + + + diff --git a/Carthage/Build/Mac/DarklyEventSource.framework/Versions/Current b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/Current new file mode 120000 index 00000000..8c7e5a66 --- /dev/null +++ b/Carthage/Build/Mac/DarklyEventSource.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Carthage/Build/iOS/864DD837-1D3D-3581-B81D-3B506FFB08D2.bcsymbolmap b/Carthage/Build/iOS/864DD837-1D3D-3581-B81D-3B506FFB08D2.bcsymbolmap new file mode 100644 index 00000000..2b63ff38 --- /dev/null +++ b/Carthage/Build/iOS/864DD837-1D3D-3581-B81D-3B506FFB08D2.bcsymbolmap @@ -0,0 +1,296 @@ +BCSymbolMap Version: 2.0 ++[LDEventSource eventSourceWithURL:httpHeaders:] ++[LDEventSource eventSourceWithURL:httpHeaders:connectMethod:connectBody:] ++[LDEventSource eventSourceWithURL:httpHeaders:timeoutInterval:connectMethod:connectBody:] +-[LDEventSource initWithURL:httpHeaders:] +-[LDEventSource initWithURL:httpHeaders:connectMethod:connectBody:] +-[LDEventSource initWithURL:httpHeaders:timeoutInterval:connectMethod:connectBody:] +-[LDEventSource addEventListener:handler:] +-[LDEventSource onMessage:] +-[LDEventSource onError:] +-[LDEventSource onOpen:] +-[LDEventSource onReadyStateChanged:] +-[LDEventSource close] +-[LDEventSource URLSession:dataTask:didReceiveResponse:completionHandler:] +-[LDEventSource URLSession:dataTask:didReceiveData:] +-[LDEventSource parseEventString:] +___34-[LDEventSource parseEventString:]_block_invoke +___copy_helper_block_e8_32s40w +___destroy_helper_block_e8_32s40w +-[LDEventSource URLSession:task:didCompleteWithError:] +___54-[LDEventSource URLSession:task:didCompleteWithError:]_block_invoke +___copy_helper_block_e8_32w +___destroy_helper_block_e8_32w +-[LDEventSource eventErrorForTask:errorCode:underlyingError:] +-[LDEventSource responseIsUnauthorizedForTask:] +-[LDEventSource open] +-[LDEventSource _dispatchEvent:type:] +___37-[LDEventSource _dispatchEvent:type:]_block_invoke +___copy_helper_block_e8_32b40s +___destroy_helper_block_e8_32s40s +-[LDEventSource _dispatchEvent:] +-[LDEventSource increaseIntervalWithBackoff] +-[LDEventSource eventURL] +-[LDEventSource setEventURL:] +-[LDEventSource eventSourceTask] +-[LDEventSource setEventSourceTask:] +-[LDEventSource session] +-[LDEventSource setSession:] +-[LDEventSource listeners] +-[LDEventSource setListeners:] +-[LDEventSource timeoutInterval] +-[LDEventSource setTimeoutInterval:] +-[LDEventSource retryInterval] +-[LDEventSource setRetryInterval:] +-[LDEventSource retryAttempt] +-[LDEventSource setRetryAttempt:] +-[LDEventSource httpRequestHeaders] +-[LDEventSource setHttpRequestHeaders:] +-[LDEventSource connectMethod] +-[LDEventSource setConnectMethod:] +-[LDEventSource connectBody] +-[LDEventSource setConnectBody:] +-[LDEventSource lastEventID] +-[LDEventSource setLastEventID:] +-[LDEventSource eventStringAccumulator] +-[LDEventSource setEventStringAccumulator:] +-[LDEventSource .cxx_destruct] +-[LDEvent description] +-[LDEvent copyWithZone:] +-[LDEvent id] +-[LDEvent setId:] +-[LDEvent event] +-[LDEvent setEvent:] +-[LDEvent data] +-[LDEvent setData:] +-[LDEvent readyState] +-[LDEvent setReadyState:] +-[LDEvent error] +-[LDEvent setError:] +-[LDEvent .cxx_destruct] +_OBJC_IVAR_$_LDEventSource.messageQueue +_OBJC_IVAR_$_LDEventSource.connectionQueue +_OBJC_IVAR_$_LDEventSource.wasClosed +_OBJC_IVAR_$_LDEventSource._retryAttempt +___block_descriptor_48_e8_32s40w_e5_v8@?0l +___block_descriptor_40_e8_32w_e5_v8@?0l +___block_descriptor_48_e8_32bs40s_e5_v8@?0l +_OBJC_IVAR_$_LDEventSource._retryInterval +_OBJC_IVAR_$_LDEventSource._eventURL +_OBJC_IVAR_$_LDEventSource._eventSourceTask +_OBJC_IVAR_$_LDEventSource._session +_OBJC_IVAR_$_LDEventSource._listeners +_OBJC_IVAR_$_LDEventSource._timeoutInterval +_OBJC_IVAR_$_LDEventSource._httpRequestHeaders +_OBJC_IVAR_$_LDEventSource._connectMethod +_OBJC_IVAR_$_LDEventSource._connectBody +_OBJC_IVAR_$_LDEventSource._lastEventID +_OBJC_IVAR_$_LDEventSource._eventStringAccumulator +l_OBJC_PROTOCOL_$_NSObject +l_OBJC_LABEL_PROTOCOL_$_NSObject +l_OBJC_PROTOCOL_$_NSURLSessionDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionDelegate +l_OBJC_PROTOCOL_$_NSURLSessionTaskDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionTaskDelegate +l_OBJC_PROTOCOL_$_NSURLSessionDataDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionDataDelegate +_OBJC_IVAR_$_LDEvent._id +_OBJC_IVAR_$_LDEvent._event +_OBJC_IVAR_$_LDEvent._data +_OBJC_IVAR_$_LDEvent._readyState +_OBJC_IVAR_$_LDEvent._error +l_OBJC_PROTOCOL_$_NSCopying +l_OBJC_LABEL_PROTOCOL_$_NSCopying +Apple LLVM version 10.0.1 (clang-1001.0.46.4) +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventSource.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventSource.h +__destroy_helper_block_e8_32s40s +__copy_helper_block_e8_32b40s +__37-[LDEventSource _dispatchEvent:type:]_block_invoke +__destroy_helper_block_e8_32w +__copy_helper_block_e8_32w +__54-[LDEventSource URLSession:task:didCompleteWithError:]_block_invoke +__destroy_helper_block_e8_32s40w +__copy_helper_block_e8_32s40w +__34-[LDEventSource parseEventString:]_block_invoke +-[NSString(LDEventSource) lines] +-[NSString(LDEventSource) hasEventPrefix] +-[NSString(LDEventSource) hasEventTerminator] +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/NSString+LDEventSource.m ++[LDEventParser eventParserWithEventString:] +-[LDEventParser initWithEventString:] +-[LDEventParser parseEventString] +-[LDEventParser linesToParseFromEventString] +-[LDEventParser remainingEventStringAfterParsingEventString] +-[LDEventParser eventString] +-[LDEventParser setEventString:] +-[LDEventParser event] +-[LDEventParser setEvent:] +-[LDEventParser retryInterval] +-[LDEventParser setRetryInterval:] +-[LDEventParser remainingEventString] +-[LDEventParser setRemainingEventString:] +-[LDEventParser .cxx_destruct] +_OBJC_IVAR_$_LDEventParser._eventString +_OBJC_IVAR_$_LDEventParser._event +_OBJC_IVAR_$_LDEventParser._retryInterval +_OBJC_IVAR_$_LDEventParser._remainingEventString +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventParser.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventParser.h +-[LDEventStringAccumulator accumulateEventStringWithString:] +-[LDEventStringAccumulator isReadyToParseEvent] +-[LDEventStringAccumulator reset] +-[LDEventStringAccumulator eventString] +-[LDEventStringAccumulator setEventString:] +-[LDEventStringAccumulator .cxx_destruct] +_OBJC_IVAR_$_LDEventStringAccumulator._eventString +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventStringAccumulator.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventStringAccumulator.h +-[NSArray(LDEventSource) indexOfFirstEmptyLine] +-[NSArray(LDEventSource) subArrayFromIndex:] +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/NSArray+LDEventSource.m +NSMakeRange +/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSRange.h +/Users/markpokorny/Library/Caches/org.carthage.CarthageKit/DerivedData/10.2.1_10E1001/ios-eventsource/4.0.1/Build/Intermediates.noindex/ArchiveIntermediates/DarklyEventSource-iOS/IntermediateBuildFilesPath/LDEventSource.build/Release-iphoneos/DarklyEventSource-iOS.build/DerivedSources/DarklyEventSource_vers.c +__ZL15__ARCLite__loadv +__ZL58__arclite_NSMutableDictionary__setObject_forKeyedSubscriptP19NSMutableDictionaryP13objc_selectorP11objc_objectS4_ +__ZL22add_image_hook_swiftV1PK11mach_headerl +__ZL42__arclite_NSUndoManagerProxy_isKindOfClassP11objc_objectP13objc_selectorP10objc_class +__ZL30__arclite_NSManagedObject_initP11objc_objectP13objc_selector +__ZL41__arclite_NSManagedObject_allocWithEntityP11objc_objectP13objc_selectorS0_ +__ZL36__arclite_NSManagedObject_allocBatchP11objc_objectP13objc_selectorPS0_S0_j +__ZL37__arclite_NSKKMS_fastIndexForKnownKeyP11objc_objectP13objc_selectorS0_ +__ZL28__arclite_NSKKMS_indexForKeyP11objc_objectP13objc_selectorS0_ +__ZL29__arclite_NSKKsD_objectForKeyP11objc_objectP13objc_selectorS0_ +__ZL35__arclite_NSKKsD_removeObjectForKeyP11objc_objectP13objc_selectorS0_ +__ZL33__arclite_NSKKsD_setObject_forKeyP11objc_objectP13objc_selectorS0_S0_ +__ZL41__arclite_NSKKsD_addEntriesFromDictionaryP11objc_objectP13objc_selectorP12NSDictionary +__ZL28__arclite_objc_readClassPairP10objc_classPK15objc_image_info +__ZL32__arclite_objc_allocateClassPairP10objc_classPKcm +__ZL32__arclite_object_getIndexedIvarsP11objc_object +__ZL23__arclite_objc_getClassPKc +__ZL27__arclite_objc_getMetaClassPKc +__ZL31__arclite_objc_getRequiredClassPKc +__ZL26__arclite_objc_lookUpClassPKc +__ZL26__arclite_objc_getProtocolPKc +__ZL23__arclite_class_getNameP10objc_class +__ZL26__arclite_protocol_getNameP8Protocol +__ZL37__arclite_objc_copyClassNamesForImagePKcPj +__ZL17transcribeMethodsP10objc_classP15glue_class_ro_t +__ZL19transcribeProtocolsP10objc_classP15glue_class_ro_t +__ZL20transcribePropertiesP10objc_classP15glue_class_ro_t +__ZL14initialize_impP11objc_objectP13objc_selector +__ZL18allocateMaybeSwiftP18glue_swift_class_tm +__ZL22copySwiftV1MangledNamePKcb +__ZL13demangledNamePKcb +__ZL16scanMangledFieldRPKcS0_S1_Ri +__ZL30arclite_uninitialized_functionv +__ZL12cxxConstructP11objc_object +__ZL20fixStringForCoreDataP11objc_object +_OBJC_METACLASS_$___ARCLite__ +__ZL24OBJC_CLASS_$___ARCLite__ +__ZL31OBJC_METACLASS_RO_$___ARCLite__ +__non_lazy_classes +__ZL27OBJC_CLASS_RO_$___ARCLite__ +__ZL11_class_name +__ZL32OBJC_$_CLASS_METHODS___ARCLite__ +__ZL17_load_method_name +__ZL17_load_method_type +l_OBJC_PROTOCOL_$___ARCLiteKeyedSubscripting__ +l_OBJC_LABEL_PROTOCOL_$___ARCLiteKeyedSubscripting__ +l_OBJC_PROTOCOL_REFERENCE_$___ARCLiteKeyedSubscripting__ +__ZL30NSUndoManagerProxy_targetClass +__ZL29original_NSManagedObject_init +__ZL40original_NSManagedObject_allocWithEntity +__ZL35original_NSManagedObject_allocBatch +__ZL25NSMutableDictionary_class +__ZL22NSConstantString_class +__ZL14NSString_class +__ZL36original_NSKKMS_fastIndexForKnownKey +__ZL27original_NSKKMS_indexForKey +__ZL28original_NSKKsD_objectForKey +__ZL34original_NSKKsD_removeObjectForKey +__ZL32original_NSKKsD_setObject_forKey +__ZL40original_NSKKsD_addEntriesFromDictionary +__ZZL22add_image_hook_swiftV1PK11mach_headerlE7patches +__ZGVZL22add_image_hook_swiftV1PK11mach_headerlE7patches +__ZL31original_objc_allocateClassPair +__ZL31original_object_getIndexedIvars +__ZL22original_objc_getClass +__ZL26original_objc_getMetaClass +__ZL30original_objc_getRequiredClass +__ZL25original_objc_lookUpClass +__ZL25original_objc_getProtocol +__ZL22original_class_getName +__ZL25original_protocol_getName +__ZL36original_objc_copyClassNamesForImage +__ZL12demangleLock +__ZL9Demangled +/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c++ -arch arm64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=c++11 -Wno-trigraphs -fno-exceptions -fno-rtti -fno-sanitize=vptr -mpascal-strings -Os -Wno-missing-field-initializers -Wmissing-prototypes -Wno-implicit-atomic-properties -Wno-objc-interface-ivars -Wno-arc-repeated-use-of-weak -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector -Wno-deprecated-implementations -Wno-c++11-extensions -D NDEBUG=1 -D OBJC_OLD_DISPATCH_PROTOTYPES=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.Internal.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -miphoneos-version-min=4.3 -g -fno-threadsafe-statics -Wno-sign-conversion -Wno-infinite-recursion -Wno-move -Wno-comma -Wno-block-capture-autoreleasing -Wno-strict-prototypes -Wno-range-loop-analysis -Wno-semicolon-before-method-body -fembed-bitcode=all -iquote /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/arclite_iphoneos-generated-files.hmap -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/arclite_iphoneos-own-target-headers.hmap -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/arclite_iphoneos-all-target-headers.hmap -iquote /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/arclite_iphoneos-project-headers.hmap -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/Symbols/BuiltProducts/include -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/DerivedSources-normal/arm64 -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/DerivedSources/arm64 -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/DerivedSources -F/Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/Symbols/BuiltProducts -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.Internal.sdk/System/Library/PrivateFrameworks -Wall -Wextra -Wno-gcc-compat -Wno-error=incomplete-umbrella -Wno-error=invalid-ios-deployment-target -Wno-error=deprecated-declarations -Wno-error=documentation -Wno-error=incomplete-umbrella -Wno-error=invalid-ios-deployment-target -Wno-error=deprecated-declarations -Wno-error=documentation -MMD -MT dependencies -MF /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/Objects-normal/arm64/arclite.d --serialize-diagnostics /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/Objects-normal/arm64/arclite.dia -c /Library/Caches/com.apple.xbs/Sources/arclite_iOS/arclite-72/source/arclite.mm -o /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/Objects-normal/arm64/arclite.o -Wno-atomic-implicit-seq-cst -Wno-framework-include-private-from-public -Wno-atimport-in-framework-header -Wno-quoted-include-in-framework-header -mlinker-version=450.3 +/Library/Caches/com.apple.xbs/Sources/arclite_iOS/arclite-72/source/arclite.mm +/Library/Caches/com.apple.xbs/Sources/arclite_iOS/arclite-72 +fixStringForCoreData +cxxConstruct +arclite_uninitialized_function +scanMangledField +/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.Internal.sdk/usr/include/_ctype.h +__isctype +demangledName +copySwiftV1DemangledName +copySwiftV1MangledName +allocateMaybeSwift +word_align +isSwift +initialize_imp +transcribeProperties +property_list_nth +transcribeProtocols +transcribeMethods +data +method_list_nth +__arclite_objc_copyClassNamesForImage +__arclite_protocol_getName +__arclite_class_getName +__arclite_objc_getProtocol +__arclite_objc_lookUpClass +__arclite_objc_getRequiredClass +__arclite_objc_getMetaClass +__arclite_objc_getClass +__arclite_object_getIndexedIvars +__arclite_objc_allocateClassPair +metaclass +__arclite_objc_readClassPair +transcribeIvars +ivar_list_nth +max +alignment +ro +fastFlags +__arclite_NSKKsD_addEntriesFromDictionary +__arclite_NSKKsD_setObject_forKey +__arclite_NSKKsD_removeObjectForKey +__arclite_NSKKsD_objectForKey +__arclite_NSKKMS_indexForKey +__arclite_NSKKMS_fastIndexForKnownKey +__arclite_NSManagedObject_allocBatch +__arclite_NSManagedObject_allocWithEntity +__arclite_NSManagedObject_init +__arclite_NSUndoManagerProxy_isKindOfClass +add_image_hook_swiftV1 +patch_lazy_pointers +patch_t +patch_t +patch_t +patch_t +patch_t +patch_t +patch_t +patch_t +__arclite_NSMutableDictionary__setObject_forKeyedSubscript +__ARCLite__load +install_swiftV1 +replaceMethod +install_dict_nil_value +addOrReplaceMethod +keyedGetter diff --git a/Carthage/Build/iOS/C765796E-7DD5-3EF8-A117-72EE7A6E6D3C.bcsymbolmap b/Carthage/Build/iOS/C765796E-7DD5-3EF8-A117-72EE7A6E6D3C.bcsymbolmap new file mode 100644 index 00000000..68d4f0b8 --- /dev/null +++ b/Carthage/Build/iOS/C765796E-7DD5-3EF8-A117-72EE7A6E6D3C.bcsymbolmap @@ -0,0 +1,365 @@ +BCSymbolMap Version: 2.0 ++[LDEventSource eventSourceWithURL:httpHeaders:] ++[LDEventSource eventSourceWithURL:httpHeaders:connectMethod:connectBody:] ++[LDEventSource eventSourceWithURL:httpHeaders:timeoutInterval:connectMethod:connectBody:] +-[LDEventSource initWithURL:httpHeaders:] +-[LDEventSource initWithURL:httpHeaders:connectMethod:connectBody:] +-[LDEventSource initWithURL:httpHeaders:timeoutInterval:connectMethod:connectBody:] +-[LDEventSource addEventListener:handler:] +-[LDEventSource onMessage:] +-[LDEventSource onError:] +-[LDEventSource onOpen:] +-[LDEventSource onReadyStateChanged:] +-[LDEventSource close] +-[LDEventSource URLSession:dataTask:didReceiveResponse:completionHandler:] +-[LDEventSource URLSession:dataTask:didReceiveData:] +-[LDEventSource parseEventString:] +___34-[LDEventSource parseEventString:]_block_invoke +___copy_helper_block_e4_20s24w +___destroy_helper_block_e4_20s24w +-[LDEventSource URLSession:task:didCompleteWithError:] +___54-[LDEventSource URLSession:task:didCompleteWithError:]_block_invoke +___copy_helper_block_e4_20w +___destroy_helper_block_e4_20w +-[LDEventSource eventErrorForTask:errorCode:underlyingError:] +-[LDEventSource responseIsUnauthorizedForTask:] +-[LDEventSource open] +-[LDEventSource _dispatchEvent:type:] +___37-[LDEventSource _dispatchEvent:type:]_block_invoke +___copy_helper_block_e4_20b24s +___destroy_helper_block_e4_20s24s +-[LDEventSource _dispatchEvent:] +-[LDEventSource increaseIntervalWithBackoff] +-[LDEventSource eventURL] +-[LDEventSource setEventURL:] +-[LDEventSource eventSourceTask] +-[LDEventSource setEventSourceTask:] +-[LDEventSource session] +-[LDEventSource setSession:] +-[LDEventSource listeners] +-[LDEventSource setListeners:] +-[LDEventSource timeoutInterval] +-[LDEventSource setTimeoutInterval:] +-[LDEventSource retryInterval] +-[LDEventSource setRetryInterval:] +-[LDEventSource retryAttempt] +-[LDEventSource setRetryAttempt:] +-[LDEventSource httpRequestHeaders] +-[LDEventSource setHttpRequestHeaders:] +-[LDEventSource connectMethod] +-[LDEventSource setConnectMethod:] +-[LDEventSource connectBody] +-[LDEventSource setConnectBody:] +-[LDEventSource lastEventID] +-[LDEventSource setLastEventID:] +-[LDEventSource eventStringAccumulator] +-[LDEventSource setEventStringAccumulator:] +-[LDEventSource .cxx_destruct] +-[LDEvent description] +-[LDEvent copyWithZone:] +-[LDEvent id] +-[LDEvent setId:] +-[LDEvent event] +-[LDEvent setEvent:] +-[LDEvent data] +-[LDEvent setData:] +-[LDEvent readyState] +-[LDEvent setReadyState:] +-[LDEvent error] +-[LDEvent setError:] +-[LDEvent .cxx_destruct] +_OBJC_IVAR_$_LDEventSource.messageQueue +_OBJC_IVAR_$_LDEventSource.connectionQueue +_OBJC_IVAR_$_LDEventSource.wasClosed +_OBJC_IVAR_$_LDEventSource._retryAttempt +___block_descriptor_28_e4_20s24w_e5_v4@?0l +___block_descriptor_24_e4_20w_e5_v4@?0l +___block_descriptor_28_e4_20bs24s_e5_v4@?0l +_OBJC_IVAR_$_LDEventSource._retryInterval +_OBJC_IVAR_$_LDEventSource._eventURL +_OBJC_IVAR_$_LDEventSource._eventSourceTask +_OBJC_IVAR_$_LDEventSource._session +_OBJC_IVAR_$_LDEventSource._listeners +_OBJC_IVAR_$_LDEventSource._timeoutInterval +_OBJC_IVAR_$_LDEventSource._httpRequestHeaders +_OBJC_IVAR_$_LDEventSource._connectMethod +_OBJC_IVAR_$_LDEventSource._connectBody +_OBJC_IVAR_$_LDEventSource._lastEventID +_OBJC_IVAR_$_LDEventSource._eventStringAccumulator +l_OBJC_PROTOCOL_$_NSObject +l_OBJC_LABEL_PROTOCOL_$_NSObject +l_OBJC_PROTOCOL_$_NSURLSessionDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionDelegate +l_OBJC_PROTOCOL_$_NSURLSessionTaskDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionTaskDelegate +l_OBJC_PROTOCOL_$_NSURLSessionDataDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionDataDelegate +_OBJC_IVAR_$_LDEvent._id +_OBJC_IVAR_$_LDEvent._event +_OBJC_IVAR_$_LDEvent._data +_OBJC_IVAR_$_LDEvent._readyState +_OBJC_IVAR_$_LDEvent._error +l_OBJC_PROTOCOL_$_NSCopying +l_OBJC_LABEL_PROTOCOL_$_NSCopying +Apple LLVM version 10.0.1 (clang-1001.0.46.4) +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventSource.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventSource.h +__destroy_helper_block_e4_20s24s +__copy_helper_block_e4_20b24s +__37-[LDEventSource _dispatchEvent:type:]_block_invoke +__destroy_helper_block_e4_20w +__copy_helper_block_e4_20w +__54-[LDEventSource URLSession:task:didCompleteWithError:]_block_invoke +__destroy_helper_block_e4_20s24w +__copy_helper_block_e4_20s24w +__34-[LDEventSource parseEventString:]_block_invoke +-[NSString(LDEventSource) lines] +-[NSString(LDEventSource) hasEventPrefix] +-[NSString(LDEventSource) hasEventTerminator] +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/NSString+LDEventSource.m ++[LDEventParser eventParserWithEventString:] +-[LDEventParser initWithEventString:] +-[LDEventParser parseEventString] +-[LDEventParser linesToParseFromEventString] +-[LDEventParser remainingEventStringAfterParsingEventString] +-[LDEventParser eventString] +-[LDEventParser setEventString:] +-[LDEventParser event] +-[LDEventParser setEvent:] +-[LDEventParser retryInterval] +-[LDEventParser setRetryInterval:] +-[LDEventParser remainingEventString] +-[LDEventParser setRemainingEventString:] +-[LDEventParser .cxx_destruct] +_OBJC_IVAR_$_LDEventParser._eventString +_OBJC_IVAR_$_LDEventParser._event +_OBJC_IVAR_$_LDEventParser._retryInterval +_OBJC_IVAR_$_LDEventParser._remainingEventString +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventParser.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventParser.h +-[LDEventStringAccumulator accumulateEventStringWithString:] +-[LDEventStringAccumulator isReadyToParseEvent] +-[LDEventStringAccumulator reset] +-[LDEventStringAccumulator eventString] +-[LDEventStringAccumulator setEventString:] +-[LDEventStringAccumulator .cxx_destruct] +_OBJC_IVAR_$_LDEventStringAccumulator._eventString +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventStringAccumulator.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventStringAccumulator.h +-[NSArray(LDEventSource) indexOfFirstEmptyLine] +-[NSArray(LDEventSource) subArrayFromIndex:] +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/NSArray+LDEventSource.m +/Users/markpokorny/Library/Caches/org.carthage.CarthageKit/DerivedData/10.2.1_10E1001/ios-eventsource/4.0.1/Build/Intermediates.noindex/ArchiveIntermediates/DarklyEventSource-iOS/IntermediateBuildFilesPath/LDEventSource.build/Release-iphoneos/DarklyEventSource-iOS.build/DerivedSources/DarklyEventSource_vers.c +__ZL15__ARCLite__loadv +__ZL30add_image_hook_autoreleasepoolPK11mach_headerl +__ZL34__arclite_objc_autoreleasePoolPushv +__ZL33__arclite_objc_autoreleasePoolPopPv +__ZL19patch_lazy_pointersPK11mach_headerP7patch_tm +__ZL42__arclite_NSArray_objectAtIndexedSubscriptP7NSArrayP13objc_selectorj +__ZL53__arclite_NSMutableArray_setObject_atIndexedSubscriptP14NSMutableArrayP13objc_selectorP11objc_objectj +__ZL46__arclite_NSDictionary_objectForKeyedSubscriptP12NSDictionaryP13objc_selectorP11objc_object +__ZL47__arclite_NSOrderedSet_objectAtIndexedSubscriptP12NSOrderedSetP13objc_selectorj +__ZL58__arclite_NSMutableOrderedSet_setObject_atIndexedSubscriptP19NSMutableOrderedSetP13objc_selectorP11objc_objectj +__ZL58__arclite_NSMutableDictionary__setObject_forKeyedSubscriptP19NSMutableDictionaryP13objc_selectorP11objc_objectS4_ +__ZL18add_image_hook_ARCPK11mach_headerl +__ZL36__arclite_object_setInstanceVariableP11objc_objectPKcPv +__ZL24__arclite_object_setIvarP11objc_objectP9objc_ivarS0_ +__ZL21__arclite_object_copyP11objc_objectm +__ZL21__arclite_objc_retainP11objc_object +__ZL26__arclite_objc_retainBlockP11objc_object +__ZL22__arclite_objc_releaseP11objc_object +__ZL26__arclite_objc_autoreleaseP11objc_object +__ZL32__arclite_objc_retainAutoreleaseP11objc_object +__ZL37__arclite_objc_autoreleaseReturnValueP11objc_object +__ZL43__arclite_objc_retainAutoreleaseReturnValueP11objc_object +__ZL44__arclite_objc_retainAutoreleasedReturnValueP11objc_object +__ZL26__arclite_objc_storeStrongPP11objc_objectS0_ +__ZL22add_image_hook_swiftV1PK11mach_headerl +__ZL42__arclite_NSUndoManagerProxy_isKindOfClassP11objc_objectP13objc_selectorP10objc_class +__ZL30__arclite_NSManagedObject_initP11objc_objectP13objc_selector +__ZL41__arclite_NSManagedObject_allocWithEntityP11objc_objectP13objc_selectorS0_ +__ZL36__arclite_NSManagedObject_allocBatchP11objc_objectP13objc_selectorPS0_S0_j +__ZL37__arclite_NSKKMS_fastIndexForKnownKeyP11objc_objectP13objc_selectorS0_ +__ZL28__arclite_NSKKMS_indexForKeyP11objc_objectP13objc_selectorS0_ +__ZL29__arclite_NSKKsD_objectForKeyP11objc_objectP13objc_selectorS0_ +__ZL35__arclite_NSKKsD_removeObjectForKeyP11objc_objectP13objc_selectorS0_ +__ZL33__arclite_NSKKsD_setObject_forKeyP11objc_objectP13objc_selectorS0_S0_ +__ZL41__arclite_NSKKsD_addEntriesFromDictionaryP11objc_objectP13objc_selectorP12NSDictionary +__ZL28__arclite_objc_readClassPairP10objc_classPK15objc_image_info +__ZL32__arclite_objc_allocateClassPairP10objc_classPKcm +__ZL32__arclite_object_getIndexedIvarsP11objc_object +__ZL23__arclite_objc_getClassPKc +__ZL27__arclite_objc_getMetaClassPKc +__ZL31__arclite_objc_getRequiredClassPKc +__ZL26__arclite_objc_lookUpClassPKc +__ZL26__arclite_objc_getProtocolPKc +__ZL23__arclite_class_getNameP10objc_class +__ZL26__arclite_protocol_getNameP8Protocol +__ZL37__arclite_objc_copyClassNamesForImagePKcPj +__ZL17transcribeMethodsP10objc_classP15glue_class_ro_t +__ZL19transcribeProtocolsP10objc_classP15glue_class_ro_t +__ZL20transcribePropertiesP10objc_classP15glue_class_ro_t +__ZL14initialize_impP11objc_objectP13objc_selector +__ZL18allocateMaybeSwiftP18glue_swift_class_tm +__ZL22copySwiftV1MangledNamePKcb +__ZL13demangledNamePKcb +__ZL16scanMangledFieldRPKcS0_S1_Ri +__ZL30arclite_uninitialized_functionv +__ZL12cxxConstructP11objc_object +__ZL20fixStringForCoreDataP11objc_object +_OBJC_METACLASS_$___ARCLite__ +__ZL24OBJC_CLASS_$___ARCLite__ +__ZL31OBJC_METACLASS_RO_$___ARCLite__ +__non_lazy_classes +__ZL27OBJC_CLASS_RO_$___ARCLite__ +__ZL11_class_name +__ZL32OBJC_$_CLASS_METHODS___ARCLite__ +__ZL17_load_method_name +__ZL17_load_method_type +__ZL23NSAutoreleasePool_class +__ZZL30add_image_hook_autoreleasepoolPK11mach_headerlE7patches +__ZGVZL30add_image_hook_autoreleasepoolPK11mach_headerlE7patches +l_OBJC_PROTOCOL_$___ARCLiteIndexedSubscripting__ +l_OBJC_LABEL_PROTOCOL_$___ARCLiteIndexedSubscripting__ +l_OBJC_PROTOCOL_REFERENCE_$___ARCLiteIndexedSubscripting__ +l_OBJC_PROTOCOL_$___ARCLiteKeyedSubscripting__ +l_OBJC_LABEL_PROTOCOL_$___ARCLiteKeyedSubscripting__ +l_OBJC_PROTOCOL_REFERENCE_$___ARCLiteKeyedSubscripting__ +__ZZL18add_image_hook_ARCPK11mach_headerlE7patches +__ZGVZL18add_image_hook_ARCPK11mach_headerlE7patches +__ZL30NSUndoManagerProxy_targetClass +__ZL29original_NSManagedObject_init +__ZL40original_NSManagedObject_allocWithEntity +__ZL35original_NSManagedObject_allocBatch +__ZL25NSMutableDictionary_class +__ZL22NSConstantString_class +__ZL14NSString_class +__ZL36original_NSKKMS_fastIndexForKnownKey +__ZL27original_NSKKMS_indexForKey +__ZL28original_NSKKsD_objectForKey +__ZL34original_NSKKsD_removeObjectForKey +__ZL32original_NSKKsD_setObject_forKey +__ZL40original_NSKKsD_addEntriesFromDictionary +__ZZL22add_image_hook_swiftV1PK11mach_headerlE7patches +__ZGVZL22add_image_hook_swiftV1PK11mach_headerlE7patches +__ZL31original_objc_allocateClassPair +__ZL31original_object_getIndexedIvars +__ZL22original_objc_getClass +__ZL26original_objc_getMetaClass +__ZL30original_objc_getRequiredClass +__ZL25original_objc_lookUpClass +__ZL25original_objc_getProtocol +__ZL22original_class_getName +__ZL25original_protocol_getName +__ZL36original_objc_copyClassNamesForImage +__ZL12demangleLock +__ZL9Demangled +/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c++ -arch armv7 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=c++11 -Wno-trigraphs -fno-exceptions -fno-rtti -fno-sanitize=vptr -mpascal-strings -Os -Wno-missing-field-initializers -Wmissing-prototypes -Wno-implicit-atomic-properties -Wno-objc-interface-ivars -Wno-arc-repeated-use-of-weak -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector -Wno-deprecated-implementations -Wno-c++11-extensions -D NDEBUG=1 -D OBJC_OLD_DISPATCH_PROTOTYPES=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.Internal.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -miphoneos-version-min=4.3 -g -fno-threadsafe-statics -Wno-sign-conversion -Wno-infinite-recursion -Wno-move -Wno-comma -Wno-block-capture-autoreleasing -Wno-strict-prototypes -Wno-range-loop-analysis -Wno-semicolon-before-method-body -fembed-bitcode=all -iquote /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/arclite_iphoneos-generated-files.hmap -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/arclite_iphoneos-own-target-headers.hmap -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/arclite_iphoneos-all-target-headers.hmap -iquote /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/arclite_iphoneos-project-headers.hmap -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/Symbols/BuiltProducts/include -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/DerivedSources-normal/armv7 -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/DerivedSources/armv7 -I /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/DerivedSources -F/Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/Symbols/BuiltProducts -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.Internal.sdk/System/Library/PrivateFrameworks -Wall -Wextra -Wno-gcc-compat -Wno-error=incomplete-umbrella -Wno-error=invalid-ios-deployment-target -Wno-error=deprecated-declarations -Wno-error=documentation -Wno-error=incomplete-umbrella -Wno-error=invalid-ios-deployment-target -Wno-error=deprecated-declarations -Wno-error=documentation -MMD -MT dependencies -MF /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/Objects-normal/armv7/arclite.d --serialize-diagnostics /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/Objects-normal/armv7/arclite.dia -c /Library/Caches/com.apple.xbs/Sources/arclite_iOS/arclite-72/source/arclite.mm -o /Library/Caches/com.apple.xbs/Binaries/arclite_iOS/install/TempContent/Objects/arclite.build/arclite_iOS.build/Objects-normal/armv7/arclite.o -Wno-atomic-implicit-seq-cst -Wno-framework-include-private-from-public -Wno-atimport-in-framework-header -Wno-quoted-include-in-framework-header -mlinker-version=450.3 -march=armv7a +/Library/Caches/com.apple.xbs/Sources/arclite_iOS/arclite-72/source/arclite.mm +/Library/Caches/com.apple.xbs/Sources/arclite_iOS/arclite-72 +fixStringForCoreData +cxxConstruct +arclite_uninitialized_function +scanMangledField +/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.Internal.sdk/usr/include/_ctype.h +__isctype +demangledName +copySwiftV1DemangledName +copySwiftV1MangledName +allocateMaybeSwift +word_align +isSwift +initialize_imp +transcribeProperties +property_list_nth +transcribeProtocols +transcribeMethods +data +method_list_nth +__arclite_objc_copyClassNamesForImage +__arclite_protocol_getName +__arclite_class_getName +__arclite_objc_getProtocol +__arclite_objc_lookUpClass +__arclite_objc_getRequiredClass +__arclite_objc_getMetaClass +__arclite_objc_getClass +__arclite_object_getIndexedIvars +__arclite_objc_allocateClassPair +metaclass +__arclite_objc_readClassPair +transcribeIvars +ivar_list_nth +max +alignment +ro +fastFlags +__arclite_NSKKsD_addEntriesFromDictionary +__arclite_NSKKsD_setObject_forKey +__arclite_NSKKsD_removeObjectForKey +__arclite_NSKKsD_objectForKey +__arclite_NSKKMS_indexForKey +__arclite_NSKKMS_fastIndexForKnownKey +__arclite_NSManagedObject_allocBatch +__arclite_NSManagedObject_allocWithEntity +__arclite_NSManagedObject_init +__arclite_NSUndoManagerProxy_isKindOfClass +add_image_hook_swiftV1 +patch_t +patch_t +patch_t +patch_t +patch_t +patch_t +patch_t +patch_t +__arclite_objc_storeStrong +__arclite_objc_release +__arclite_objc_retain +__arclite_objc_retainAutoreleasedReturnValue +__arclite_objc_retainAutoreleaseReturnValue +__arclite_objc_autoreleaseReturnValue +__arclite_objc_retainAutorelease +__arclite_objc_autorelease +__arclite_objc_retainBlock +__arclite_object_copy +fixupCopiedReferences +_class_getInstanceStart +alignedInstanceStart +__arclite_class_usesAutomaticRetainRelease +classOrSuperClassesUseARR +__arclite_object_setIvar +isScannedOffset +_ivar_getClass +__arclite_object_setInstanceVariable +add_image_hook_ARC +patch_t +patch_t +patch_t +patch_t +patch_t +patch_t +__arclite_NSMutableDictionary__setObject_forKeyedSubscript +__arclite_NSMutableOrderedSet_setObject_atIndexedSubscript +__arclite_NSOrderedSet_objectAtIndexedSubscript +__arclite_NSDictionary_objectForKeyedSubscript +__arclite_NSMutableArray_setObject_atIndexedSubscript +__arclite_NSArray_objectAtIndexedSubscript +patch_lazy_pointers +__arclite_objc_autoreleasePoolPop +__arclite_objc_autoreleasePoolPush +add_image_hook_autoreleasepool +patch_t +patch_t +__ARCLite__load +install_swiftV1 +replaceMethod +install_ARC +install_dict_nil_value +addOrReplaceMethod +keyedGetter +install_subscripting +addMethod +indexedGetter +install_autoreleasepool diff --git a/Carthage/Build/iOS/DarklyEventSource.framework.dSYM/Contents/Info.plist b/Carthage/Build/iOS/DarklyEventSource.framework.dSYM/Contents/Info.plist new file mode 100644 index 00000000..a481cb27 --- /dev/null +++ b/Carthage/Build/iOS/DarklyEventSource.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.com.launchdarkly.EventSource + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 4.0.1 + CFBundleVersion + 1 + + diff --git a/Carthage/Build/iOS/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource b/Carthage/Build/iOS/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource new file mode 100644 index 00000000..7ef11038 Binary files /dev/null and b/Carthage/Build/iOS/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource differ diff --git a/Carthage/Build/iOS/DarklyEventSource.framework/DarklyEventSource b/Carthage/Build/iOS/DarklyEventSource.framework/DarklyEventSource new file mode 100755 index 00000000..2aa6c3ce Binary files /dev/null and b/Carthage/Build/iOS/DarklyEventSource.framework/DarklyEventSource differ diff --git a/Carthage/Build/iOS/DarklyEventSource.framework/Headers/DarklyEventSource.h b/Carthage/Build/iOS/DarklyEventSource.framework/Headers/DarklyEventSource.h new file mode 100644 index 00000000..7a49426b --- /dev/null +++ b/Carthage/Build/iOS/DarklyEventSource.framework/Headers/DarklyEventSource.h @@ -0,0 +1,11 @@ +// +// DarklyEventSource.h +// DarklyEventSource +// +// Created by Mark Pokorny on 12/1/17. +JMJ +// Copyright © 2017 Catamorphic Co. All rights reserved. +// + +#import + +#import diff --git a/Carthage/Build/iOS/DarklyEventSource.framework/Headers/LDEventSource.h b/Carthage/Build/iOS/DarklyEventSource.framework/Headers/LDEventSource.h new file mode 100644 index 00000000..b4f910aa --- /dev/null +++ b/Carthage/Build/iOS/DarklyEventSource.framework/Headers/LDEventSource.h @@ -0,0 +1,148 @@ +// +// LDEventSource.h +// LDEventSource +// +// Created by Neil on 25/07/2013. +// Copyright (c) 2013 Neil Cowburn. All rights reserved. +// + +#import + +typedef enum { + kEventStateConnecting = 0, + kEventStateOpen = 1, + kEventStateClosed = 2, +} LDEventState; + +NS_ASSUME_NONNULL_BEGIN + +extern NSString *const LDEventSourceErrorDomain; + +// --------------------------------------------------------------------------------------------------------------------- + +/// Describes an Event received from an EventSource +@interface LDEvent : NSObject + +/// The Event ID +@property (nonatomic, strong, nullable) id id; +/// The name of the Event +@property (nonatomic, strong, nullable) NSString *event; +/// The data received from the EventSource +@property (nonatomic, strong, nullable) NSString *data; + +/// The current state of the connection to the EventSource +@property (nonatomic, assign) LDEventState readyState; +/// Provides details of any errors with the connection to the EventSource +@property (nonatomic, strong, nullable) NSError *error; + +-(id)copyWithZone:(nullable NSZone*)zone; +@end + +// --------------------------------------------------------------------------------------------------------------------- + +typedef void (^LDEventSourceEventHandler)(LDEvent * _Nullable event); + +// --------------------------------------------------------------------------------------------------------------------- + +/// Connect to and receive Server-Sent Events (SSEs). +@interface LDEventSource : NSObject + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included ++ (instancetype)eventSourceWithURL:(NSURL *)URL httpHeaders:(nullable NSDictionary*) headers; + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil ++ (instancetype)eventSourceWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param timeoutInterval The request timeout interval in seconds. See NSURLRequest for more details. Default: 5 minutes. +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil ++ (instancetype)eventSourceWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + timeoutInterval:(NSTimeInterval)timeoutInterval + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +- (instancetype)initWithURL:(NSURL *)URL httpHeaders:(nullable NSDictionary*) headers; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil +- (instancetype)initWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param timeoutInterval The request timeout interval in seconds. See NSURLRequest for more details. Default: 5 minutes. +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil +- (instancetype)initWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + timeoutInterval:(NSTimeInterval)timeoutInterval + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Registers an event handler for the Message event. +/// +/// @param handler The handler for the Message event. +- (void)onMessage:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for the Error event. +/// +/// @param handler The handler for the Error event. +- (void)onError:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for the Open event. +/// +/// @param handler The handler for the Open event. +- (void)onOpen:(LDEventSourceEventHandler)handler; + +- (void)onReadyStateChanged:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for a named event. +/// +/// @param eventName The name of the event you registered. +/// @param handler The handler for the Message event. +- (void)addEventListener:(NSString *)eventName handler:(LDEventSourceEventHandler)handler; + +/// Opens the connection to the EventSource. +- (void)open; + +/// Closes the connection to the EventSource. +- (void)close; + +@end + +// --------------------------------------------------------------------------------------------------------------------- + +extern NSString *const MessageEvent; +extern NSString *const ErrorEvent; +extern NSString *const OpenEvent; +extern NSString *const ReadyStateEvent; + +NS_ASSUME_NONNULL_END diff --git a/Carthage/Build/iOS/DarklyEventSource.framework/Info.plist b/Carthage/Build/iOS/DarklyEventSource.framework/Info.plist new file mode 100644 index 00000000..1b15c1e9 Binary files /dev/null and b/Carthage/Build/iOS/DarklyEventSource.framework/Info.plist differ diff --git a/Carthage/Build/iOS/DarklyEventSource.framework/Modules/module.modulemap b/Carthage/Build/iOS/DarklyEventSource.framework/Modules/module.modulemap new file mode 100644 index 00000000..2545245b --- /dev/null +++ b/Carthage/Build/iOS/DarklyEventSource.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module DarklyEventSource { + umbrella header "DarklyEventSource.h" + + export * + module * { export * } +} diff --git a/Carthage/Build/tvOS/DE6D6BB5-5105-34AF-95E8-37838356D5BB.bcsymbolmap b/Carthage/Build/tvOS/DE6D6BB5-5105-34AF-95E8-37838356D5BB.bcsymbolmap new file mode 100644 index 00000000..edf7f19f --- /dev/null +++ b/Carthage/Build/tvOS/DE6D6BB5-5105-34AF-95E8-37838356D5BB.bcsymbolmap @@ -0,0 +1,155 @@ +BCSymbolMap Version: 2.0 ++[LDEventSource eventSourceWithURL:httpHeaders:] ++[LDEventSource eventSourceWithURL:httpHeaders:connectMethod:connectBody:] ++[LDEventSource eventSourceWithURL:httpHeaders:timeoutInterval:connectMethod:connectBody:] +-[LDEventSource initWithURL:httpHeaders:] +-[LDEventSource initWithURL:httpHeaders:connectMethod:connectBody:] +-[LDEventSource initWithURL:httpHeaders:timeoutInterval:connectMethod:connectBody:] +-[LDEventSource addEventListener:handler:] +-[LDEventSource onMessage:] +-[LDEventSource onError:] +-[LDEventSource onOpen:] +-[LDEventSource onReadyStateChanged:] +-[LDEventSource close] +-[LDEventSource URLSession:dataTask:didReceiveResponse:completionHandler:] +-[LDEventSource URLSession:dataTask:didReceiveData:] +-[LDEventSource parseEventString:] +___34-[LDEventSource parseEventString:]_block_invoke +___copy_helper_block_e8_32s40w +___destroy_helper_block_e8_32s40w +-[LDEventSource URLSession:task:didCompleteWithError:] +___54-[LDEventSource URLSession:task:didCompleteWithError:]_block_invoke +___copy_helper_block_e8_32w +___destroy_helper_block_e8_32w +-[LDEventSource eventErrorForTask:errorCode:underlyingError:] +-[LDEventSource responseIsUnauthorizedForTask:] +-[LDEventSource open] +-[LDEventSource _dispatchEvent:type:] +___37-[LDEventSource _dispatchEvent:type:]_block_invoke +___copy_helper_block_e8_32b40s +___destroy_helper_block_e8_32s40s +-[LDEventSource _dispatchEvent:] +-[LDEventSource increaseIntervalWithBackoff] +-[LDEventSource eventURL] +-[LDEventSource setEventURL:] +-[LDEventSource eventSourceTask] +-[LDEventSource setEventSourceTask:] +-[LDEventSource session] +-[LDEventSource setSession:] +-[LDEventSource listeners] +-[LDEventSource setListeners:] +-[LDEventSource timeoutInterval] +-[LDEventSource setTimeoutInterval:] +-[LDEventSource retryInterval] +-[LDEventSource setRetryInterval:] +-[LDEventSource retryAttempt] +-[LDEventSource setRetryAttempt:] +-[LDEventSource httpRequestHeaders] +-[LDEventSource setHttpRequestHeaders:] +-[LDEventSource connectMethod] +-[LDEventSource setConnectMethod:] +-[LDEventSource connectBody] +-[LDEventSource setConnectBody:] +-[LDEventSource lastEventID] +-[LDEventSource setLastEventID:] +-[LDEventSource eventStringAccumulator] +-[LDEventSource setEventStringAccumulator:] +-[LDEventSource .cxx_destruct] +-[LDEvent description] +-[LDEvent copyWithZone:] +-[LDEvent id] +-[LDEvent setId:] +-[LDEvent event] +-[LDEvent setEvent:] +-[LDEvent data] +-[LDEvent setData:] +-[LDEvent readyState] +-[LDEvent setReadyState:] +-[LDEvent error] +-[LDEvent setError:] +-[LDEvent .cxx_destruct] +_OBJC_IVAR_$_LDEventSource.messageQueue +_OBJC_IVAR_$_LDEventSource.connectionQueue +_OBJC_IVAR_$_LDEventSource.wasClosed +_OBJC_IVAR_$_LDEventSource._retryAttempt +___block_descriptor_48_e8_32s40w_e5_v8@?0l +___block_descriptor_40_e8_32w_e5_v8@?0l +___block_descriptor_48_e8_32bs40s_e5_v8@?0l +_OBJC_IVAR_$_LDEventSource._retryInterval +_OBJC_IVAR_$_LDEventSource._eventURL +_OBJC_IVAR_$_LDEventSource._eventSourceTask +_OBJC_IVAR_$_LDEventSource._session +_OBJC_IVAR_$_LDEventSource._listeners +_OBJC_IVAR_$_LDEventSource._timeoutInterval +_OBJC_IVAR_$_LDEventSource._httpRequestHeaders +_OBJC_IVAR_$_LDEventSource._connectMethod +_OBJC_IVAR_$_LDEventSource._connectBody +_OBJC_IVAR_$_LDEventSource._lastEventID +_OBJC_IVAR_$_LDEventSource._eventStringAccumulator +l_OBJC_PROTOCOL_$_NSObject +l_OBJC_LABEL_PROTOCOL_$_NSObject +l_OBJC_PROTOCOL_$_NSURLSessionDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionDelegate +l_OBJC_PROTOCOL_$_NSURLSessionTaskDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionTaskDelegate +l_OBJC_PROTOCOL_$_NSURLSessionDataDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionDataDelegate +_OBJC_IVAR_$_LDEvent._id +_OBJC_IVAR_$_LDEvent._event +_OBJC_IVAR_$_LDEvent._data +_OBJC_IVAR_$_LDEvent._readyState +_OBJC_IVAR_$_LDEvent._error +l_OBJC_PROTOCOL_$_NSCopying +l_OBJC_LABEL_PROTOCOL_$_NSCopying +Apple LLVM version 10.0.1 (clang-1001.0.46.4) +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventSource.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventSource.h +__destroy_helper_block_e8_32s40s +__copy_helper_block_e8_32b40s +__37-[LDEventSource _dispatchEvent:type:]_block_invoke +__destroy_helper_block_e8_32w +__copy_helper_block_e8_32w +__54-[LDEventSource URLSession:task:didCompleteWithError:]_block_invoke +__destroy_helper_block_e8_32s40w +__copy_helper_block_e8_32s40w +__34-[LDEventSource parseEventString:]_block_invoke +-[NSString(LDEventSource) lines] +-[NSString(LDEventSource) hasEventPrefix] +-[NSString(LDEventSource) hasEventTerminator] +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/NSString+LDEventSource.m ++[LDEventParser eventParserWithEventString:] +-[LDEventParser initWithEventString:] +-[LDEventParser parseEventString] +-[LDEventParser linesToParseFromEventString] +-[LDEventParser remainingEventStringAfterParsingEventString] +-[LDEventParser eventString] +-[LDEventParser setEventString:] +-[LDEventParser event] +-[LDEventParser setEvent:] +-[LDEventParser retryInterval] +-[LDEventParser setRetryInterval:] +-[LDEventParser remainingEventString] +-[LDEventParser setRemainingEventString:] +-[LDEventParser .cxx_destruct] +_OBJC_IVAR_$_LDEventParser._eventString +_OBJC_IVAR_$_LDEventParser._event +_OBJC_IVAR_$_LDEventParser._retryInterval +_OBJC_IVAR_$_LDEventParser._remainingEventString +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventParser.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventParser.h +-[LDEventStringAccumulator accumulateEventStringWithString:] +-[LDEventStringAccumulator isReadyToParseEvent] +-[LDEventStringAccumulator reset] +-[LDEventStringAccumulator eventString] +-[LDEventStringAccumulator setEventString:] +-[LDEventStringAccumulator .cxx_destruct] +_OBJC_IVAR_$_LDEventStringAccumulator._eventString +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventStringAccumulator.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventStringAccumulator.h +-[NSArray(LDEventSource) indexOfFirstEmptyLine] +-[NSArray(LDEventSource) subArrayFromIndex:] +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/NSArray+LDEventSource.m +NSMakeRange +/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.2.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSRange.h +/Users/markpokorny/Library/Caches/org.carthage.CarthageKit/DerivedData/10.2.1_10E1001/ios-eventsource/4.0.1/Build/Intermediates.noindex/ArchiveIntermediates/DarklyEventSource-tvOS/IntermediateBuildFilesPath/LDEventSource.build/Release-appletvos/DarklyEventSource-tvOS.build/DerivedSources/DarklyEventSource_vers.c diff --git a/Carthage/Build/tvOS/DarklyEventSource.framework.dSYM/Contents/Info.plist b/Carthage/Build/tvOS/DarklyEventSource.framework.dSYM/Contents/Info.plist new file mode 100644 index 00000000..a481cb27 --- /dev/null +++ b/Carthage/Build/tvOS/DarklyEventSource.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.com.launchdarkly.EventSource + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 4.0.1 + CFBundleVersion + 1 + + diff --git a/Carthage/Build/tvOS/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource b/Carthage/Build/tvOS/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource new file mode 100644 index 00000000..00bc9a94 Binary files /dev/null and b/Carthage/Build/tvOS/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource differ diff --git a/Carthage/Build/tvOS/DarklyEventSource.framework/DarklyEventSource b/Carthage/Build/tvOS/DarklyEventSource.framework/DarklyEventSource new file mode 100755 index 00000000..7654e97d Binary files /dev/null and b/Carthage/Build/tvOS/DarklyEventSource.framework/DarklyEventSource differ diff --git a/Carthage/Build/tvOS/DarklyEventSource.framework/Headers/DarklyEventSource.h b/Carthage/Build/tvOS/DarklyEventSource.framework/Headers/DarklyEventSource.h new file mode 100644 index 00000000..7a49426b --- /dev/null +++ b/Carthage/Build/tvOS/DarklyEventSource.framework/Headers/DarklyEventSource.h @@ -0,0 +1,11 @@ +// +// DarklyEventSource.h +// DarklyEventSource +// +// Created by Mark Pokorny on 12/1/17. +JMJ +// Copyright © 2017 Catamorphic Co. All rights reserved. +// + +#import + +#import diff --git a/Carthage/Build/tvOS/DarklyEventSource.framework/Headers/LDEventSource.h b/Carthage/Build/tvOS/DarklyEventSource.framework/Headers/LDEventSource.h new file mode 100644 index 00000000..b4f910aa --- /dev/null +++ b/Carthage/Build/tvOS/DarklyEventSource.framework/Headers/LDEventSource.h @@ -0,0 +1,148 @@ +// +// LDEventSource.h +// LDEventSource +// +// Created by Neil on 25/07/2013. +// Copyright (c) 2013 Neil Cowburn. All rights reserved. +// + +#import + +typedef enum { + kEventStateConnecting = 0, + kEventStateOpen = 1, + kEventStateClosed = 2, +} LDEventState; + +NS_ASSUME_NONNULL_BEGIN + +extern NSString *const LDEventSourceErrorDomain; + +// --------------------------------------------------------------------------------------------------------------------- + +/// Describes an Event received from an EventSource +@interface LDEvent : NSObject + +/// The Event ID +@property (nonatomic, strong, nullable) id id; +/// The name of the Event +@property (nonatomic, strong, nullable) NSString *event; +/// The data received from the EventSource +@property (nonatomic, strong, nullable) NSString *data; + +/// The current state of the connection to the EventSource +@property (nonatomic, assign) LDEventState readyState; +/// Provides details of any errors with the connection to the EventSource +@property (nonatomic, strong, nullable) NSError *error; + +-(id)copyWithZone:(nullable NSZone*)zone; +@end + +// --------------------------------------------------------------------------------------------------------------------- + +typedef void (^LDEventSourceEventHandler)(LDEvent * _Nullable event); + +// --------------------------------------------------------------------------------------------------------------------- + +/// Connect to and receive Server-Sent Events (SSEs). +@interface LDEventSource : NSObject + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included ++ (instancetype)eventSourceWithURL:(NSURL *)URL httpHeaders:(nullable NSDictionary*) headers; + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil ++ (instancetype)eventSourceWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param timeoutInterval The request timeout interval in seconds. See NSURLRequest for more details. Default: 5 minutes. +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil ++ (instancetype)eventSourceWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + timeoutInterval:(NSTimeInterval)timeoutInterval + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +- (instancetype)initWithURL:(NSURL *)URL httpHeaders:(nullable NSDictionary*) headers; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil +- (instancetype)initWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param timeoutInterval The request timeout interval in seconds. See NSURLRequest for more details. Default: 5 minutes. +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil +- (instancetype)initWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + timeoutInterval:(NSTimeInterval)timeoutInterval + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Registers an event handler for the Message event. +/// +/// @param handler The handler for the Message event. +- (void)onMessage:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for the Error event. +/// +/// @param handler The handler for the Error event. +- (void)onError:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for the Open event. +/// +/// @param handler The handler for the Open event. +- (void)onOpen:(LDEventSourceEventHandler)handler; + +- (void)onReadyStateChanged:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for a named event. +/// +/// @param eventName The name of the event you registered. +/// @param handler The handler for the Message event. +- (void)addEventListener:(NSString *)eventName handler:(LDEventSourceEventHandler)handler; + +/// Opens the connection to the EventSource. +- (void)open; + +/// Closes the connection to the EventSource. +- (void)close; + +@end + +// --------------------------------------------------------------------------------------------------------------------- + +extern NSString *const MessageEvent; +extern NSString *const ErrorEvent; +extern NSString *const OpenEvent; +extern NSString *const ReadyStateEvent; + +NS_ASSUME_NONNULL_END diff --git a/Carthage/Build/tvOS/DarklyEventSource.framework/Info.plist b/Carthage/Build/tvOS/DarklyEventSource.framework/Info.plist new file mode 100644 index 00000000..5266ff15 Binary files /dev/null and b/Carthage/Build/tvOS/DarklyEventSource.framework/Info.plist differ diff --git a/Carthage/Build/tvOS/DarklyEventSource.framework/Modules/module.modulemap b/Carthage/Build/tvOS/DarklyEventSource.framework/Modules/module.modulemap new file mode 100644 index 00000000..2545245b --- /dev/null +++ b/Carthage/Build/tvOS/DarklyEventSource.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module DarklyEventSource { + umbrella header "DarklyEventSource.h" + + export * + module * { export * } +} diff --git a/Carthage/Build/watchOS/1DA2DFAD-DE02-3E63-AB28-5517E290AB2D.bcsymbolmap b/Carthage/Build/watchOS/1DA2DFAD-DE02-3E63-AB28-5517E290AB2D.bcsymbolmap new file mode 100644 index 00000000..7e9a6f28 --- /dev/null +++ b/Carthage/Build/watchOS/1DA2DFAD-DE02-3E63-AB28-5517E290AB2D.bcsymbolmap @@ -0,0 +1,155 @@ +BCSymbolMap Version: 2.0 ++[LDEventSource eventSourceWithURL:httpHeaders:] ++[LDEventSource eventSourceWithURL:httpHeaders:connectMethod:connectBody:] ++[LDEventSource eventSourceWithURL:httpHeaders:timeoutInterval:connectMethod:connectBody:] +-[LDEventSource initWithURL:httpHeaders:] +-[LDEventSource initWithURL:httpHeaders:connectMethod:connectBody:] +-[LDEventSource initWithURL:httpHeaders:timeoutInterval:connectMethod:connectBody:] +-[LDEventSource addEventListener:handler:] +-[LDEventSource onMessage:] +-[LDEventSource onError:] +-[LDEventSource onOpen:] +-[LDEventSource onReadyStateChanged:] +-[LDEventSource close] +-[LDEventSource URLSession:dataTask:didReceiveResponse:completionHandler:] +-[LDEventSource URLSession:dataTask:didReceiveData:] +-[LDEventSource parseEventString:] +___34-[LDEventSource parseEventString:]_block_invoke +___copy_helper_block_e4_20s24w +___destroy_helper_block_e4_20s24w +-[LDEventSource URLSession:task:didCompleteWithError:] +___54-[LDEventSource URLSession:task:didCompleteWithError:]_block_invoke +___copy_helper_block_e4_20w +___destroy_helper_block_e4_20w +-[LDEventSource eventErrorForTask:errorCode:underlyingError:] +-[LDEventSource responseIsUnauthorizedForTask:] +-[LDEventSource open] +-[LDEventSource _dispatchEvent:type:] +___37-[LDEventSource _dispatchEvent:type:]_block_invoke +___copy_helper_block_e4_20b24s +___destroy_helper_block_e4_20s24s +-[LDEventSource _dispatchEvent:] +-[LDEventSource increaseIntervalWithBackoff] +-[LDEventSource eventURL] +-[LDEventSource setEventURL:] +-[LDEventSource eventSourceTask] +-[LDEventSource setEventSourceTask:] +-[LDEventSource session] +-[LDEventSource setSession:] +-[LDEventSource listeners] +-[LDEventSource setListeners:] +-[LDEventSource timeoutInterval] +-[LDEventSource setTimeoutInterval:] +-[LDEventSource retryInterval] +-[LDEventSource setRetryInterval:] +-[LDEventSource retryAttempt] +-[LDEventSource setRetryAttempt:] +-[LDEventSource httpRequestHeaders] +-[LDEventSource setHttpRequestHeaders:] +-[LDEventSource connectMethod] +-[LDEventSource setConnectMethod:] +-[LDEventSource connectBody] +-[LDEventSource setConnectBody:] +-[LDEventSource lastEventID] +-[LDEventSource setLastEventID:] +-[LDEventSource eventStringAccumulator] +-[LDEventSource setEventStringAccumulator:] +-[LDEventSource .cxx_destruct] +-[LDEvent description] +-[LDEvent copyWithZone:] +-[LDEvent id] +-[LDEvent setId:] +-[LDEvent event] +-[LDEvent setEvent:] +-[LDEvent data] +-[LDEvent setData:] +-[LDEvent readyState] +-[LDEvent setReadyState:] +-[LDEvent error] +-[LDEvent setError:] +-[LDEvent .cxx_destruct] +_OBJC_IVAR_$_LDEventSource.messageQueue +_OBJC_IVAR_$_LDEventSource.connectionQueue +_OBJC_IVAR_$_LDEventSource.wasClosed +_OBJC_IVAR_$_LDEventSource._retryAttempt +___block_descriptor_28_e4_20s24w_e5_v4@?0l +___block_descriptor_24_e4_20w_e5_v4@?0l +___block_descriptor_28_e4_20bs24s_e5_v4@?0l +_OBJC_IVAR_$_LDEventSource._retryInterval +_OBJC_IVAR_$_LDEventSource._eventURL +_OBJC_IVAR_$_LDEventSource._eventSourceTask +_OBJC_IVAR_$_LDEventSource._session +_OBJC_IVAR_$_LDEventSource._listeners +_OBJC_IVAR_$_LDEventSource._timeoutInterval +_OBJC_IVAR_$_LDEventSource._httpRequestHeaders +_OBJC_IVAR_$_LDEventSource._connectMethod +_OBJC_IVAR_$_LDEventSource._connectBody +_OBJC_IVAR_$_LDEventSource._lastEventID +_OBJC_IVAR_$_LDEventSource._eventStringAccumulator +l_OBJC_PROTOCOL_$_NSObject +l_OBJC_LABEL_PROTOCOL_$_NSObject +l_OBJC_PROTOCOL_$_NSURLSessionDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionDelegate +l_OBJC_PROTOCOL_$_NSURLSessionTaskDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionTaskDelegate +l_OBJC_PROTOCOL_$_NSURLSessionDataDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionDataDelegate +_OBJC_IVAR_$_LDEvent._id +_OBJC_IVAR_$_LDEvent._event +_OBJC_IVAR_$_LDEvent._data +_OBJC_IVAR_$_LDEvent._readyState +_OBJC_IVAR_$_LDEvent._error +l_OBJC_PROTOCOL_$_NSCopying +l_OBJC_LABEL_PROTOCOL_$_NSCopying +Apple LLVM version 10.0.1 (clang-1001.0.46.4) +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventSource.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventSource.h +__destroy_helper_block_e4_20s24s +__copy_helper_block_e4_20b24s +__37-[LDEventSource _dispatchEvent:type:]_block_invoke +__destroy_helper_block_e4_20w +__copy_helper_block_e4_20w +__54-[LDEventSource URLSession:task:didCompleteWithError:]_block_invoke +__destroy_helper_block_e4_20s24w +__copy_helper_block_e4_20s24w +__34-[LDEventSource parseEventString:]_block_invoke +-[NSString(LDEventSource) lines] +-[NSString(LDEventSource) hasEventPrefix] +-[NSString(LDEventSource) hasEventTerminator] +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/NSString+LDEventSource.m ++[LDEventParser eventParserWithEventString:] +-[LDEventParser initWithEventString:] +-[LDEventParser parseEventString] +-[LDEventParser linesToParseFromEventString] +-[LDEventParser remainingEventStringAfterParsingEventString] +-[LDEventParser eventString] +-[LDEventParser setEventString:] +-[LDEventParser event] +-[LDEventParser setEvent:] +-[LDEventParser retryInterval] +-[LDEventParser setRetryInterval:] +-[LDEventParser remainingEventString] +-[LDEventParser setRemainingEventString:] +-[LDEventParser .cxx_destruct] +_OBJC_IVAR_$_LDEventParser._eventString +_OBJC_IVAR_$_LDEventParser._event +_OBJC_IVAR_$_LDEventParser._retryInterval +_OBJC_IVAR_$_LDEventParser._remainingEventString +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventParser.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventParser.h +-[LDEventStringAccumulator accumulateEventStringWithString:] +-[LDEventStringAccumulator isReadyToParseEvent] +-[LDEventStringAccumulator reset] +-[LDEventStringAccumulator eventString] +-[LDEventStringAccumulator setEventString:] +-[LDEventStringAccumulator .cxx_destruct] +_OBJC_IVAR_$_LDEventStringAccumulator._eventString +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventStringAccumulator.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventStringAccumulator.h +-[NSArray(LDEventSource) indexOfFirstEmptyLine] +-[NSArray(LDEventSource) subArrayFromIndex:] +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/NSArray+LDEventSource.m +NSMakeRange +/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS5.2.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSRange.h +/Users/markpokorny/Library/Caches/org.carthage.CarthageKit/DerivedData/10.2.1_10E1001/ios-eventsource/4.0.1/Build/Intermediates.noindex/ArchiveIntermediates/DarklyEventSource-watchOS/IntermediateBuildFilesPath/LDEventSource.build/Release-watchos/DarklyEventSource-watchOS.build/DerivedSources/DarklyEventSource_vers.c diff --git a/Carthage/Build/watchOS/5A80136C-9681-3734-B54A-C237579747C1.bcsymbolmap b/Carthage/Build/watchOS/5A80136C-9681-3734-B54A-C237579747C1.bcsymbolmap new file mode 100644 index 00000000..06f785b9 --- /dev/null +++ b/Carthage/Build/watchOS/5A80136C-9681-3734-B54A-C237579747C1.bcsymbolmap @@ -0,0 +1,153 @@ +BCSymbolMap Version: 2.0 ++[LDEventSource eventSourceWithURL:httpHeaders:] ++[LDEventSource eventSourceWithURL:httpHeaders:connectMethod:connectBody:] ++[LDEventSource eventSourceWithURL:httpHeaders:timeoutInterval:connectMethod:connectBody:] +-[LDEventSource initWithURL:httpHeaders:] +-[LDEventSource initWithURL:httpHeaders:connectMethod:connectBody:] +-[LDEventSource initWithURL:httpHeaders:timeoutInterval:connectMethod:connectBody:] +-[LDEventSource addEventListener:handler:] +-[LDEventSource onMessage:] +-[LDEventSource onError:] +-[LDEventSource onOpen:] +-[LDEventSource onReadyStateChanged:] +-[LDEventSource close] +-[LDEventSource URLSession:dataTask:didReceiveResponse:completionHandler:] +-[LDEventSource URLSession:dataTask:didReceiveData:] +-[LDEventSource parseEventString:] +___34-[LDEventSource parseEventString:]_block_invoke +___copy_helper_block_e4_20s24w +___destroy_helper_block_e4_20s24w +-[LDEventSource URLSession:task:didCompleteWithError:] +___54-[LDEventSource URLSession:task:didCompleteWithError:]_block_invoke +___copy_helper_block_e4_20w +___destroy_helper_block_e4_20w +-[LDEventSource eventErrorForTask:errorCode:underlyingError:] +-[LDEventSource responseIsUnauthorizedForTask:] +-[LDEventSource open] +-[LDEventSource _dispatchEvent:type:] +___37-[LDEventSource _dispatchEvent:type:]_block_invoke +___copy_helper_block_e4_20b24s +___destroy_helper_block_e4_20s24s +-[LDEventSource _dispatchEvent:] +-[LDEventSource increaseIntervalWithBackoff] +-[LDEventSource eventURL] +-[LDEventSource setEventURL:] +-[LDEventSource eventSourceTask] +-[LDEventSource setEventSourceTask:] +-[LDEventSource session] +-[LDEventSource setSession:] +-[LDEventSource listeners] +-[LDEventSource setListeners:] +-[LDEventSource timeoutInterval] +-[LDEventSource setTimeoutInterval:] +-[LDEventSource retryInterval] +-[LDEventSource setRetryInterval:] +-[LDEventSource retryAttempt] +-[LDEventSource setRetryAttempt:] +-[LDEventSource httpRequestHeaders] +-[LDEventSource setHttpRequestHeaders:] +-[LDEventSource connectMethod] +-[LDEventSource setConnectMethod:] +-[LDEventSource connectBody] +-[LDEventSource setConnectBody:] +-[LDEventSource lastEventID] +-[LDEventSource setLastEventID:] +-[LDEventSource eventStringAccumulator] +-[LDEventSource setEventStringAccumulator:] +-[LDEventSource .cxx_destruct] +-[LDEvent description] +-[LDEvent copyWithZone:] +-[LDEvent id] +-[LDEvent setId:] +-[LDEvent event] +-[LDEvent setEvent:] +-[LDEvent data] +-[LDEvent setData:] +-[LDEvent readyState] +-[LDEvent setReadyState:] +-[LDEvent error] +-[LDEvent setError:] +-[LDEvent .cxx_destruct] +_OBJC_IVAR_$_LDEventSource.messageQueue +_OBJC_IVAR_$_LDEventSource.connectionQueue +_OBJC_IVAR_$_LDEventSource.wasClosed +_OBJC_IVAR_$_LDEventSource._retryAttempt +___block_descriptor_28_e4_20s24w_e5_v4@?0l +___block_descriptor_24_e4_20w_e5_v4@?0l +___block_descriptor_28_e4_20bs24s_e5_v4@?0l +_OBJC_IVAR_$_LDEventSource._retryInterval +_OBJC_IVAR_$_LDEventSource._eventURL +_OBJC_IVAR_$_LDEventSource._eventSourceTask +_OBJC_IVAR_$_LDEventSource._session +_OBJC_IVAR_$_LDEventSource._listeners +_OBJC_IVAR_$_LDEventSource._timeoutInterval +_OBJC_IVAR_$_LDEventSource._httpRequestHeaders +_OBJC_IVAR_$_LDEventSource._connectMethod +_OBJC_IVAR_$_LDEventSource._connectBody +_OBJC_IVAR_$_LDEventSource._lastEventID +_OBJC_IVAR_$_LDEventSource._eventStringAccumulator +l_OBJC_PROTOCOL_$_NSObject +l_OBJC_LABEL_PROTOCOL_$_NSObject +l_OBJC_PROTOCOL_$_NSURLSessionDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionDelegate +l_OBJC_PROTOCOL_$_NSURLSessionTaskDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionTaskDelegate +l_OBJC_PROTOCOL_$_NSURLSessionDataDelegate +l_OBJC_LABEL_PROTOCOL_$_NSURLSessionDataDelegate +_OBJC_IVAR_$_LDEvent._id +_OBJC_IVAR_$_LDEvent._event +_OBJC_IVAR_$_LDEvent._data +_OBJC_IVAR_$_LDEvent._readyState +_OBJC_IVAR_$_LDEvent._error +l_OBJC_PROTOCOL_$_NSCopying +l_OBJC_LABEL_PROTOCOL_$_NSCopying +Apple LLVM version 10.0.1 (clang-1001.0.46.4) +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventSource.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventSource.h +__destroy_helper_block_e4_20s24s +__copy_helper_block_e4_20b24s +__37-[LDEventSource _dispatchEvent:type:]_block_invoke +__destroy_helper_block_e4_20w +__copy_helper_block_e4_20w +__54-[LDEventSource URLSession:task:didCompleteWithError:]_block_invoke +__destroy_helper_block_e4_20s24w +__copy_helper_block_e4_20s24w +__34-[LDEventSource parseEventString:]_block_invoke +-[NSString(LDEventSource) lines] +-[NSString(LDEventSource) hasEventPrefix] +-[NSString(LDEventSource) hasEventTerminator] +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/NSString+LDEventSource.m ++[LDEventParser eventParserWithEventString:] +-[LDEventParser initWithEventString:] +-[LDEventParser parseEventString] +-[LDEventParser linesToParseFromEventString] +-[LDEventParser remainingEventStringAfterParsingEventString] +-[LDEventParser eventString] +-[LDEventParser setEventString:] +-[LDEventParser event] +-[LDEventParser setEvent:] +-[LDEventParser retryInterval] +-[LDEventParser setRetryInterval:] +-[LDEventParser remainingEventString] +-[LDEventParser setRemainingEventString:] +-[LDEventParser .cxx_destruct] +_OBJC_IVAR_$_LDEventParser._eventString +_OBJC_IVAR_$_LDEventParser._event +_OBJC_IVAR_$_LDEventParser._retryInterval +_OBJC_IVAR_$_LDEventParser._remainingEventString +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventParser.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventParser.h +-[LDEventStringAccumulator accumulateEventStringWithString:] +-[LDEventStringAccumulator isReadyToParseEvent] +-[LDEventStringAccumulator reset] +-[LDEventStringAccumulator eventString] +-[LDEventStringAccumulator setEventString:] +-[LDEventStringAccumulator .cxx_destruct] +_OBJC_IVAR_$_LDEventStringAccumulator._eventString +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventStringAccumulator.m +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/LDEventStringAccumulator.h +-[NSArray(LDEventSource) indexOfFirstEmptyLine] +-[NSArray(LDEventSource) subArrayFromIndex:] +/Users/markpokorny/Documents/Development/launchDarkly/ios-client-private/Carthage/Checkouts/ios-eventsource/LDEventSource/NSArray+LDEventSource.m +/Users/markpokorny/Library/Caches/org.carthage.CarthageKit/DerivedData/10.2.1_10E1001/ios-eventsource/4.0.1/Build/Intermediates.noindex/ArchiveIntermediates/DarklyEventSource-watchOS/IntermediateBuildFilesPath/LDEventSource.build/Release-watchos/DarklyEventSource-watchOS.build/DerivedSources/DarklyEventSource_vers.c diff --git a/Carthage/Build/watchOS/DarklyEventSource.framework.dSYM/Contents/Info.plist b/Carthage/Build/watchOS/DarklyEventSource.framework.dSYM/Contents/Info.plist new file mode 100644 index 00000000..a481cb27 --- /dev/null +++ b/Carthage/Build/watchOS/DarklyEventSource.framework.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.com.launchdarkly.EventSource + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 4.0.1 + CFBundleVersion + 1 + + diff --git a/Carthage/Build/watchOS/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource b/Carthage/Build/watchOS/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource new file mode 100644 index 00000000..a101ee9e Binary files /dev/null and b/Carthage/Build/watchOS/DarklyEventSource.framework.dSYM/Contents/Resources/DWARF/DarklyEventSource differ diff --git a/Carthage/Build/watchOS/DarklyEventSource.framework/DarklyEventSource b/Carthage/Build/watchOS/DarklyEventSource.framework/DarklyEventSource new file mode 100755 index 00000000..32e789fb Binary files /dev/null and b/Carthage/Build/watchOS/DarklyEventSource.framework/DarklyEventSource differ diff --git a/Carthage/Build/watchOS/DarklyEventSource.framework/Headers/DarklyEventSource.h b/Carthage/Build/watchOS/DarklyEventSource.framework/Headers/DarklyEventSource.h new file mode 100644 index 00000000..7a49426b --- /dev/null +++ b/Carthage/Build/watchOS/DarklyEventSource.framework/Headers/DarklyEventSource.h @@ -0,0 +1,11 @@ +// +// DarklyEventSource.h +// DarklyEventSource +// +// Created by Mark Pokorny on 12/1/17. +JMJ +// Copyright © 2017 Catamorphic Co. All rights reserved. +// + +#import + +#import diff --git a/Carthage/Build/watchOS/DarklyEventSource.framework/Headers/LDEventSource.h b/Carthage/Build/watchOS/DarklyEventSource.framework/Headers/LDEventSource.h new file mode 100644 index 00000000..b4f910aa --- /dev/null +++ b/Carthage/Build/watchOS/DarklyEventSource.framework/Headers/LDEventSource.h @@ -0,0 +1,148 @@ +// +// LDEventSource.h +// LDEventSource +// +// Created by Neil on 25/07/2013. +// Copyright (c) 2013 Neil Cowburn. All rights reserved. +// + +#import + +typedef enum { + kEventStateConnecting = 0, + kEventStateOpen = 1, + kEventStateClosed = 2, +} LDEventState; + +NS_ASSUME_NONNULL_BEGIN + +extern NSString *const LDEventSourceErrorDomain; + +// --------------------------------------------------------------------------------------------------------------------- + +/// Describes an Event received from an EventSource +@interface LDEvent : NSObject + +/// The Event ID +@property (nonatomic, strong, nullable) id id; +/// The name of the Event +@property (nonatomic, strong, nullable) NSString *event; +/// The data received from the EventSource +@property (nonatomic, strong, nullable) NSString *data; + +/// The current state of the connection to the EventSource +@property (nonatomic, assign) LDEventState readyState; +/// Provides details of any errors with the connection to the EventSource +@property (nonatomic, strong, nullable) NSError *error; + +-(id)copyWithZone:(nullable NSZone*)zone; +@end + +// --------------------------------------------------------------------------------------------------------------------- + +typedef void (^LDEventSourceEventHandler)(LDEvent * _Nullable event); + +// --------------------------------------------------------------------------------------------------------------------- + +/// Connect to and receive Server-Sent Events (SSEs). +@interface LDEventSource : NSObject + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included ++ (instancetype)eventSourceWithURL:(NSURL *)URL httpHeaders:(nullable NSDictionary*) headers; + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil ++ (instancetype)eventSourceWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Returns a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param timeoutInterval The request timeout interval in seconds. See NSURLRequest for more details. Default: 5 minutes. +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil ++ (instancetype)eventSourceWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + timeoutInterval:(NSTimeInterval)timeoutInterval + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +- (instancetype)initWithURL:(NSURL *)URL httpHeaders:(nullable NSDictionary*) headers; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil +- (instancetype)initWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Creates a new instance of EventSource with the specified URL. +/// +/// @param URL The URL of the EventSource. +/// @param headers The http headers to be included +/// @param timeoutInterval The request timeout interval in seconds. See NSURLRequest for more details. Default: 5 minutes. +/// @param connectMethod The http method to use to connect to the EventSource. Default: GET +/// @param connectBody The http body to use to connect to the EventSource. Default: nil +- (instancetype)initWithURL:(NSURL *)URL + httpHeaders:(nullable NSDictionary*)headers + timeoutInterval:(NSTimeInterval)timeoutInterval + connectMethod:(nullable NSString*)connectMethod + connectBody:(nullable NSData*)connectBody; + +/// Registers an event handler for the Message event. +/// +/// @param handler The handler for the Message event. +- (void)onMessage:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for the Error event. +/// +/// @param handler The handler for the Error event. +- (void)onError:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for the Open event. +/// +/// @param handler The handler for the Open event. +- (void)onOpen:(LDEventSourceEventHandler)handler; + +- (void)onReadyStateChanged:(LDEventSourceEventHandler)handler; + +/// Registers an event handler for a named event. +/// +/// @param eventName The name of the event you registered. +/// @param handler The handler for the Message event. +- (void)addEventListener:(NSString *)eventName handler:(LDEventSourceEventHandler)handler; + +/// Opens the connection to the EventSource. +- (void)open; + +/// Closes the connection to the EventSource. +- (void)close; + +@end + +// --------------------------------------------------------------------------------------------------------------------- + +extern NSString *const MessageEvent; +extern NSString *const ErrorEvent; +extern NSString *const OpenEvent; +extern NSString *const ReadyStateEvent; + +NS_ASSUME_NONNULL_END diff --git a/Carthage/Build/watchOS/DarklyEventSource.framework/Info.plist b/Carthage/Build/watchOS/DarklyEventSource.framework/Info.plist new file mode 100644 index 00000000..b6ac4161 Binary files /dev/null and b/Carthage/Build/watchOS/DarklyEventSource.framework/Info.plist differ diff --git a/Carthage/Build/watchOS/DarklyEventSource.framework/Modules/module.modulemap b/Carthage/Build/watchOS/DarklyEventSource.framework/Modules/module.modulemap new file mode 100644 index 00000000..2545245b --- /dev/null +++ b/Carthage/Build/watchOS/DarklyEventSource.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module DarklyEventSource { + umbrella header "DarklyEventSource.h" + + export * + module * { export * } +} diff --git a/LaunchDarkly.podspec b/LaunchDarkly.podspec index a6191a8f..6cebd00b 100644 --- a/LaunchDarkly.podspec +++ b/LaunchDarkly.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "LaunchDarkly" - s.version = "3.0.0" + s.version = "3.0.1" s.summary = "iOS SDK for LaunchDarkly" s.description = <<-DESC @@ -12,7 +12,7 @@ Pod::Spec.new do |s| * Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan). Disable parts of your application to facilitate maintenance, without taking everything offline. DESC - s.homepage = "https://github.com/launchdarkly/ios-client" + s.homepage = "https://github.com/launchdarkly/ios-client-sdk" s.license = { :type => "Apache License, Version 2.0", :file => "LICENSE.txt" } @@ -23,7 +23,7 @@ Pod::Spec.new do |s| s.tvos.deployment_target = "9.0" s.osx.deployment_target = '10.10' - s.source = { :git => "https://github.com/launchdarkly/ios-client.git", :tag => "3.0.0" } + s.source = { :git => "https://github.com/launchdarkly/ios-client-sdk.git", :tag => "3.0.1" } s.source_files = 'Darkly/**/*.{h,m}' diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index be42da36..e9cae5f1 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -176,12 +176,12 @@ 8B9234E230FED75DFE98793C40ECA0C9 /* OCMVerifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCMVerifier.h; path = Source/OCMock/OCMVerifier.h; sourceTree = ""; }; 8CEA561CD3D12C1D85B8D1F6EDC2698E /* OCMExceptionReturnValueProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCMExceptionReturnValueProvider.h; path = Source/OCMock/OCMExceptionReturnValueProvider.h; sourceTree = ""; }; 8D7E2D43B812BE8DE91CD626B5FF90E8 /* OCMConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OCMConstraint.m; path = Source/OCMock/OCMConstraint.m; sourceTree = ""; }; - 9215745C34F1F1DEBE2BB0CF7C4D572A /* Pods_DarklyTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_DarklyTests.framework; path = "Pods-DarklyTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9215745C34F1F1DEBE2BB0CF7C4D572A /* Pods_DarklyTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_DarklyTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 97932419E7FBF0E5AF2692D4D9BDE5F4 /* OCMInvocationMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCMInvocationMatcher.h; path = Source/OCMock/OCMInvocationMatcher.h; sourceTree = ""; }; 99D84F966398051059F50BAD572E8A84 /* Pods-DarklyTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-DarklyTests-Info.plist"; sourceTree = ""; }; 9A691B6E926044B52074F00C5BDF555D /* OCMock-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "OCMock-prefix.pch"; sourceTree = ""; }; 9BB331DF4C5DAB1C0655419B317524DF /* OCMNotificationPoster.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OCMNotificationPoster.m; path = Source/OCMock/OCMNotificationPoster.m; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; A14BDFA6F6EAE58E720200D0249F4CD0 /* OCMRealObjectForwarder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OCMRealObjectForwarder.m; path = Source/OCMock/OCMRealObjectForwarder.m; sourceTree = ""; }; A1D89A1EB2B1F51BEBCE06382C554170 /* OCProtocolMockObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCProtocolMockObject.h; path = Source/OCMock/OCProtocolMockObject.h; sourceTree = ""; }; A2150FEDDF31F14266ECC3F8AFF2CD0D /* NSMethodSignature+OCMAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMethodSignature+OCMAdditions.m"; path = "Source/OCMock/NSMethodSignature+OCMAdditions.m"; sourceTree = ""; }; @@ -208,12 +208,12 @@ DA515621D098154E1B5CD4AAA88DC71B /* Pods-DarklyTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-DarklyTests-acknowledgements.markdown"; sourceTree = ""; }; DD49A4F586DEF4F2FBC1BA5EEA50272A /* Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Compatibility.h; path = OHHTTPStubs/Sources/Compatibility.h; sourceTree = ""; }; DDF41C795B1FC99E649C57405F7D3FA6 /* OCMConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCMConstraint.h; path = Source/OCMock/OCMConstraint.h; sourceTree = ""; }; - DE4E75DC4D487A278AD12D573E26AE72 /* OCMock.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = OCMock.framework; path = OCMock.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DE4E75DC4D487A278AD12D573E26AE72 /* OCMock.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OCMock.framework; sourceTree = BUILT_PRODUCTS_DIR; }; DFD7DEDE0CE729379D35AD430B321267 /* OHHTTPStubs.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = OHHTTPStubs.modulemap; sourceTree = ""; }; E1E1EA5B0753923536E210021CEC2FDD /* Pods-DarklyTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-DarklyTests-frameworks.sh"; sourceTree = ""; }; E216D79E141651F54498492A8904224B /* OCMock.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = OCMock.modulemap; sourceTree = ""; }; E34CBA1C6E1A0555673C901FAF1AA7E7 /* OCMBlockArgCaller.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OCMBlockArgCaller.m; path = Source/OCMock/OCMBlockArgCaller.m; sourceTree = ""; }; - EB6B45D9D39E63C08B5CD90E320B8824 /* OHHTTPStubs.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = OHHTTPStubs.framework; path = OHHTTPStubs.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EB6B45D9D39E63C08B5CD90E320B8824 /* OHHTTPStubs.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OHHTTPStubs.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EF0CED7E53BFE032C6EA292338951BB6 /* OHHTTPStubsResponse+JSON.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "OHHTTPStubsResponse+JSON.h"; path = "OHHTTPStubs/Sources/JSON/OHHTTPStubsResponse+JSON.h"; sourceTree = ""; }; F348EA461245A204012C7AEC37A8A5D9 /* OCMStubRecorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OCMStubRecorder.h; path = Source/OCMock/OCMStubRecorder.h; sourceTree = ""; }; FB6F04CF8BC2952478EDD205C65BB88D /* OHHTTPStubs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OHHTTPStubs.m; path = OHHTTPStubs/Sources/OHHTTPStubs.m; sourceTree = ""; }; @@ -349,7 +349,6 @@ 405EBFA9E0FDCD59B0D1E67A295F6BE0 /* OCProtocolMockObject.m */, D86C2DD3B71FAF7B5BDE5BA82CDB482F /* Support Files */, ); - name = OCMock; path = OCMock; sourceTree = ""; }; @@ -457,7 +456,6 @@ E76E266D2E87DBC05DC33941259E7DA1 /* OHPathHelpers */, C67B5793FF547ADD44A641F25FB8A065 /* Support Files */, ); - name = OHHTTPStubs; path = OHHTTPStubs; sourceTree = ""; }; @@ -612,14 +610,15 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0930; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1020; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; productRefGroup = CA752DF16F23F400E0D4F41D6E9A17E2 /* Products */; @@ -742,6 +741,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -791,8 +791,7 @@ MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 4.2; SYMROOT = "${SRCROOT}/../build"; }; @@ -836,6 +835,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; diff --git a/README.md b/README.md index f472ddf7..8f1e5f98 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,26 @@ LaunchDarkly SDK for iOS ======================== -![CircleCI](https://circleci.com/gh/launchdarkly/ios-client/tree/master.svg?style=svg) +![CircleCI](https://circleci.com/gh/launchdarkly/ios-client-sdk/tree/master.svg?style=svg) [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/LaunchDarkly.svg)](https://img.shields.io/cocoapods/v/LaunchDarkly.svg) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Platform](https://img.shields.io/cocoapods/p/LaunchDarkly.svg?style=flat)](http://docs.launchdarkly.com/docs/ios-sdk-reference) -Installation ------------- +LaunchDarkly overview +------------------------- +[LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves over 100 billion feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/docs/getting-started) using LaunchDarkly today! + +[![Twitter Follow](https://img.shields.io/twitter/follow/launchdarkly.svg?style=social&label=Follow&maxAge=2592000)](https://twitter.com/intent/follow?screen_name=launchdarkly) + +Supported iOS versions +------------------------- + +This version of the LaunchDarkly SDK has been tested with iOS 12 and across mobile, desktop, watch, and tv devices. + +Getting started +----------- -LaunchDarkly supports multiple methods for installing the library in a project. +LaunchDarkly supports multiple methods for installing the library in a project. Once installed, head over to the [SDK documentation](https://docs.launchdarkly.com/docs/ios-sdk-reference#section-getting-started) for complete instructions on getting started with using the SDK. ### Installation with CocoaPods @@ -18,6 +29,7 @@ LaunchDarkly supports multiple methods for installing the library in a project. ```bash $ gem install cocoapods ``` + #### Podfile To integrate LaunchDarkly into your Xcode project using CocoaPods, specify it in your `Podfile`: @@ -25,7 +37,7 @@ To integrate LaunchDarkly into your Xcode project using CocoaPods, specify it in ```ruby target 'TargetName' do platform :ios, '8.0' - pod 'LaunchDarkly', '~> 3.0.0' + pod 'LaunchDarkly', '~> 3.0.1' end ``` @@ -49,7 +61,7 @@ $ brew install carthage To integrate LaunchDarkly into your Xcode project using Carthage, specify it in your `Cartfile`: ```ogdl -github "launchdarkly/ios-client" "3.0.0" +github "launchdarkly/ios-client" "3.0.1" ``` Run `carthage update` to build the framework. Optionally, specify the `--platform` to build only the frameworks that support your platform(s). @@ -195,84 +207,33 @@ NOTE: If you want to install LaunchDarkly without using frameworks see [Install 25. Build your app for each target. If it fails, you may have skipped one of the steps above. Verify you have chosen the appropriate platform in each step. 26. Run your app. If the app crashes, it is likely that either the incorrect platform was installed, or the `Darkly` or `DarklyEventSource` dependencies were incorrectly added. -Quick setup ------------ - -1. Add the SDK to your `Podfile`: - - pod 'LaunchDarkly', '3.0.0' - -2. Import the LaunchDarkly client: - - `@import LaunchDarkly;` - -3. Instantiate a new LDClient with your mobile key and user: - -````objc - LDConfig *config = [[LDConfig alloc] initWithMobileKey: @"YOUR_MOBILE_KEY"]; - - LDUserBuilder *user = [[LDUserBuilder alloc] init]; - user.key = @"aa0ceb"; - - [[LDClient sharedInstance] start:config withUserBuilder:user]; -```` -(Be sure to use a mobile key from your environments. Never embed a standard SDK key into a mobile application.) - -Your first feature flag ------------ - -1. Create a new feature flag on your dashboard - -2. In your application code, use the feature’s key to check whether the flag is on for each user: - - BOOL showFeature = [[LDClient sharedInstance] boolVariation:@"YOUR_FLAG_KEY" fallback:NO]; - if (showFeature) { - NSLog(@"Showing feature for %@", user.key); - } else { - NSLog(@"Not showing feature for user %@", user.key); - } - -Manage the feature on your dashboard — control who sees the feature without re-deploying your application! - - Learn more ----------- - -Check out our [documentation](http://docs.launchdarkly.com) for in-depth instructions on configuring and using LaunchDarkly. You can also head straight to the [complete reference guide for this SDK](http://docs.launchdarkly.com/docs/ios-sdk-reference). - + +Check out our [documentation](https://docs.launchdarkly.com) for in-depth instructions on configuring and using LaunchDarkly. You can also head straight to the [complete reference guide for this SDK](https://docs.launchdarkly.com/docs/ios-sdk-reference). + Testing ------- - + We run integration tests for all our SDKs using a centralized test harness. This approach gives us the ability to test for consistency across SDKs, as well as test networking behavior in a long-running application. These tests cover each method in the SDK, and verify that event sending, flag evaluation, stream reconnection, and other aspects of the SDK all behave correctly. - + Contributing ------------ - -See [Contributing](https://github.com/launchdarkly/ios-client/blob/master/CONTRIBUTING.md) - + +We encourage pull requests and other contributions from the community. Check out our [contributing guidelines](https://github.com/launchdarkly/ios-client-sdk/blob/master/CONTRIBUTING.md) for instructions on how to contribute to this SDK. + About LaunchDarkly ----------- - + * LaunchDarkly is a continuous delivery platform that provides feature flags as a service and allows developers to iterate quickly and safely. We allow you to easily flag your features and manage them from the LaunchDarkly dashboard. With LaunchDarkly, you can: * Roll out a new feature to a subset of your users (like a group of users who opt-in to a beta tester group), gathering feedback and bug reports from real-world use cases. * Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?). * Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file. * Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan). Disable parts of your application to facilitate maintenance, without taking everything offline. -* LaunchDarkly provides feature flag SDKs for - * [Java](http://docs.launchdarkly.com/docs/java-sdk-reference "Java SDK") - * [JavaScript](http://docs.launchdarkly.com/docs/js-sdk-reference "LaunchDarkly JavaScript SDK") - * [PHP](http://docs.launchdarkly.com/docs/php-sdk-reference "LaunchDarkly PHP SDK") - * [Python](http://docs.launchdarkly.com/docs/python-sdk-reference "LaunchDarkly Python SDK") - * [Python Twisted](http://docs.launchdarkly.com/docs/python-twisted-sdk-reference "LaunchDarkly Python Twisted SDK") - * [Go](http://docs.launchdarkly.com/docs/go-sdk-reference "LaunchDarkly Go SDK") - * [Node.JS](http://docs.launchdarkly.com/docs/node-sdk-reference "LaunchDarkly Node SDK") - * [.NET](http://docs.launchdarkly.com/docs/dotnet-sdk-reference "LaunchDarkly .Net SDK") - * [Ruby](http://docs.launchdarkly.com/docs/ruby-sdk-reference "LaunchDarkly Ruby SDK") - * [iOS](http://docs.launchdarkly.com/docs/ios-sdk-reference "LaunchDarkly iOS SDK") - * [Android](http://docs.launchdarkly.com/docs/android-sdk-reference "LaunchDarkly Android SDK") +* LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Check out [our documentation](https://docs.launchdarkly.com/docs) for a complete list. * Explore LaunchDarkly - * [launchdarkly.com](http://www.launchdarkly.com/ "LaunchDarkly Main Website") for more information - * [docs.launchdarkly.com](http://docs.launchdarkly.com/ "LaunchDarkly Documentation") for our documentation and SDKs - * [apidocs.launchdarkly.com](http://apidocs.launchdarkly.com/ "LaunchDarkly API Documentation") for our API documentation - * [blog.launchdarkly.com](http://blog.launchdarkly.com/ "LaunchDarkly Blog Documentation") for the latest product updates + * [launchdarkly.com](https://www.launchdarkly.com/ "LaunchDarkly Main Website") for more information + * [docs.launchdarkly.com](https://docs.launchdarkly.com/ "LaunchDarkly Documentation") for our documentation and SDK reference guides + * [apidocs.launchdarkly.com](https://apidocs.launchdarkly.com/ "LaunchDarkly API Documentation") for our API documentation + * [blog.launchdarkly.com](https://blog.launchdarkly.com/ "LaunchDarkly Blog Documentation") for the latest product updates * [Feature Flagging Guide](https://github.com/launchdarkly/featureflags/ "Feature Flagging Guide") for best practices and strategies