[Crash Reporting] Replace Bugsnag with Crashlytics

It was a fun ride, but I think I want to try something different. Users,
please be sure not to have DNS blocking for Crashlytics if you want me
to have any useful bug reporting info if it crashes on you, or otherwise
blows up. Otherwise, I don't get any useful data to help me fix crashes.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
swiftingly
Christopher Snowhill 2022-06-17 00:11:48 -07:00
parent 4e782807d8
commit 95df58dd75
8 changed files with 221 additions and 212 deletions

3
.gitmodules vendored
View File

@ -22,6 +22,3 @@
[submodule "Audio/ThirdParty/r8brain-free-src"] [submodule "Audio/ThirdParty/r8brain-free-src"]
path = Audio/ThirdParty/r8brain-free-src path = Audio/ThirdParty/r8brain-free-src
url = https://github.com/kode54/r8brain-free-src url = https://github.com/kode54/r8brain-free-src
[submodule "ThirdParty/bugsnag-cocoa"]
path = ThirdParty/bugsnag-cocoa
url = https://github.com/bugsnag/bugsnag-cocoa

View File

@ -16,22 +16,18 @@
#import <MediaPlayer/MPRemoteCommandCenter.h> #import <MediaPlayer/MPRemoteCommandCenter.h>
#import <MediaPlayer/MPRemoteCommandEvent.h> #import <MediaPlayer/MPRemoteCommandEvent.h>
#import <Bugsnag/Bugsnag.h> @import Firebase;
@implementation MediaKeysApplication { @implementation MediaKeysApplication {
AppController *_appController; AppController *_appController;
} }
- (void)reportException:(NSException *)theException {
[Bugsnag notify:theException];
[super reportException:theException];
}
- (void)finishLaunching { - (void)finishLaunching {
[super finishLaunching]; [super finishLaunching];
_appController = (AppController *)[self delegate]; _appController = (AppController *)[self delegate];
[Bugsnag start]; [[NSUserDefaults standardUserDefaults] registerDefaults:@{@"NSApplicationCrashOnExceptions" : @(YES)}];
[FIRApp configure];
MPRemoteCommandCenter *remoteCommandCenter = [MPRemoteCommandCenter sharedCommandCenter]; MPRemoteCommandCenter *remoteCommandCenter = [MPRemoteCommandCenter sharedCommandCenter];

View File

@ -365,11 +365,6 @@ static PluginController *sharedPluginController = nil;
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n\ <!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n\
<plist version=\"1.0\">\n\ <plist version=\"1.0\">\n\
<dict>\n\ <dict>\n\
\t<key>bugsnag</key>\n\
\t<dict>\n\
\t\t<key>apiKey</key>\n\
\t\t<string>fd4d71d1f019581c562edab9ca019e4b</string>\n\
\t</dict>\n\
\t<key>CFBundleDevelopmentRegion</key>\n\ \t<key>CFBundleDevelopmentRegion</key>\n\
\t<string>English</string>\n\ \t<string>English</string>\n\
\t<key>CFBundleDocumentTypes</key>\n\ \t<key>CFBundleDocumentTypes</key>\n\

View File

@ -3,7 +3,7 @@
archiveVersion = 1; archiveVersion = 1;
classes = { classes = {
}; };
objectVersion = 46; objectVersion = 52;
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
@ -106,7 +106,6 @@
832C1253180BD1E2005507C1 /* Cog.help in Resources */ = {isa = PBXBuildFile; fileRef = 832C1252180BD1E2005507C1 /* Cog.help */; }; 832C1253180BD1E2005507C1 /* Cog.help in Resources */ = {isa = PBXBuildFile; fileRef = 832C1252180BD1E2005507C1 /* Cog.help */; };
832CFC4F2851AA1A002AC26F /* NSView+Visibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 832CFC4E2851AA1A002AC26F /* NSView+Visibility.m */; }; 832CFC4F2851AA1A002AC26F /* NSView+Visibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 832CFC4E2851AA1A002AC26F /* NSView+Visibility.m */; };
832CFC562851AA8B002AC26F /* SpectrumViewLegacy.m in Sources */ = {isa = PBXBuildFile; fileRef = 832CFC552851AA8B002AC26F /* SpectrumViewLegacy.m */; }; 832CFC562851AA8B002AC26F /* SpectrumViewLegacy.m in Sources */ = {isa = PBXBuildFile; fileRef = 832CFC552851AA8B002AC26F /* SpectrumViewLegacy.m */; };
833C02672855642F00A7A159 /* Bugsnag.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 837E5ACB2852D5B80020D205 /* Bugsnag.framework */; };
833D0C2527C4ABB80060E16A /* ScriptAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 833D0C2427C4ABB80060E16A /* ScriptAdditions.m */; }; 833D0C2527C4ABB80060E16A /* ScriptAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 833D0C2427C4ABB80060E16A /* ScriptAdditions.m */; };
83489C6B2782F78700BDCEA2 /* libvgmPlayer.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83489C542782F2DF00BDCEA2 /* libvgmPlayer.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 83489C6B2782F78700BDCEA2 /* libvgmPlayer.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83489C542782F2DF00BDCEA2 /* libvgmPlayer.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
8349270C27B4EFFC0009AB2B /* duplicateItemsTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 8349270127B4EFFC0009AB2B /* duplicateItemsTemplate.pdf */; }; 8349270C27B4EFFC0009AB2B /* duplicateItemsTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 8349270127B4EFFC0009AB2B /* duplicateItemsTemplate.pdf */; };
@ -153,8 +152,6 @@
8377C6B927B900F000E8BC0F /* SpectrumItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8377C6B827B900F000E8BC0F /* SpectrumItem.m */; }; 8377C6B927B900F000E8BC0F /* SpectrumItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8377C6B827B900F000E8BC0F /* SpectrumItem.m */; };
837DC92B285B05710005C58A /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 837DC92A285B05710005C58A /* CoreData.framework */; }; 837DC92B285B05710005C58A /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 837DC92A285B05710005C58A /* CoreData.framework */; };
837DC931285B3F790005C58A /* DataModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 837DC92F285B3F790005C58A /* DataModel.xcdatamodeld */; }; 837DC931285B3F790005C58A /* DataModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 837DC92F285B3F790005C58A /* DataModel.xcdatamodeld */; };
837E5ADF2852D5FD0020D205 /* Bugsnag.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 837E5ACB2852D5B80020D205 /* Bugsnag.framework */; };
837E5AE02852D5FD0020D205 /* Bugsnag.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 837E5ACB2852D5B80020D205 /* Bugsnag.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
8381A09227C5F72F00A1C530 /* SHA256Digest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8381A09127C5F72F00A1C530 /* SHA256Digest.m */; }; 8381A09227C5F72F00A1C530 /* SHA256Digest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8381A09127C5F72F00A1C530 /* SHA256Digest.m */; };
8384914018083E4E00E7332D /* filetype.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8384913D18083E4E00E7332D /* filetype.icns */; }; 8384914018083E4E00E7332D /* filetype.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8384913D18083E4E00E7332D /* filetype.icns */; };
8384915918083EAB00E7332D /* infoTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 8384914318083EAB00E7332D /* infoTemplate.pdf */; }; 8384915918083EAB00E7332D /* infoTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 8384914318083EAB00E7332D /* infoTemplate.pdf */; };
@ -177,6 +174,9 @@
8384916E18083EAB00E7332D /* volume3Template.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 8384915818083EAB00E7332D /* volume3Template.pdf */; }; 8384916E18083EAB00E7332D /* volume3Template.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 8384915818083EAB00E7332D /* volume3Template.pdf */; };
838F851E256B4E5E00C3E614 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 838F851D256B4E5E00C3E614 /* Sparkle.framework */; }; 838F851E256B4E5E00C3E614 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 838F851D256B4E5E00C3E614 /* Sparkle.framework */; };
838F851F256B4E8B00C3E614 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 838F851D256B4E5E00C3E614 /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 838F851F256B4E8B00C3E614 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 838F851D256B4E5E00C3E614 /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
83978E16285C58190076ED21 /* FirebaseCrashlytics in Frameworks */ = {isa = PBXBuildFile; productRef = 83978E15285C58190076ED21 /* FirebaseCrashlytics */; };
83978E26285C596F0076ED21 /* FirebaseAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = 83978E25285C596F0076ED21 /* FirebaseAnalytics */; };
83978E29285C5C0A0076ED21 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 83978E28285C5C0A0076ED21 /* GoogleService-Info.plist */; };
83988F0E27BE0A5900A0E89A /* RedundantPlaylistDataStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 83988F0D27BE0A5900A0E89A /* RedundantPlaylistDataStore.m */; }; 83988F0E27BE0A5900A0E89A /* RedundantPlaylistDataStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 83988F0D27BE0A5900A0E89A /* RedundantPlaylistDataStore.m */; };
8399D4E21805A55000B503B1 /* XmlContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8399D4E01805A55000B503B1 /* XmlContainer.m */; }; 8399D4E21805A55000B503B1 /* XmlContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8399D4E01805A55000B503B1 /* XmlContainer.m */; };
839DA7CF274A2D4C001B18E5 /* NSDictionary+Merge.m in Sources */ = {isa = PBXBuildFile; fileRef = 839DA7CE274A2D4C001B18E5 /* NSDictionary+Merge.m */; }; 839DA7CF274A2D4C001B18E5 /* NSDictionary+Merge.m in Sources */ = {isa = PBXBuildFile; fileRef = 839DA7CE274A2D4C001B18E5 /* NSDictionary+Merge.m */; };
@ -552,76 +552,6 @@
remoteGlobalIDString = 8359FF1617FEF35C0060F3ED; remoteGlobalIDString = 8359FF1617FEF35C0060F3ED;
remoteInfo = ArchiveSource; remoteInfo = ArchiveSource;
}; };
837E5AC82852D5B80020D205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 00AD1C7224869B0E00A27979;
remoteInfo = "Bugsnag-iOS";
};
837E5ACA2852D5B80020D205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 00AD1CAD24869C1200A27979;
remoteInfo = "Bugsnag-macOS";
};
837E5ACC2852D5B80020D205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 00AD1CC924869C2400A27979;
remoteInfo = "Bugsnag-tvOS";
};
837E5ACE2852D5B80020D205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = CBBDE8F8280067AB0070DCD3;
remoteInfo = "Bugsnag-watchOS";
};
837E5AD02852D5B80020D205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 00AD1CE424869C6C00A27979;
remoteInfo = BugsnagStatic;
};
837E5AD22852D5B80020D205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 00AD1C7B24869B0E00A27979;
remoteInfo = "Bugsnag-iOSTests";
};
837E5AD42852D5B80020D205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 00AD1CB524869C1200A27979;
remoteInfo = "Bugsnag-macOSTests";
};
837E5AD62852D5B80020D205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 00AD1CD124869C2400A27979;
remoteInfo = "Bugsnag-tvOSTests";
};
837E5AD82852D5B80020D205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = CBBDE901280067AB0070DCD3;
remoteInfo = "Bugsnag-watchOSTests";
};
837E5ADA2852D5B80020D205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 01A6176B2733CFEA00024A0B;
remoteInfo = "TestHost-iOS";
};
83B066A0180D5669008E3612 /* PBXContainerItemProxy */ = { 83B066A0180D5669008E3612 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = 83B0669C180D5668008E3612 /* MIDI.xcodeproj */; containerPortal = 83B0669C180D5668008E3612 /* MIDI.xcodeproj */;
@ -808,7 +738,6 @@
836EF0E027BB98A800BF35B2 /* libopus.0.dylib in CopyFiles */, 836EF0E027BB98A800BF35B2 /* libopus.0.dylib in CopyFiles */,
836EF0CB27BB91EE00BF35B2 /* libFLAC.8.dylib in CopyFiles */, 836EF0CB27BB91EE00BF35B2 /* libFLAC.8.dylib in CopyFiles */,
836EF0CA27BB91EB00BF35B2 /* libvorbis.0.dylib in CopyFiles */, 836EF0CA27BB91EB00BF35B2 /* libvorbis.0.dylib in CopyFiles */,
837E5AE02852D5FD0020D205 /* Bugsnag.framework in CopyFiles */,
836EF0C927BB91E900BF35B2 /* libvorbisfile.3.dylib in CopyFiles */, 836EF0C927BB91E900BF35B2 /* libvorbisfile.3.dylib in CopyFiles */,
836EF0C827BB91E600BF35B2 /* libogg.0.dylib in CopyFiles */, 836EF0C827BB91E600BF35B2 /* libogg.0.dylib in CopyFiles */,
83AA7D07279EBCAF00087AA4 /* libswresample.4.dylib in CopyFiles */, 83AA7D07279EBCAF00087AA4 /* libswresample.4.dylib in CopyFiles */,
@ -1066,7 +995,6 @@
8377C6B827B900F000E8BC0F /* SpectrumItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SpectrumItem.m; path = Visualization/SpectrumItem.m; sourceTree = "<group>"; }; 8377C6B827B900F000E8BC0F /* SpectrumItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SpectrumItem.m; path = Visualization/SpectrumItem.m; sourceTree = "<group>"; };
837DC92A285B05710005C58A /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; 837DC92A285B05710005C58A /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
837DC930285B3F790005C58A /* DataModel.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = DataModel.xcdatamodel; sourceTree = "<group>"; }; 837DC930285B3F790005C58A /* DataModel.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = DataModel.xcdatamodel; sourceTree = "<group>"; };
837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Bugsnag.xcodeproj; path = "ThirdParty/bugsnag-cocoa/Bugsnag.xcodeproj"; sourceTree = "<group>"; };
8381A09027C5F72F00A1C530 /* SHA256Digest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SHA256Digest.h; sourceTree = "<group>"; }; 8381A09027C5F72F00A1C530 /* SHA256Digest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SHA256Digest.h; sourceTree = "<group>"; };
8381A09127C5F72F00A1C530 /* SHA256Digest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SHA256Digest.m; sourceTree = "<group>"; }; 8381A09127C5F72F00A1C530 /* SHA256Digest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SHA256Digest.m; sourceTree = "<group>"; };
8384912518080F2D00E7332D /* Logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Logging.h; sourceTree = "<group>"; }; 8384912518080F2D00E7332D /* Logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Logging.h; sourceTree = "<group>"; };
@ -1092,6 +1020,7 @@
83859520234FEB35004E9946 /* Cog.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Cog.entitlements; sourceTree = "<group>"; }; 83859520234FEB35004E9946 /* Cog.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Cog.entitlements; sourceTree = "<group>"; };
838F84FF25687C5C00C3E614 /* Cog-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Cog-Bridging-Header.h"; sourceTree = "<group>"; }; 838F84FF25687C5C00C3E614 /* Cog-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Cog-Bridging-Header.h"; sourceTree = "<group>"; };
838F851D256B4E5E00C3E614 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ThirdParty/Frameworks/Sparkle.framework; sourceTree = "<group>"; }; 838F851D256B4E5E00C3E614 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ThirdParty/Frameworks/Sparkle.framework; sourceTree = "<group>"; };
83978E28285C5C0A0076ED21 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
83988F0C27BE0A5900A0E89A /* RedundantPlaylistDataStore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RedundantPlaylistDataStore.h; sourceTree = "<group>"; }; 83988F0C27BE0A5900A0E89A /* RedundantPlaylistDataStore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RedundantPlaylistDataStore.h; sourceTree = "<group>"; };
83988F0D27BE0A5900A0E89A /* RedundantPlaylistDataStore.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RedundantPlaylistDataStore.m; sourceTree = "<group>"; }; 83988F0D27BE0A5900A0E89A /* RedundantPlaylistDataStore.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RedundantPlaylistDataStore.m; sourceTree = "<group>"; };
8399D4E01805A55000B503B1 /* XmlContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XmlContainer.m; sourceTree = "<group>"; }; 8399D4E01805A55000B503B1 /* XmlContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XmlContainer.m; sourceTree = "<group>"; };
@ -1172,13 +1101,13 @@
835FAC7F27BCDF5B00BA8562 /* libavif.a in Frameworks */, 835FAC7F27BCDF5B00BA8562 /* libavif.a in Frameworks */,
835FAC7E27BCDF5B00BA8562 /* libaom.a in Frameworks */, 835FAC7E27BCDF5B00BA8562 /* libaom.a in Frameworks */,
837DC92B285B05710005C58A /* CoreData.framework in Frameworks */, 837DC92B285B05710005C58A /* CoreData.framework in Frameworks */,
83978E26285C596F0076ED21 /* FirebaseAnalytics in Frameworks */,
17BB5CF90B8A86350009ACB1 /* AudioUnit.framework in Frameworks */, 17BB5CF90B8A86350009ACB1 /* AudioUnit.framework in Frameworks */,
17BB5CFA0B8A86350009ACB1 /* CoreAudio.framework in Frameworks */, 17BB5CFA0B8A86350009ACB1 /* CoreAudio.framework in Frameworks */,
838F851E256B4E5E00C3E614 /* Sparkle.framework in Frameworks */, 838F851E256B4E5E00C3E614 /* Sparkle.framework in Frameworks */,
833C02672855642F00A7A159 /* Bugsnag.framework in Frameworks */,
17BB5CFB0B8A86350009ACB1 /* CoreAudioKit.framework in Frameworks */, 17BB5CFB0B8A86350009ACB1 /* CoreAudioKit.framework in Frameworks */,
83978E16285C58190076ED21 /* FirebaseCrashlytics in Frameworks */,
17BB5EA60B8A87850009ACB1 /* IOKit.framework in Frameworks */, 17BB5EA60B8A87850009ACB1 /* IOKit.framework in Frameworks */,
837E5ADF2852D5FD0020D205 /* Bugsnag.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -1219,7 +1148,6 @@
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */,
ED69CBB825BE328C0090B90D /* MASShortcut.xcodeproj */, ED69CBB825BE328C0090B90D /* MASShortcut.xcodeproj */,
838F851D256B4E5E00C3E614 /* Sparkle.framework */, 838F851D256B4E5E00C3E614 /* Sparkle.framework */,
17F5612A0C3BD4DC0019975C /* CogAudio.xcodeproj */, 17F5612A0C3BD4DC0019975C /* CogAudio.xcodeproj */,
@ -1588,6 +1516,7 @@
29B97314FDCFA39411CA2CEA /* Cog */ = { 29B97314FDCFA39411CA2CEA /* Cog */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
83978E28285C5C0A0076ED21 /* GoogleService-Info.plist */,
83D0380E24A40DF2004CF90F /* CogAssets.xcassets */, 83D0380E24A40DF2004CF90F /* CogAssets.xcassets */,
83859520234FEB35004E9946 /* Cog.entitlements */, 83859520234FEB35004E9946 /* Cog.entitlements */,
080E96DDFE201D6D7F000001 /* Classes */, 080E96DDFE201D6D7F000001 /* Classes */,
@ -1923,23 +1852,6 @@
name = Visualization; name = Visualization;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
837E5ABC2852D5B80020D205 /* Products */ = {
isa = PBXGroup;
children = (
837E5AC92852D5B80020D205 /* Bugsnag.framework */,
837E5ACB2852D5B80020D205 /* Bugsnag.framework */,
837E5ACD2852D5B80020D205 /* Bugsnag.framework */,
837E5ACF2852D5B80020D205 /* Bugsnag.framework */,
837E5AD12852D5B80020D205 /* libBugsnagStatic.a */,
837E5AD32852D5B80020D205 /* Bugsnag-iOSTests.xctest */,
837E5AD52852D5B80020D205 /* Bugsnag-macOSTests.xctest */,
837E5AD72852D5B80020D205 /* Bugsnag-tvOSTests.xctest */,
837E5AD92852D5B80020D205 /* Bugsnag-watchOSTests.xctest */,
837E5ADB2852D5B80020D205 /* TestHost-iOS.app */,
);
name = Products;
sourceTree = "<group>";
};
83B0669D180D5668008E3612 /* Products */ = { 83B0669D180D5668008E3612 /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -2102,7 +2014,7 @@
177FD1000B90CB570011C3B5 /* CopyFiles */, 177FD1000B90CB570011C3B5 /* CopyFiles */,
07DFC3930ECDF80100DA400D /* CopyFiles */, 07DFC3930ECDF80100DA400D /* CopyFiles */,
8384911C1807E9ED00E7332D /* Run version generator script */, 8384911C1807E9ED00E7332D /* Run version generator script */,
837E5AE12852D9A00020D205 /* Run bugsnag symbol upload */, 83978E27285C5A4C0076ED21 /* Run Crashlytics symbol upload */,
); );
buildRules = ( buildRules = (
); );
@ -2140,6 +2052,10 @@
17643CBC0D5BD44900F0A9FE /* PBXTargetDependency */, 17643CBC0D5BD44900F0A9FE /* PBXTargetDependency */,
); );
name = Cog; name = Cog;
packageProductDependencies = (
83978E15285C58190076ED21 /* FirebaseCrashlytics */,
83978E25285C596F0076ED21 /* FirebaseAnalytics */,
);
productInstallPath = "$(HOME)/Applications"; productInstallPath = "$(HOME)/Applications";
productName = Cog; productName = Cog;
productReference = 1770424E0B8BC41800B86321 /* Cog.app */; productReference = 1770424E0B8BC41800B86321 /* Cog.app */;
@ -2177,6 +2093,9 @@
ja, ja,
); );
mainGroup = 29B97314FDCFA39411CA2CEA /* Cog */; mainGroup = 29B97314FDCFA39411CA2CEA /* Cog */;
packageReferences = (
83978E14285C58190076ED21 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
);
projectDirPath = ""; projectDirPath = "";
projectReferences = ( projectReferences = (
{ {
@ -2191,10 +2110,6 @@
ProductGroup = 8359FF2D17FEF35C0060F3ED /* Products */; ProductGroup = 8359FF2D17FEF35C0060F3ED /* Products */;
ProjectRef = 8359FF2C17FEF35C0060F3ED /* ArchiveSource.xcodeproj */; ProjectRef = 8359FF2C17FEF35C0060F3ED /* ArchiveSource.xcodeproj */;
}, },
{
ProductGroup = 837E5ABC2852D5B80020D205 /* Products */;
ProjectRef = 837E5ABB2852D5B80020D205 /* Bugsnag.xcodeproj */;
},
{ {
ProductGroup = 17F5612B0C3BD4DC0019975C /* Products */; ProductGroup = 17F5612B0C3BD4DC0019975C /* Products */;
ProjectRef = 17F5612A0C3BD4DC0019975C /* CogAudio.xcodeproj */; ProjectRef = 17F5612A0C3BD4DC0019975C /* CogAudio.xcodeproj */;
@ -2481,76 +2396,6 @@
remoteRef = 8372C92F27C785BE00E250C9 /* PBXContainerItemProxy */; remoteRef = 8372C92F27C785BE00E250C9 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR; sourceTree = BUILT_PRODUCTS_DIR;
}; };
837E5AC92852D5B80020D205 /* Bugsnag.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = Bugsnag.framework;
remoteRef = 837E5AC82852D5B80020D205 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
837E5ACB2852D5B80020D205 /* Bugsnag.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = Bugsnag.framework;
remoteRef = 837E5ACA2852D5B80020D205 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
837E5ACD2852D5B80020D205 /* Bugsnag.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = Bugsnag.framework;
remoteRef = 837E5ACC2852D5B80020D205 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
837E5ACF2852D5B80020D205 /* Bugsnag.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = Bugsnag.framework;
remoteRef = 837E5ACE2852D5B80020D205 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
837E5AD12852D5B80020D205 /* libBugsnagStatic.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libBugsnagStatic.a;
remoteRef = 837E5AD02852D5B80020D205 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
837E5AD32852D5B80020D205 /* Bugsnag-iOSTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = "Bugsnag-iOSTests.xctest";
remoteRef = 837E5AD22852D5B80020D205 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
837E5AD52852D5B80020D205 /* Bugsnag-macOSTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = "Bugsnag-macOSTests.xctest";
remoteRef = 837E5AD42852D5B80020D205 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
837E5AD72852D5B80020D205 /* Bugsnag-tvOSTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = "Bugsnag-tvOSTests.xctest";
remoteRef = 837E5AD62852D5B80020D205 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
837E5AD92852D5B80020D205 /* Bugsnag-watchOSTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = "Bugsnag-watchOSTests.xctest";
remoteRef = 837E5AD82852D5B80020D205 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
837E5ADB2852D5B80020D205 /* TestHost-iOS.app */ = {
isa = PBXReferenceProxy;
fileType = wrapper.application;
path = "TestHost-iOS.app";
remoteRef = 837E5ADA2852D5B80020D205 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
83B066A1180D5669008E3612 /* MIDI.bundle */ = { 83B066A1180D5669008E3612 /* MIDI.bundle */ = {
isa = PBXReferenceProxy; isa = PBXReferenceProxy;
fileType = wrapper.cfbundle; fileType = wrapper.cfbundle;
@ -2700,6 +2545,7 @@
83ED3AD1279A91C000904199 /* hdcdLogoTemplate.pdf in Resources */, 83ED3AD1279A91C000904199 /* hdcdLogoTemplate.pdf in Resources */,
836F462328207F55005B9B87 /* PlayNormal.png in Resources */, 836F462328207F55005B9B87 /* PlayNormal.png in Resources */,
8384916318083EAB00E7332D /* repeatModeAlbumTemplate.pdf in Resources */, 8384916318083EAB00E7332D /* repeatModeAlbumTemplate.pdf in Resources */,
83978E29285C5C0A0076ED21 /* GoogleService-Info.plist in Resources */,
8384916118083EAB00E7332D /* previousTemplate.pdf in Resources */, 8384916118083EAB00E7332D /* previousTemplate.pdf in Resources */,
1778D3B00F645A190037E7A0 /* missingArt.png in Resources */, 1778D3B00F645A190037E7A0 /* missingArt.png in Resources */,
8384915918083EAB00E7332D /* infoTemplate.pdf in Resources */, 8384915918083EAB00E7332D /* infoTemplate.pdf in Resources */,
@ -2709,24 +2555,6 @@
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
837E5AE12852D9A00020D205 /* Run bugsnag symbol upload */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 8;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Run bugsnag symbol upload";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 1;
shellPath = /usr/bin/ruby;
shellScript = "fork do\n Process.setsid\n STDIN.reopen(\"/dev/null\")\n STDOUT.reopen(\"/dev/null\", \"a\")\n STDERR.reopen(\"/dev/null\", \"a\")\n\n require 'shellwords'\n\n Dir[\"#{ENV[\"DWARF_DSYM_FOLDER_PATH\"]}/*/Contents/Resources/DWARF/*\"].each do |dsym|\n system(\"curl --http1.1 -F apiKey=fd4d71d1f019581c562edab9ca019e4b -F dsym=@#{Shellwords.escape(dsym)} -F projectRoot=#{Shellwords.escape(ENV[\"PROJECT_DIR\"])} https://upload.bugsnag.com/\")\n end\nend\n";
};
8384911C1807E9ED00E7332D /* Run version generator script */ = { 8384911C1807E9ED00E7332D /* Run version generator script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
@ -2741,6 +2569,26 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${PROJECT_DIR}/Scripts/genversion.sh\"\n"; shellScript = "\"${PROJECT_DIR}/Scripts/genversion.sh\"\n";
}; };
83978E27285C5A4C0076ED21 /* Run Crashlytics symbol upload */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 12;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}",
"$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
);
name = "Run Crashlytics symbol upload";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run\"\n";
};
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
@ -3115,7 +2963,11 @@
HEADER_SEARCH_PATHS = ThirdParty/avif/include; HEADER_SEARCH_PATHS = ThirdParty/avif/include;
INFOPLIST_FILE = Info.plist; INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications"; INSTALL_PATH = "$(HOME)/Applications";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
"@loader_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = ( LIBRARY_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"$(PROJECT_DIR)/ThirdParty/avif/lib", "$(PROJECT_DIR)/ThirdParty/avif/lib",
@ -3164,7 +3016,11 @@
HEADER_SEARCH_PATHS = ThirdParty/avif/include; HEADER_SEARCH_PATHS = ThirdParty/avif/include;
INFOPLIST_FILE = Info.plist; INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications"; INSTALL_PATH = "$(HOME)/Applications";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
"@loader_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = ( LIBRARY_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"$(PROJECT_DIR)/ThirdParty/avif/lib", "$(PROJECT_DIR)/ThirdParty/avif/lib",
@ -3302,6 +3158,30 @@
}; };
/* End XCConfigurationList section */ /* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
83978E14285C58190076ED21 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/firebase/firebase-ios-sdk";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 9.0.0;
};
};
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
83978E15285C58190076ED21 /* FirebaseCrashlytics */ = {
isa = XCSwiftPackageProductDependency;
package = 83978E14285C58190076ED21 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
productName = FirebaseCrashlytics;
};
83978E25285C596F0076ED21 /* FirebaseAnalytics */ = {
isa = XCSwiftPackageProductDependency;
package = 83978E14285C58190076ED21 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
productName = FirebaseAnalytics;
};
/* End XCSwiftPackageProductDependency section */
/* Begin XCVersionGroup section */ /* Begin XCVersionGroup section */
837DC92F285B3F790005C58A /* DataModel.xcdatamodeld */ = { 837DC92F285B3F790005C58A /* DataModel.xcdatamodeld */ = {
isa = XCVersionGroup; isa = XCVersionGroup;

View File

@ -0,0 +1,113 @@
{
"pins" : [
{
"identity" : "abseil-cpp-swiftpm",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/abseil-cpp-SwiftPM.git",
"state" : {
"revision" : "d302de612e3d57c6f4afaf087da18fba8eac72a7",
"version" : "0.20220203.1"
}
},
{
"identity" : "boringssl-swiftpm",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/boringssl-SwiftPM.git",
"state" : {
"revision" : "79db6516894a932d0ddaff3b05b9da1e4f6c4069",
"version" : "0.9.0"
}
},
{
"identity" : "firebase-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk",
"state" : {
"revision" : "2eb177effe7baf1f13ad0c5f4eb8c71a98429fb5",
"version" : "9.1.0"
}
},
{
"identity" : "googleappmeasurement",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
"revision" : "192cce3e0486aecfdb61102a9c694c78dc89dc48",
"version" : "9.1.0"
}
},
{
"identity" : "googledatatransport",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleDataTransport.git",
"state" : {
"revision" : "b905c49326b72211531ed9d7baa02d724828a8dc",
"version" : "9.1.4"
}
},
{
"identity" : "googleutilities",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleUtilities.git",
"state" : {
"revision" : "f4abe56ce62a779e64b525eb133c8fc2a84bbc1f",
"version" : "7.7.1"
}
},
{
"identity" : "grpc-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/grpc/grpc-ios.git",
"state" : {
"revision" : "2af4f6e9c2b18beae228f50b1198c641be859d2b",
"version" : "1.44.2-grpc"
}
},
{
"identity" : "gtm-session-fetcher",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/gtm-session-fetcher.git",
"state" : {
"revision" : "19605024d59eaefdb1f6a2cb11ebe75df4421126",
"version" : "2.0.0"
}
},
{
"identity" : "leveldb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/leveldb.git",
"state" : {
"revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b",
"version" : "1.22.2"
}
},
{
"identity" : "nanopb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/nanopb.git",
"state" : {
"revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692",
"version" : "2.30909.0"
}
},
{
"identity" : "promises",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/promises.git",
"state" : {
"revision" : "46c1e6b5ac09d8f82c991061c659f67e573d425d",
"version" : "2.1.0"
}
},
{
"identity" : "swift-protobuf",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-protobuf.git",
"state" : {
"revision" : "e1499bc69b9040b29184f7f2996f7bab467c1639",
"version" : "1.19.0"
}
}
],
"version" : 2
}

34
GoogleService-Info.plist Normal file
View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CLIENT_ID</key>
<string>408808922471-d9rq3oulde6o2et6djf7m1ul6svrpoqf.apps.googleusercontent.com</string>
<key>REVERSED_CLIENT_ID</key>
<string>com.googleusercontent.apps.408808922471-d9rq3oulde6o2et6djf7m1ul6svrpoqf</string>
<key>API_KEY</key>
<string>AIzaSyDP_Bef1CjnJHKfDBfcVFUS38JVO4dFa50</string>
<key>GCM_SENDER_ID</key>
<string>408808922471</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>org.cogx.cog</string>
<key>PROJECT_ID</key>
<string>cog-macos</string>
<key>STORAGE_BUCKET</key>
<string>cog-macos.appspot.com</string>
<key>IS_ADS_ENABLED</key>
<false></false>
<key>IS_ANALYTICS_ENABLED</key>
<false></false>
<key>IS_APPINVITE_ENABLED</key>
<true></true>
<key>IS_GCM_ENABLED</key>
<true></true>
<key>IS_SIGNIN_ENABLED</key>
<true></true>
<key>GOOGLE_APP_ID</key>
<string>1:408808922471:ios:5932eaf2b161b424eba3c2</string>
</dict>
</plist>

View File

@ -2,11 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>bugsnag</key>
<dict>
<key>apiKey</key>
<string>fd4d71d1f019581c562edab9ca019e4b</string>
</dict>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>English</string> <string>English</string>
<key>CFBundleDocumentTypes</key> <key>CFBundleDocumentTypes</key>

@ -1 +0,0 @@
Subproject commit efd8dc7af9efb2d0e3748e6e2437a5081ca0b195