Skip to content

Commit 717b28c

Browse files
authored
Fix IterableDataRegion by adding @objc annotation and creating Object… (#913)
1 parent 8e9edf6 commit 717b28c

File tree

4 files changed

+49
-3
lines changed

4 files changed

+49
-3
lines changed

swift-sdk.xcodeproj/project.pbxproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@
162162
5B5AA716284F1A6D0093FED4 /* MockNetworkSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B5AA710284F1A6D0093FED4 /* MockNetworkSession.swift */; };
163163
5B5AA717284F1A6D0093FED4 /* MockNetworkSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B5AA710284F1A6D0093FED4 /* MockNetworkSession.swift */; };
164164
5B6C3C1127CE871F00B9A753 /* NavInboxSessionUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B6C3C1027CE871F00B9A753 /* NavInboxSessionUITests.swift */; };
165+
8A272FD02DD3775800634559 /* IterableDataRegionObjCTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A272FCF2DD3775800634559 /* IterableDataRegionObjCTests.m */; };
165166
8AAA8BA92D07310600DF8220 /* IterableSDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AAA8B6C2D07310600DF8220 /* IterableSDK.h */; };
166167
8AAA8BAB2D07310600DF8220 /* IterableAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AAA8B1F2D07310600DF8220 /* IterableAction.swift */; };
167168
8AAA8BB12D07310600DF8220 /* IterableActionContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AAA8B202D07310600DF8220 /* IterableActionContext.swift */; };
@@ -588,6 +589,8 @@
588589
5B5AA710284F1A6D0093FED4 /* MockNetworkSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockNetworkSession.swift; sourceTree = "<group>"; };
589590
5B6C3C1027CE871F00B9A753 /* NavInboxSessionUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavInboxSessionUITests.swift; sourceTree = "<group>"; };
590591
5BFC7CED27FC9AF300E77479 /* inbox-ui-tests-app.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "inbox-ui-tests-app.entitlements"; sourceTree = "<group>"; };
592+
8A272FCF2DD3775800634559 /* IterableDataRegionObjCTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IterableDataRegionObjCTests.m; sourceTree = "<group>"; };
593+
8A272FD12DD3775900634559 /* unit-tests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "unit-tests-Bridging-Header.h"; sourceTree = "<group>"; };
591594
8AAA8B1E2D07310600DF8220 /* CommerceItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommerceItem.swift; sourceTree = "<group>"; };
592595
8AAA8B1F2D07310600DF8220 /* IterableAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IterableAction.swift; sourceTree = "<group>"; };
593596
8AAA8B202D07310600DF8220 /* IterableActionContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IterableActionContext.swift; sourceTree = "<group>"; };
@@ -1363,6 +1366,7 @@
13631366
AC7B142C20D02CE200877BFE /* unit-tests */ = {
13641367
isa = PBXGroup;
13651368
children = (
1369+
8A272FCF2DD3775800634559 /* IterableDataRegionObjCTests.m */,
13661370
1CBFFE152A97AEDC00ED57EE /* embedded-messaging-tests */,
13671371
552A0AAA280E24E400A80963 /* api-tests */,
13681372
AC3A3029262EE04400425435 /* deep-linking-tests */,
@@ -1377,6 +1381,7 @@
13771381
AC2C668620D3435700D46CC9 /* ActionRunnerTests.swift */,
13781382
55B9F15024B3D33700E8198A /* AuthTests.swift */,
13791383
ACB37AAF240268A60093A8EA /* SampleInboxViewDelegateImplementations.swift */,
1384+
8A272FD12DD3775900634559 /* unit-tests-Bridging-Header.h */,
13801385
);
13811386
path = "unit-tests";
13821387
sourceTree = "<group>";
@@ -1844,6 +1849,7 @@
18441849
};
18451850
AC7B142A20D02CE200877BFE = {
18461851
CreatedOnToolsVersion = 9.4;
1852+
LastSwiftMigration = 1620;
18471853
TestTargetID = ACF560D220E443BF000AAC23;
18481854
};
18491855
AC90C4C320D8632D00EECA5D = {
@@ -2223,6 +2229,7 @@
22232229
ACAA816E231163660035C743 /* RequestCreatorTests.swift in Sources */,
22242230
ACE34AB5213776CB00691224 /* LocalStorageTests.swift in Sources */,
22252231
55B37FEE229F59290042F13A /* InAppPersistenceTests.swift in Sources */,
2232+
8A272FD02DD3775800634559 /* IterableDataRegionObjCTests.m in Sources */,
22262233
AC6FDD8C20F56309005D811E /* InAppParsingTests.swift in Sources */,
22272234
5531CDAE22A9C992000D05E2 /* ClassExtensionsTests.swift in Sources */,
22282235
AC995F9E2167E9FD0099A184 /* CommonExtensions.swift in Sources */,
@@ -2822,6 +2829,7 @@
28222829
isa = XCBuildConfiguration;
28232830
buildSettings = {
28242831
BUNDLE_LOADER = "$(TEST_HOST)";
2832+
CLANG_ENABLE_MODULES = YES;
28252833
CODE_SIGN_STYLE = Automatic;
28262834
DEVELOPMENT_TEAM = BP98Z28R86;
28272835
INFOPLIST_FILE = "Tests/unit-tests/Info.plist";
@@ -2833,6 +2841,8 @@
28332841
);
28342842
PRODUCT_BUNDLE_IDENTIFIER = "iterable.unit-tests";
28352843
PRODUCT_NAME = "$(TARGET_NAME)";
2844+
SWIFT_OBJC_BRIDGING_HEADER = "tests/unit-tests/unit-tests-Bridging-Header.h";
2845+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
28362846
TARGETED_DEVICE_FAMILY = "1,2";
28372847
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/host-app.app/host-app";
28382848
};
@@ -2842,6 +2852,7 @@
28422852
isa = XCBuildConfiguration;
28432853
buildSettings = {
28442854
BUNDLE_LOADER = "$(TEST_HOST)";
2855+
CLANG_ENABLE_MODULES = YES;
28452856
CODE_SIGN_STYLE = Automatic;
28462857
DEVELOPMENT_TEAM = BP98Z28R86;
28472858
INFOPLIST_FILE = "Tests/unit-tests/Info.plist";
@@ -2853,6 +2864,7 @@
28532864
);
28542865
PRODUCT_BUNDLE_IDENTIFIER = "iterable.unit-tests";
28552866
PRODUCT_NAME = "$(TARGET_NAME)";
2867+
SWIFT_OBJC_BRIDGING_HEADER = "tests/unit-tests/unit-tests-Bridging-Header.h";
28562868
TARGETED_DEVICE_FAMILY = "1,2";
28572869
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/host-app.app/host-app";
28582870
};

swift-sdk/Core/Constants.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,9 +303,9 @@ enum JsonValue {
303303
}
304304
}
305305

306-
public enum IterableDataRegion {
307-
public static let US = "https://api.iterable.com/api/"
308-
public static let EU = "https://api.eu.iterable.com/api/"
306+
@objc public class IterableDataRegion: NSObject {
307+
@objc public static let US = "https://api.iterable.com/api/"
308+
@objc public static let EU = "https://api.eu.iterable.com/api/"
309309
}
310310

311311
public protocol JsonValueRepresentable {
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
//
2+
// IterableDataRegionObjCTests.m
3+
// unit-tests
4+
//
5+
// Copyright © 2024 Iterable. All rights reserved.
6+
//
7+
8+
#import <XCTest/XCTest.h>
9+
@import IterableSDK;
10+
11+
@interface IterableDataRegionObjCTests : XCTestCase
12+
13+
@end
14+
15+
@implementation IterableDataRegionObjCTests
16+
17+
- (void)testIterableDataRegionIsAccessibleFromObjectiveC {
18+
// Setup a config
19+
IterableConfig *config = [[IterableConfig alloc] init];
20+
21+
// Test that we can set the data region
22+
config.dataRegion = IterableDataRegion.US;
23+
XCTAssertEqualObjects(config.dataRegion, @"https://api.iterable.com/api/");
24+
25+
// Test changing to EU region
26+
config.dataRegion = IterableDataRegion.EU;
27+
XCTAssertEqualObjects(config.dataRegion, @"https://api.eu.iterable.com/api/");
28+
}
29+
30+
@end
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
//
2+
// Use this file to import your target's public headers that you would like to expose to Swift.
3+
//
4+

0 commit comments

Comments
 (0)