diff --git a/ios/RNMParticle.xcodeproj/project.pbxproj b/ios/RNMParticle.xcodeproj/project.pbxproj index f1373fa..6e7405e 100644 --- a/ios/RNMParticle.xcodeproj/project.pbxproj +++ b/ios/RNMParticle.xcodeproj/project.pbxproj @@ -38,6 +38,7 @@ B39BCD932E30562400FC90B8 /* RoktLayoutManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoktLayoutManager.m; sourceTree = ""; }; C4A1D2E32F6A000100ABCDEF /* RoktPlaceholderRegistry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoktPlaceholderRegistry.h; sourceTree = ""; }; C4A1D2E42F6A000100ABCDEF /* RoktPlaceholderRegistry.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoktPlaceholderRegistry.m; sourceTree = ""; }; + C4A1D2E62F6A000100ABCDEF /* RNMPSDKImports.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNMPSDKImports.h; sourceTree = ""; }; B39BCD942E30562400FC90B8 /* RoktNativeLayoutComponentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoktNativeLayoutComponentView.h; sourceTree = ""; }; B39BCD952E30562400FC90B8 /* RoktNativeLayoutComponentView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = RoktNativeLayoutComponentView.mm; sourceTree = ""; }; DBDF24D71E007EB1000F3D73 /* libRNMParticle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNMParticle.a; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -79,6 +80,7 @@ B39BCD932E30562400FC90B8 /* RoktLayoutManager.m */, C4A1D2E32F6A000100ABCDEF /* RoktPlaceholderRegistry.h */, C4A1D2E42F6A000100ABCDEF /* RoktPlaceholderRegistry.m */, + C4A1D2E62F6A000100ABCDEF /* RNMPSDKImports.h */, B39BCD942E30562400FC90B8 /* RoktNativeLayoutComponentView.h */, B39BCD952E30562400FC90B8 /* RoktNativeLayoutComponentView.mm */, B39BCD892E2A06D700FC90B8 /* RNMPRokt.h */, diff --git a/ios/RNMParticle/RNMPRokt.mm b/ios/RNMParticle/RNMPRokt.mm index fe9f297..aa78901 100644 --- a/ios/RNMParticle/RNMPRokt.mm +++ b/ios/RNMParticle/RNMPRokt.mm @@ -1,20 +1,5 @@ #import "RNMPRokt.h" -// SDK 9.0: ObjC headers moved to mParticle_Apple_SDK_ObjC module -#if defined(__has_include) && __has_include() - #import - #import -#elif defined(__has_include) && __has_include() - #import - #import -#else - #import - #import -#endif -#if __has_include() - #import -#elif __has_include() - #import -#endif +#import "RNMPSDKImports.h" #import #import #import diff --git a/ios/RNMParticle/RNMPSDKImports.h b/ios/RNMParticle/RNMPSDKImports.h new file mode 100644 index 0000000..48cc4bc --- /dev/null +++ b/ios/RNMParticle/RNMPSDKImports.h @@ -0,0 +1,28 @@ +// Private: the mParticle and RoktContracts headers, for every way an app can supply the SDKs. +// - CocoaPods (static library or framework): , +// - a manually embedded xcframework: , +// - flat public headers on the search path, as in a Swift Package Manager build: "mParticle.h" +// - last resort, module import: works in .m files only, because this pod builds .mm files +// without -fcxx-modules. +#if __has_include() + #import + #import +#elif __has_include() + #import + #import +#elif __has_include("mParticle.h") + #import "mParticle.h" + #import "MPRokt.h" +#else + @import mParticle_Apple_SDK_ObjC; +#endif + +#if __has_include() + #import +#elif __has_include() + #import +#elif __has_include("RoktContracts-Swift.h") + #import "RoktContracts-Swift.h" +#else + @import RoktContracts; +#endif diff --git a/ios/RNMParticle/RNMParticle.mm b/ios/RNMParticle/RNMParticle.mm index 01529f1..b4d71fd 100644 --- a/ios/RNMParticle/RNMParticle.mm +++ b/ios/RNMParticle/RNMParticle.mm @@ -1,14 +1,6 @@ #import "RNMParticle.h" #import -// SDK 9.0: ObjC headers moved to mParticle_Apple_SDK_ObjC module -#if defined(__has_include) && __has_include() - #import -#elif defined(__has_include) && __has_include() - #import -#else - #import -#endif -#import +#import "RNMPSDKImports.h" #import #if DEBUG #import diff --git a/ios/RNMParticle/RoktEventManager.mm b/ios/RNMParticle/RoktEventManager.mm index e8a5d92..f8fc373 100644 --- a/ios/RNMParticle/RoktEventManager.mm +++ b/ios/RNMParticle/RoktEventManager.mm @@ -1,11 +1,5 @@ #import "RoktEventManager.h" -// Not `@import RoktContracts` -- this file is Objective-C++ and the pod builds without -// -fcxx-modules, so the module import fails. Matches how RNMPRokt.mm imports the same types. -#if __has_include() - #import -#elif __has_include() - #import -#endif +#import "RNMPSDKImports.h" #import static os_log_t _rokt_events_os_log(void) { diff --git a/ios/RNMParticle/RoktLayoutManager.m b/ios/RNMParticle/RoktLayoutManager.m index c0ec142..873feca 100644 --- a/ios/RNMParticle/RoktLayoutManager.m +++ b/ios/RNMParticle/RoktLayoutManager.m @@ -1,11 +1,6 @@ #import #import -#if defined(__has_include) && __has_include() - #import -#else - #import -#endif -@import RoktContracts; +#import "RNMPSDKImports.h" #import #import "RoktPlaceholderRegistry.h" diff --git a/ios/RNMParticle/RoktNativeLayoutComponentView.h b/ios/RNMParticle/RoktNativeLayoutComponentView.h index 81a8258..e19adb8 100644 --- a/ios/RNMParticle/RoktNativeLayoutComponentView.h +++ b/ios/RNMParticle/RoktNativeLayoutComponentView.h @@ -2,16 +2,7 @@ #import #import #import -#if defined(__has_include) && __has_include() - #import -#else - #import -#endif -#if __has_include() - #import -#elif __has_include() - #import -#endif +#import "RNMPSDKImports.h" #ifndef RoktNativeLayoutComponentView_h #define RoktNativeLayoutComponentView_h