Skip to content

Commit ec7f1b3

Browse files
authored
Merge pull request #115 from launchdarkly/version_2.7.0
Version 2.7.0
2 parents 3e24c2d + 0844c3a commit ec7f1b3

28 files changed

+550
-455
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
All notable changes to the LaunchDarkly iOS SDK will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org).
44

5+
## [2.7.0] - 2017-09-13
6+
### Changed
7+
- Updated for Xcode 9 support
8+
59
## [2.6.1] - 2017-09-21
610
### Added
711
-`streamUrl` property on `LDConfig` to allow customizing the Server Sent Events engine in streaming mode.

Darkly.xcodeproj/project.pbxproj

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -744,7 +744,7 @@
744744
690346B51E6872EA00E45133 /* Project object */ = {
745745
isa = PBXProject;
746746
attributes = {
747-
LastUpgradeCheck = 0820;
747+
LastUpgradeCheck = 0900;
748748
ORGANIZATIONNAME = LaunchDarkly;
749749
TargetAttributes = {
750750
690346BD1E6872EA00E45133 = {
@@ -890,13 +890,16 @@
890890
files = (
891891
);
892892
inputPaths = (
893+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
894+
"${PODS_ROOT}/Manifest.lock",
893895
);
894896
name = "[CP] Check Pods Manifest.lock";
895897
outputPaths = (
898+
"$(DERIVED_FILE_DIR)/Pods-Darkly_watchOS-checkManifestLockResult.txt",
896899
);
897900
runOnlyForDeploymentPostprocessing = 0;
898901
shellPath = /bin/sh;
899-
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
902+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
900903
showEnvVarsInLog = 0;
901904
};
902905
3C6B373432EFD282378462BE /* [CP] Copy Pods Resources */ = {
@@ -920,13 +923,16 @@
920923
files = (
921924
);
922925
inputPaths = (
926+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
927+
"${PODS_ROOT}/Manifest.lock",
923928
);
924929
name = "[CP] Check Pods Manifest.lock";
925930
outputPaths = (
931+
"$(DERIVED_FILE_DIR)/Pods-Darkly_iOS-checkManifestLockResult.txt",
926932
);
927933
runOnlyForDeploymentPostprocessing = 0;
928934
shellPath = /bin/sh;
929-
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
935+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
930936
showEnvVarsInLog = 0;
931937
};
932938
5C4803774368D95181AF24C4 /* [CP] Check Pods Manifest.lock */ = {
@@ -935,13 +941,16 @@
935941
files = (
936942
);
937943
inputPaths = (
944+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
945+
"${PODS_ROOT}/Manifest.lock",
938946
);
939947
name = "[CP] Check Pods Manifest.lock";
940948
outputPaths = (
949+
"$(DERIVED_FILE_DIR)/Pods-Darkly_tvOS-checkManifestLockResult.txt",
941950
);
942951
runOnlyForDeploymentPostprocessing = 0;
943952
shellPath = /bin/sh;
944-
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
953+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
945954
showEnvVarsInLog = 0;
946955
};
947956
5D2C539BFFB0DE3649453E89 /* [CP] Copy Pods Resources */ = {
@@ -995,13 +1004,16 @@
9951004
files = (
9961005
);
9971006
inputPaths = (
1007+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
1008+
"${PODS_ROOT}/Manifest.lock",
9981009
);
9991010
name = "[CP] Check Pods Manifest.lock";
10001011
outputPaths = (
1012+
"$(DERIVED_FILE_DIR)/Pods-Darkly_osx-checkManifestLockResult.txt",
10011013
);
10021014
runOnlyForDeploymentPostprocessing = 0;
10031015
shellPath = /bin/sh;
1004-
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
1016+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
10051017
showEnvVarsInLog = 0;
10061018
};
10071019
BF156E0BAB52CCB17B6F9FDC /* [CP] Check Pods Manifest.lock */ = {
@@ -1010,13 +1022,16 @@
10101022
files = (
10111023
);
10121024
inputPaths = (
1025+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
1026+
"${PODS_ROOT}/Manifest.lock",
10131027
);
10141028
name = "[CP] Check Pods Manifest.lock";
10151029
outputPaths = (
1030+
"$(DERIVED_FILE_DIR)/Pods-DarklyTests-checkManifestLockResult.txt",
10161031
);
10171032
runOnlyForDeploymentPostprocessing = 0;
10181033
shellPath = /bin/sh;
1019-
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
1034+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
10201035
showEnvVarsInLog = 0;
10211036
};
10221037
/* End PBXShellScriptBuildPhase section */
@@ -1156,15 +1171,21 @@
11561171
CLANG_CXX_LIBRARY = "libc++";
11571172
CLANG_ENABLE_MODULES = YES;
11581173
CLANG_ENABLE_OBJC_ARC = YES;
1174+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
11591175
CLANG_WARN_BOOL_CONVERSION = YES;
1176+
CLANG_WARN_COMMA = YES;
11601177
CLANG_WARN_CONSTANT_CONVERSION = YES;
11611178
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
11621179
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
11631180
CLANG_WARN_EMPTY_BODY = YES;
11641181
CLANG_WARN_ENUM_CONVERSION = YES;
11651182
CLANG_WARN_INFINITE_RECURSION = YES;
11661183
CLANG_WARN_INT_CONVERSION = YES;
1184+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
1185+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
11671186
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
1187+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
1188+
CLANG_WARN_STRICT_PROTOTYPES = YES;
11681189
CLANG_WARN_SUSPICIOUS_MOVE = YES;
11691190
CLANG_WARN_UNREACHABLE_CODE = YES;
11701191
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -1210,15 +1231,21 @@
12101231
CLANG_CXX_LIBRARY = "libc++";
12111232
CLANG_ENABLE_MODULES = YES;
12121233
CLANG_ENABLE_OBJC_ARC = YES;
1234+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
12131235
CLANG_WARN_BOOL_CONVERSION = YES;
1236+
CLANG_WARN_COMMA = YES;
12141237
CLANG_WARN_CONSTANT_CONVERSION = YES;
12151238
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
12161239
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
12171240
CLANG_WARN_EMPTY_BODY = YES;
12181241
CLANG_WARN_ENUM_CONVERSION = YES;
12191242
CLANG_WARN_INFINITE_RECURSION = YES;
12201243
CLANG_WARN_INT_CONVERSION = YES;
1244+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
1245+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
12211246
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
1247+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
1248+
CLANG_WARN_STRICT_PROTOTYPES = YES;
12221249
CLANG_WARN_SUSPICIOUS_MOVE = YES;
12231250
CLANG_WARN_UNREACHABLE_CODE = YES;
12241251
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;

Darkly.xcodeproj/xcshareddata/xcschemes/Darkly_iOS.xcscheme

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0830"
3+
LastUpgradeVersion = "0900"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
@@ -26,6 +26,7 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
language = ""
2930
shouldUseLaunchSchemeArgsEnv = "YES">
3031
<Testables>
3132
<TestableReference
@@ -55,6 +56,7 @@
5556
buildConfiguration = "Debug"
5657
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
5758
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
59+
language = ""
5860
launchStyle = "0"
5961
useCustomWorkingDirectory = "NO"
6062
ignoresPersistentStateOnLaunch = "NO"

Darkly.xcodeproj/xcshareddata/xcschemes/Darkly_osx.xcscheme

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0830"
3+
LastUpgradeVersion = "0900"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
@@ -26,6 +26,7 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
language = ""
2930
shouldUseLaunchSchemeArgsEnv = "YES">
3031
<Testables>
3132
</Testables>
@@ -36,6 +37,7 @@
3637
buildConfiguration = "Debug"
3738
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
3839
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
40+
language = ""
3941
launchStyle = "0"
4042
useCustomWorkingDirectory = "NO"
4143
ignoresPersistentStateOnLaunch = "NO"

Darkly.xcodeproj/xcshareddata/xcschemes/Darkly_tvOS.xcscheme

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0830"
3+
LastUpgradeVersion = "0900"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
@@ -26,6 +26,7 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
language = ""
2930
shouldUseLaunchSchemeArgsEnv = "YES">
3031
<Testables>
3132
</Testables>
@@ -36,6 +37,7 @@
3637
buildConfiguration = "Debug"
3738
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
3839
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
40+
language = ""
3941
launchStyle = "0"
4042
useCustomWorkingDirectory = "NO"
4143
ignoresPersistentStateOnLaunch = "NO"

Darkly.xcodeproj/xcshareddata/xcschemes/Darkly_watchOS.xcscheme

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0830"
3+
LastUpgradeVersion = "0900"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
@@ -26,6 +26,7 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
language = ""
2930
shouldUseLaunchSchemeArgsEnv = "YES">
3031
<Testables>
3132
</Testables>
@@ -36,6 +37,7 @@
3637
buildConfiguration = "Debug"
3738
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
3839
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
40+
language = ""
3941
launchStyle = "0"
4042
useCustomWorkingDirectory = "NO"
4143
ignoresPersistentStateOnLaunch = "NO"

Darkly/DarklyConstants.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#import "DarklyConstants.h"
66

7-
NSString * const kClientVersion = @"2.6.1";
7+
NSString * const kClientVersion = @"2.7.0";
88
NSString * const kBaseUrl = @"https://app.launchdarkly.com";
99
NSString * const kEventsUrl = @"https://mobile.launchdarkly.com";
1010
NSString * const kStreamUrl = @"https://clientstream.launchdarkly.com/mping";

Darkly/NSThread+MainExecutable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@
99
#import <Foundation/Foundation.h>
1010

1111
@interface NSThread (MainExecutable)
12-
+ (void)performOnMainThread:(void(^)())executionBlock;
12+
+ (void)performOnMainThread:(void(^)(void))executionBlock;
1313
@end

Darkly/NSThread+MainExecutable.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#import "NSThread+MainExecutable.h"
1010

1111
@implementation NSThread (MainExecutable)
12-
+ (void)performOnMainThread:(void(^)())executionBlock {
12+
+ (void)performOnMainThread:(void(^)(void))executionBlock {
1313
if (!executionBlock) { return; }
1414
if (![NSThread isMainThread]) {
1515
[self performSelectorOnMainThread:@selector(performOnMainThread:) withObject:executionBlock waitUntilDone:YES];

0 commit comments

Comments
 (0)