diff --git a/submodules/AppBundle/Sources/AppBundle/AppBundle.m b/submodules/AppBundle/Sources/AppBundle/AppBundle.m index 66f5e08fc8..e93a19a70d 100644 --- a/submodules/AppBundle/Sources/AppBundle/AppBundle.m +++ b/submodules/AppBundle/Sources/AppBundle/AppBundle.m @@ -1,15 +1,21 @@ #import NSBundle * _Nonnull getAppBundle() { - NSBundle *bundle = [NSBundle mainBundle]; - if ([[bundle.bundleURL pathExtension] isEqualToString:@"appex"]) { - bundle = [NSBundle bundleWithURL:[[bundle.bundleURL URLByDeletingLastPathComponent] URLByDeletingLastPathComponent]]; - } else if ([[bundle.bundleURL pathExtension] isEqualToString:@"framework"]) { - bundle = [NSBundle bundleWithURL:[[bundle.bundleURL URLByDeletingLastPathComponent] URLByDeletingLastPathComponent]]; - } else if ([[bundle.bundleURL pathExtension] isEqualToString:@"Frameworks"]) { - bundle = [NSBundle bundleWithURL:[bundle.bundleURL URLByDeletingLastPathComponent]]; - } - return bundle; + static NSBundle *appBundle = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSBundle *bundle = [NSBundle mainBundle]; + if ([[bundle.bundleURL pathExtension] isEqualToString:@"appex"]) { + bundle = [NSBundle bundleWithURL:[[bundle.bundleURL URLByDeletingLastPathComponent] URLByDeletingLastPathComponent]]; + } else if ([[bundle.bundleURL pathExtension] isEqualToString:@"framework"]) { + bundle = [NSBundle bundleWithURL:[[bundle.bundleURL URLByDeletingLastPathComponent] URLByDeletingLastPathComponent]]; + } else if ([[bundle.bundleURL pathExtension] isEqualToString:@"Frameworks"]) { + bundle = [NSBundle bundleWithURL:[bundle.bundleURL URLByDeletingLastPathComponent]]; + } + appBundle = bundle; + }); + + return appBundle; } @implementation UIImage (AppBundle)