diff --git a/MacOS-11+/BlueBubblesHelper.xcworkspace/xcuserdata/tanay.xcuserdatad/UserInterfaceState.xcuserstate b/MacOS-11+/BlueBubblesHelper.xcworkspace/xcuserdata/tanay.xcuserdatad/UserInterfaceState.xcuserstate index 634de6b..ebc78f5 100644 Binary files a/MacOS-11+/BlueBubblesHelper.xcworkspace/xcuserdata/tanay.xcuserdatad/UserInterfaceState.xcuserstate and b/MacOS-11+/BlueBubblesHelper.xcworkspace/xcuserdata/tanay.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/MacOS-11+/BlueBubblesHelper/BlueBubblesHelper.m b/MacOS-11+/BlueBubblesHelper/BlueBubblesHelper.m index b940fd1..3a45f66 100644 --- a/MacOS-11+/BlueBubblesHelper/BlueBubblesHelper.m +++ b/MacOS-11+/BlueBubblesHelper/BlueBubblesHelper.m @@ -705,8 +705,9 @@ +(void) sendMessage: (NSDictionary *) data transfers: (NSArray *) transfers attr if ([items isKindOfClass:[NSArray class]]) { for (IMMessagePartChatItem *i in (NSArray *) items) { // IMAggregateAttachmentMessagePartChatItem is a photo gallery and has subparts - // Only available Monterey+ - if ([[NSProcessInfo processInfo] operatingSystemVersion].majorVersion > 11 && [i isKindOfClass:[IMAggregateAttachmentMessagePartChatItem class]]) { + // Only available Monterey+, use reference to class loaded at runtime to avoid crashes on Big Sur + Class cls = NSClassFromString(@"IMAggregateAttachmentMessagePartChatItem"); + if ([[NSProcessInfo processInfo] operatingSystemVersion].majorVersion > 11 && [i isKindOfClass:cls]) { IMAggregateAttachmentMessagePartChatItem *aggregate = i; for (IMMessagePartChatItem *i2 in [aggregate aggregateAttachmentParts]) { if ([i2 index] == [data[@"partIndex"] integerValue]) { diff --git a/MacOS-11+/Pods/Pods.xcodeproj/project.pbxproj b/MacOS-11+/Pods/Pods.xcodeproj/project.pbxproj index 6d63970..8bf7320 100644 --- a/MacOS-11+/Pods/Pods.xcodeproj/project.pbxproj +++ b/MacOS-11+/Pods/Pods.xcodeproj/project.pbxproj @@ -44,11 +44,11 @@ 5999AF793260B7F2790B0EEA3D9CCE04 /* Pods-BlueBubblesHelper-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BlueBubblesHelper-acknowledgements.markdown"; sourceTree = ""; }; 59C3223CF2FC7937F3FAE14E899DA3F9 /* Pods-BlueBubblesHelper DyLib-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BlueBubblesHelper DyLib-dummy.m"; sourceTree = ""; }; 6B8803A1293D40983B2E9B42B5F15283 /* Pods-BlueBubblesHelper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BlueBubblesHelper.release.xcconfig"; sourceTree = ""; }; - 6CBEFE4F9E22AFDC6347A739BB35FF8C /* CocoaAsyncSocket */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = CocoaAsyncSocket; path = libCocoaAsyncSocket.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 6CBEFE4F9E22AFDC6347A739BB35FF8C /* libCocoaAsyncSocket.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libCocoaAsyncSocket.a; sourceTree = BUILT_PRODUCTS_DIR; }; 77BF36A1C6C6B0703C6435C2FE0CCE57 /* Pods-BlueBubblesHelper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BlueBubblesHelper-dummy.m"; sourceTree = ""; }; 8107E0304B553EAA2D2EAFF466DA7FF9 /* CocoaAsyncSocket.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaAsyncSocket.release.xcconfig; sourceTree = ""; }; 86AD2C54CD8661FCCC5D404CE6F55564 /* CocoaAsyncSocket.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaAsyncSocket.debug.xcconfig; 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; }; A0F76041041492977D2608618C2DD383 /* Pods-BlueBubblesHelper */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "Pods-BlueBubblesHelper"; path = "libPods-BlueBubblesHelper.a"; sourceTree = BUILT_PRODUCTS_DIR; }; B658275E5FC3C66A7802C570535B242C /* GCDAsyncUdpSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDAsyncUdpSocket.h; path = Source/GCD/GCDAsyncUdpSocket.h; sourceTree = ""; }; C439B42C78960D0CD0C68788B8DC1C6B /* GCDAsyncSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDAsyncSocket.h; path = Source/GCD/GCDAsyncSocket.h; sourceTree = ""; }; @@ -92,14 +92,13 @@ FA9B822C6E137A44BCB98BDA5967BDE4 /* GCDAsyncUdpSocket.m */, C2E6A04417A4BBD802945B171BCE6461 /* Support Files */, ); - name = CocoaAsyncSocket; path = CocoaAsyncSocket; sourceTree = ""; }; 7B82EC30033678F7D9CF83CBE4716F8B /* Products */ = { isa = PBXGroup; children = ( - 6CBEFE4F9E22AFDC6347A739BB35FF8C /* CocoaAsyncSocket */, + 6CBEFE4F9E22AFDC6347A739BB35FF8C /* libCocoaAsyncSocket.a */, A0F76041041492977D2608618C2DD383 /* Pods-BlueBubblesHelper */, 33B6DB1F6D86539E8B6FA1534E65C726 /* Pods-BlueBubblesHelper DyLib */, ); @@ -240,7 +239,7 @@ ); name = CocoaAsyncSocket; productName = CocoaAsyncSocket; - productReference = 6CBEFE4F9E22AFDC6347A739BB35FF8C /* CocoaAsyncSocket */; + productReference = 6CBEFE4F9E22AFDC6347A739BB35FF8C /* libCocoaAsyncSocket.a */; productType = "com.apple.product-type.library.static"; }; 86DDC13B72F5A0605F1FB5E3ED27B6C2 /* Pods-BlueBubblesHelper */ = { @@ -381,7 +380,10 @@ isa = XCBuildConfiguration; baseConfigurationReference = 8107E0304B553EAA2D2EAFF466DA7FF9 /* CocoaAsyncSocket.release.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ARCHS = ( + "$(ARCHS_STANDARD_64_BIT)", + arm64e, + ); "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -455,8 +457,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 = 5.0; SYMROOT = "${SRCROOT}/../build"; }; @@ -574,7 +575,10 @@ isa = XCBuildConfiguration; baseConfigurationReference = 86AD2C54CD8661FCCC5D404CE6F55564 /* CocoaAsyncSocket.debug.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ARCHS = ( + "$(ARCHS_STANDARD_64_BIT)", + arm64e, + ); "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";