diff --git a/Ably.xcodeproj/project.pbxproj b/Ably.xcodeproj/project.pbxproj index 8bf2019fc..964ae1b4e 100644 --- a/Ably.xcodeproj/project.pbxproj +++ b/Ably.xcodeproj/project.pbxproj @@ -281,6 +281,9 @@ 56190954238C3D3200A862A6 /* CryptoTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 56190953238C3D3200A862A6 /* CryptoTest.m */; }; 56190955238C3D3200A862A6 /* CryptoTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 56190953238C3D3200A862A6 /* CryptoTest.m */; }; 56190956238C3D3200A862A6 /* CryptoTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 56190953238C3D3200A862A6 /* CryptoTest.m */; }; + 807107BB2C619E7100461AC6 /* Ably-Swift.h in Headers */ = {isa = PBXBuildFile; fileRef = 807107BA2C619E7100461AC6 /* Ably-Swift.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 807107BC2C619E7100461AC6 /* Ably-Swift.h in Headers */ = {isa = PBXBuildFile; fileRef = 807107BA2C619E7100461AC6 /* Ably-Swift.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 807107BD2C619E7100461AC6 /* Ably-Swift.h in Headers */ = {isa = PBXBuildFile; fileRef = 807107BA2C619E7100461AC6 /* Ably-Swift.h */; settings = {ATTRIBUTES = (Public, ); }; }; 80E519C72BBCBE21006545B4 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 80E519C62BBCBE20006545B4 /* PrivacyInfo.xcprivacy */; }; 80E519C82BBCBE21006545B4 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 80E519C62BBCBE20006545B4 /* PrivacyInfo.xcprivacy */; }; 80E519C92BBCBE21006545B4 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 80E519C62BBCBE20006545B4 /* PrivacyInfo.xcprivacy */; }; @@ -1228,6 +1231,7 @@ 21FD9F262A015BE400216482 /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = ""; }; 560579D824AF1BA900A4D03D /* ARTDefaultTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ARTDefaultTests.swift; sourceTree = ""; }; 56190953238C3D3200A862A6 /* CryptoTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CryptoTest.m; sourceTree = ""; }; + 807107BA2C619E7100461AC6 /* Ably-Swift.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "Ably-Swift.h"; path = "include/Ably/Ably-Swift.h"; sourceTree = ""; }; 80E519C62BBCBE20006545B4 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 841134772722205400CFA837 /* ARTArchiveTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ARTArchiveTests.m; sourceTree = ""; }; 8412FDE12661AC37001FE9E6 /* AblyDeltaCodec.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = AblyDeltaCodec.xcframework; path = Carthage/Build/AblyDeltaCodec.xcframework; sourceTree = ""; }; @@ -1802,6 +1806,7 @@ isa = PBXGroup; children = ( D7534C311D79E5C20054C182 /* Ably.h */, + 807107BA2C619E7100461AC6 /* Ably-Swift.h */, 1CD8DC9D1B1C7315007EAF36 /* ARTDefault.h */, D7DC8AF01C6A9FFC005AF165 /* ARTDefault+Private.h */, 1CD8DC9E1B1C7315007EAF36 /* ARTDefault.m */, @@ -2248,6 +2253,7 @@ D7DEAFD11E65926D00D23F24 /* ARTLocalDevice.h in Headers */, 21113B5129DC6AAF00652C86 /* ARTTestClientOptions.h in Headers */, EB8AC6431C6515ED002ABA92 /* ARTTokenParams+Private.h in Headers */, + 807107BB2C619E7100461AC6 /* Ably-Swift.h in Headers */, 2105ED2629E830D600DE6D67 /* ARTInternalLog+Testing.h in Headers */, D746AE1D1BBB5207003ECEF8 /* ARTDataQuery.h in Headers */, D71966E41E5DF360000974DD /* ARTPushActivationStateMachine.h in Headers */, @@ -2438,6 +2444,7 @@ D710D51821949C42008F54AD /* ARTPushChannelSubscription.h in Headers */, D710D4B421949B47008F54AD /* ARTAuth+Private.h in Headers */, D710D4C221949B9C008F54AD /* ARTRealtimeTransport.h in Headers */, + 807107BC2C619E7100461AC6 /* Ably-Swift.h in Headers */, D710D58121949D28008F54AD /* ARTTokenRequest.h in Headers */, D710D68421949ECE008F54AD /* ARTNSDictionary+ARTDictionaryUtil.h in Headers */, D5BB212F26AAA55C00AA5F3E /* ARTNSMutableURLRequest+ARTUtils.h in Headers */, @@ -2605,6 +2612,7 @@ D710D69C21949F00008F54AD /* ARTJsonEncoder.h in Headers */, D710D5C921949D50008F54AD /* ARTTokenParams+Private.h in Headers */, D710D52A21949C44008F54AD /* ARTPushChannelSubscription.h in Headers */, + 807107BD2C619E7100461AC6 /* Ably-Swift.h in Headers */, D710D4BA21949B48008F54AD /* ARTAuth+Private.h in Headers */, D710D4C621949B9D008F54AD /* ARTRealtimeTransport.h in Headers */, D710D5A721949D2A008F54AD /* ARTTokenRequest.h in Headers */, @@ -2719,6 +2727,7 @@ 856AAC871B6E304B00B07119 /* Frameworks */, 856AAC881B6E304B00B07119 /* Resources */, D736A1221F917830005ABE81 /* Copy Carthage Frameworks to Test bundle */, + 807107BE2C61A05E00461AC6 /* ShellScript */, ); buildRules = ( ); @@ -2738,7 +2747,7 @@ 96BF612D1A35B2AB004CF2B3 /* Frameworks */, 96BF612E1A35B2AB004CF2B3 /* Headers */, 96BF612F1A35B2AB004CF2B3 /* Resources */, - 804A521B2BF4389000CE0ACD /* ShellScript */, + 804A521B2BF4389000CE0ACD /* Run Script */, ); buildRules = ( ); @@ -2795,6 +2804,7 @@ D710D457219495E2008F54AD /* Sources */, D710D458219495E2008F54AD /* Frameworks */, D710D459219495E2008F54AD /* Resources */, + 807107B82C619D3C00461AC6 /* ShellScript */, ); buildRules = ( ); @@ -2813,6 +2823,7 @@ D710D471219495FC008F54AD /* Sources */, D710D472219495FC008F54AD /* Frameworks */, D710D473219495FC008F54AD /* Resources */, + 807107B92C619D4800461AC6 /* ShellScript */, ); buildRules = ( ); @@ -3005,7 +3016,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 804A521B2BF4389000CE0ACD /* ShellScript */ = { + 804A521B2BF4389000CE0ACD /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; @@ -3015,6 +3026,58 @@ ); inputPaths = ( ); + name = "Run Script"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#!/bin/bash\n\n# Define the target directory where files will be copied\ntarget_dir=\"${SRCROOT}/Source/include/Ably\"\n\n# Ensure the target include path exists\nmkdir -p \"${target_dir}\"\n\n# Define the path to the Swift generated headers\n\n\nswift_headers_dir=\"${BUILT_PRODUCTS_DIR}/Ably.framework/Headers\"\n\n# Check if there are any Swift generated header files to copy\nif ls \"${swift_headers_dir}\"/*-Swift.h 1> /dev/null 2>&1; then\n # Copy Swift generated header files to the target directory\n cp \"${swift_headers_dir}\"/*-Swift.h \"${target_dir}\"\n echo \"Swift generated header files copied to ${target_dir}\"\nelse\n echo \"No Swift generated header files found in ${swift_headers_dir}\"\nfi\n"; + }; + 807107B82C619D3C00461AC6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#!/bin/bash\n\n# Define the target directory where files will be copied\ntarget_dir=\"${SRCROOT}/Source/include/Ably\"\n\n# Ensure the target include path exists\nmkdir -p \"${target_dir}\"\n\n# Define the path to the Swift generated headers\n\n\nswift_headers_dir=\"${BUILT_PRODUCTS_DIR}/Ably.framework/Headers\"\n\n# Check if there are any Swift generated header files to copy\nif ls \"${swift_headers_dir}\"/*-Swift.h 1> /dev/null 2>&1; then\n # Copy Swift generated header files to the target directory\n cp \"${swift_headers_dir}\"/*-Swift.h \"${target_dir}\"\n echo \"Swift generated header files copied to ${target_dir}\"\nelse\n echo \"No Swift generated header files found in ${swift_headers_dir}\"\nfi\n"; + }; + 807107B92C619D4800461AC6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#!/bin/bash\n\n# Define the target directory where files will be copied\ntarget_dir=\"${SRCROOT}/Source/include/Ably\"\n\n# Ensure the target include path exists\nmkdir -p \"${target_dir}\"\n\n# Define the path to the Swift generated headers\n\n\nswift_headers_dir=\"${BUILT_PRODUCTS_DIR}/Ably.framework/Headers\"\n\n# Check if there are any Swift generated header files to copy\nif ls \"${swift_headers_dir}\"/*-Swift.h 1> /dev/null 2>&1; then\n # Copy Swift generated header files to the target directory\n cp \"${swift_headers_dir}\"/*-Swift.h \"${target_dir}\"\n echo \"Swift generated header files copied to ${target_dir}\"\nelse\n echo \"No Swift generated header files found in ${swift_headers_dir}\"\nfi\n"; + }; + 807107BE2C61A05E00461AC6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); outputFileListPaths = ( ); outputPaths = ( @@ -3651,6 +3714,7 @@ 856AAC931B6E304B00B07119 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ENABLE_MODULES = YES; DEBUG_INFORMATION_FORMAT = dwarf; DYLIB_COMPATIBILITY_VERSION = 1; @@ -3679,6 +3743,7 @@ 856AAC941B6E304B00B07119 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ENABLE_MODULES = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -3711,6 +3776,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -3782,6 +3848,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -3917,6 +3984,7 @@ D7093C13219E2DB200723F17 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -3953,6 +4021,7 @@ D7093C14219E2DB200723F17 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -3987,6 +4056,7 @@ D7093C69219EE1AE00723F17 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -4022,6 +4092,7 @@ D7093C6A219EE1AE00723F17 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; diff --git a/Examples/Tests/Podfile b/Examples/Tests/Podfile index 61ddf3a8c..613a58899 100644 --- a/Examples/Tests/Podfile +++ b/Examples/Tests/Podfile @@ -1,4 +1,4 @@ -platform :ios, '10.0' +platform :ios, '14.0' use_frameworks! pod 'Ably', :path => '../..' diff --git a/Source/include/Ably/Ably.h b/Source/include/Ably/Ably.h index 1e79fb2dc..fe1d42142 100644 --- a/Source/include/Ably/Ably.h +++ b/Source/include/Ably/Ably.h @@ -63,3 +63,4 @@ FOUNDATION_EXPORT const unsigned char ablyVersionString[]; #import #import #import +#import diff --git a/Test/Tests/AuthTests.swift b/Test/Tests/AuthTests.swift index 2c8e5ec86..a57f6c7ef 100644 --- a/Test/Tests/AuthTests.swift +++ b/Test/Tests/AuthTests.swift @@ -545,7 +545,8 @@ class AuthTests: XCTestCase { var authCallbackHasBeenInvoked = false options.authCallback = { _, completion in authCallbackHasBeenInvoked = true - completion(nil, ErrorInfo(domain: "io.ably.cocoa", code: ARTErrorCode.forbidden.intValue, userInfo: ["ErrorInfoStatusCode": 403])) + let code = ErrorInfo.create(withCode: ARTErrorCode.forbidden.intValue, status: 403, message: "") + completion(nil, code) } let realtime = Realtime(options: options) defer { realtime.dispose(); realtime.close() }