diff --git a/Example/DynamicLinks/Tests/GINDurableDeepLinkServiceReceivingTests.m b/Example/DynamicLinks/Tests/GINDurableDeepLinkServiceReceivingTests.m deleted file mode 100644 index 32e165a78a8..00000000000 --- a/Example/DynamicLinks/Tests/GINDurableDeepLinkServiceReceivingTests.m +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright 2018 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -#import - -#import "DynamicLinks/GINDurableDeepLinkServiceReceiving+Private.h" -#import "OCMock.h" - -@interface GINDurableDeepLinkServiceReceivingTests : XCTestCase -@end - -@implementation GINDurableDeepLinkServiceReceivingTests - -- (void)testGINGetMainWindowRetrievesWindowWhenWindowIsKey { - UIWindow *window = [[UIWindow alloc] init]; - - id application = OCMPartialMock([UIApplication sharedApplication]); - [[[application stub] andReturn:window] keyWindow]; - - id returnedObject = GINGetMainWindow(application); - - XCTAssertEqual(returnedObject, window); -} - -- (void)testGINGetMainWindowRetrievesWindowWhenWindowIsDelegateWindowAndNotKey { - UIWindow *window = [[UIWindow alloc] init]; - - id appDelegate = OCMProtocolMock(@protocol(UIApplicationDelegate)); - [[[appDelegate stub] andReturn:window] window]; - - id application = OCMPartialMock([UIApplication sharedApplication]); - [[[application stub] andReturn:nil] keyWindow]; - [[[application stub] andReturn:appDelegate] delegate]; - - id returnedObject = GINGetMainWindow(application); - - XCTAssertEqual(returnedObject, window); -} - -- (void)testGINGetMainWindowRetrievesNilWhenNoKeyWindowAndNoDelegateWindow { - id application = OCMPartialMock([UIApplication sharedApplication]); - [[[application stub] andReturn:nil] keyWindow]; - [[[application stub] andReturn:OCMOCK_ANY] delegate]; - - id returnedObject = GINGetMainWindow(application); - - XCTAssertNil(returnedObject); -} - -- (void)testGINGetTopViewControllerFromViewControllerReturnsNilWithNilVC { - id returnedObject = GINGetTopViewControllerFromViewController(nil); - - XCTAssertNil(returnedObject); -} - -- (void)testGINGetTopViewControllerFromViewControllerReturnsSameVCWhenNotAContainerVC { - UIViewController *viewController = [[UIViewController alloc] init]; - id returnedObject = GINGetTopViewControllerFromViewController(viewController); - - XCTAssertEqual(viewController, returnedObject); -} - -- (void)testGINGetTopViewControllerFromViewControllerReturnsTopVCOfNavVC { - UIViewController *topViewController = [[UIViewController alloc] init]; - UINavigationController *navViewController = - [[UINavigationController alloc] initWithRootViewController:topViewController]; - - id returnedObject = GINGetTopViewControllerFromViewController(navViewController); - - XCTAssertEqual(topViewController, returnedObject); -} - -- (void)testGINGetTopViewControllerFromViewControllerReturnsFocusOfTabVC { - UIViewController *tabVC = [[UIViewController alloc] init]; - UITabBarController *tabBarController = [[UITabBarController alloc] init]; - tabBarController.viewControllers = @[ tabVC ]; - - id returnedObject = GINGetTopViewControllerFromViewController(tabBarController); - - XCTAssertEqual(tabVC, returnedObject); -} - -- (void)testGINGetTopViewControllerFromViewControllerRetunsPresentedViewController { - UIViewController *presentedViewController = [[UIViewController alloc] init]; - - id presentingViewController = OCMPartialMock([[UIViewController alloc] init]); - [[[presentingViewController stub] andReturn:presentedViewController] presentedViewController]; - - id returnedObject = GINGetTopViewControllerFromViewController(presentingViewController); - - XCTAssertEqual(presentedViewController, returnedObject); -} - -- (void)testGINRemoveViewControllerFromHierarchyRemovesFromParent { - id viewController = OCMClassMock([UIViewController class]); - [[[viewController stub] andReturn:OCMOCK_ANY] parentViewController]; - [OCMStub([viewController removeFromParentViewController]) andDo:nil]; - - GINRemoveViewControllerFromHierarchy(viewController); - - OCMVerify([viewController removeFromParentViewController]); -} - -- (void)testGINRemoveViewControllerFromHierarchyRemovesViewFromSuperview { - id view = OCMClassMock([UIView class]); - [[[view stub] andReturn:OCMOCK_ANY] superview]; - [OCMStub([view removeFromSuperview]) andDo:nil]; - - id viewController = OCMPartialMock([[UIViewController alloc] init]); - [[[viewController stub] andReturn:view] view]; - - GINRemoveViewControllerFromHierarchy(viewController); - - OCMVerify([view removeFromSuperview]); -} - -- (void)testGINRemoveViewControllerFromHierarchyDoesntRemoveFromParentIfNoParent { - id viewController = OCMClassMock([UIViewController class]); - [[[viewController stub] andReturn:nil] parentViewController]; - [[viewController reject] removeFromParentViewController]; - - GINRemoveViewControllerFromHierarchy(viewController); - - [viewController verify]; -} - -- (void)testGINRemoveViewControllerFromHierarchyDoesntRemoveViewFromSuperviewIfNoSuperview { - id view = OCMClassMock([UIView class]); - [[[view stub] andReturn:nil] superview]; - [[view reject] removeFromSuperview]; - - id viewController = OCMPartialMock([[UIViewController alloc] init]); - [[[viewController stub] andReturn:view] view]; - - GINRemoveViewControllerFromHierarchy(viewController); - - [view verify]; -} - -@end diff --git a/Example/Firebase.xcodeproj/project.pbxproj b/Example/Firebase.xcodeproj/project.pbxproj index c8d99572c96..7390ffe1d4a 100644 --- a/Example/Firebase.xcodeproj/project.pbxproj +++ b/Example/Firebase.xcodeproj/project.pbxproj @@ -293,7 +293,6 @@ DE17A2D92142F1A5002A15ED /* FIRDynamicLinkNetworkingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEDFF0451FD6143000F7D466 /* FIRDynamicLinkNetworkingTests.m */; }; DE17A2DA2142F1A5002A15ED /* FIRDynamicLinksImportsTest3P.m in Sources */ = {isa = PBXBuildFile; fileRef = DEDFF0461FD6143000F7D466 /* FIRDynamicLinksImportsTest3P.m */; }; DE17A2DB2142F1A5002A15ED /* FIRDynamicLinksTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEDFF0471FD6143000F7D466 /* FIRDynamicLinksTest.m */; }; - DE17A2DD214303A2002A15ED /* GINDurableDeepLinkServiceReceivingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE17A2DC214303A2002A15ED /* GINDurableDeepLinkServiceReceivingTests.m */; }; DE17A3CC21472FF2002A15ED /* LinkTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = DE17A3BE21472FF0002A15ED /* LinkTableViewCell.m */; }; DE17A3CD21472FF2002A15ED /* ParamTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = DE17A3BF21472FF0002A15ED /* ParamTableViewCell.m */; }; DE17A3CE21472FF2002A15ED /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DE17A3C321472FF1002A15ED /* Assets.xcassets */; }; @@ -1009,7 +1008,6 @@ DE0E5BBA1EA7D92E00FAA825 /* FIRVerifyClientResponseTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRVerifyClientResponseTests.m; sourceTree = ""; }; DE17A2A02141FA61002A15ED /* DL-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "DL-Info.plist"; sourceTree = ""; }; DE17A2C8214215C1002A15ED /* DynamicLinks_Example_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DynamicLinks_Example_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; - DE17A2DC214303A2002A15ED /* GINDurableDeepLinkServiceReceivingTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GINDurableDeepLinkServiceReceivingTests.m; sourceTree = ""; }; DE17A39A21472F3A002A15ED /* FDLBuilderTestAppObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FDLBuilderTestAppObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; DE17A3BE21472FF0002A15ED /* LinkTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LinkTableViewCell.m; path = DynamicLinks/FDLBuilderTestAppObjC/LinkTableViewCell.m; sourceTree = SOURCE_ROOT; }; DE17A3BF21472FF0002A15ED /* ParamTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ParamTableViewCell.m; path = DynamicLinks/FDLBuilderTestAppObjC/ParamTableViewCell.m; sourceTree = SOURCE_ROOT; }; @@ -1923,7 +1921,6 @@ DE17A3C621472FF1002A15ED /* ViewController.m */, ); name = FDLBuilderTestAppObjC; - path = Tests/FDLBuilderTestAppObjC; sourceTree = ""; }; DE17A3B421472F3C002A15ED /* FDLBuilderTestAppObjCTests */ = { @@ -2434,7 +2431,6 @@ DEDFF0431FD6143000F7D466 /* Tests */ = { isa = PBXGroup; children = ( - DE17A2DC214303A2002A15ED /* GINDurableDeepLinkServiceReceivingTests.m */, DEDFF05D1FD6FEEE00F7D466 /* UtilitiesTests.m */, DEDFF05B1FD6FCE400F7D466 /* FDLURLComponentsTests.m */, DEDFF0441FD6143000F7D466 /* FIRDLScionLoggingTest.m */, @@ -4072,7 +4068,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - DE17A2DD214303A2002A15ED /* GINDurableDeepLinkServiceReceivingTests.m in Sources */, DE17A2D72142F1A5002A15ED /* FDLURLComponentsTests.m in Sources */, DE17A2D92142F1A5002A15ED /* FIRDynamicLinkNetworkingTests.m in Sources */, DE17A2D82142F1A5002A15ED /* FIRDLScionLoggingTest.m in Sources */, diff --git a/Firebase/DynamicLinks/CHANGELOG.md b/Firebase/DynamicLinks/CHANGELOG.md index 8064ae7366e..f0872de9b54 100644 --- a/Firebase/DynamicLinks/CHANGELOG.md +++ b/Firebase/DynamicLinks/CHANGELOG.md @@ -1,3 +1,6 @@ +# v3.1.2 +- Delete deprecated source files. (#2038) + # v3.1.1 - Use c99 compatible __typeof__() operator. (#1982) diff --git a/Firebase/DynamicLinks/GINDurableDeepLinkService.h b/Firebase/DynamicLinks/GINDurableDeepLinkService.h deleted file mode 100644 index 368ff2d2b73..00000000000 --- a/Firebase/DynamicLinks/GINDurableDeepLinkService.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2018 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "DynamicLinks/FIRDynamicLinks+FirstParty.h" -#import "DynamicLinks/FIRDynamicLinks.h" - -/** - * @file GINDurableDeepLinkService.h - * @abstract Durable deep link service is deprecated. See FIRDynamicLinks.h - */ - -typedef FIRDynamicLinks GINDurableDeepLinkService; - -#pragma message "GINDurableDeepLinkService is deprecated. Please use FIRDynamicLinks" diff --git a/Firebase/DynamicLinks/GINDurableDeepLinkServiceReceiving+Private.h b/Firebase/DynamicLinks/GINDurableDeepLinkServiceReceiving+Private.h deleted file mode 100644 index f6551d28638..00000000000 --- a/Firebase/DynamicLinks/GINDurableDeepLinkServiceReceiving+Private.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2018 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import - -#import "GINDurableDeepLinkServiceReceiving.h" - -NS_ASSUME_NONNULL_BEGIN - -/** These methods are exposed for testing purposes. */ -@interface GINDurableDeepLinkServiceReceiving (Private) - -/** Retrieves the main window of the application. */ -UIWindow *_Nullable GINGetMainWindow(UIApplication *application); - -/** Retrieves the topmost view controller presented from the given view controller. */ -UIViewController *_Nullable GINGetTopViewControllerFromViewController( - UIViewController *_Nullable viewController); - -/** Retrieves the topmost view controller in the view controller hierarchy. */ -UIViewController *_Nullable GINGetTopViewController(UIApplication *application); - -/** Removes the view controller from the view controller hierarchy. */ -void GINRemoveViewControllerFromHierarchy(UIViewController *_Nullable viewController); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Firebase/DynamicLinks/GINDurableDeepLinkServiceReceiving.h b/Firebase/DynamicLinks/GINDurableDeepLinkServiceReceiving.h deleted file mode 100644 index a288ebe7d0f..00000000000 --- a/Firebase/DynamicLinks/GINDurableDeepLinkServiceReceiving.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2018 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - This is a temporary solution so that apps can use AppInvite and DDL. - This is only for use with iOS 9+ and will not function for lower versions. - */ -@interface GINDurableDeepLinkServiceReceiving : NSObject - -/** - * @method checkForPendingDeepLinkWithUserDefaults:customScheme: - * @abstract Checks for a pending Durable Link. Works with iOS 9+ only! - * @param userDefaults The user defaults object used for the app. - * @param customScheme The custom scheme of the application - ex. comgooglemaps for Google Maps - */ -- (void)checkForPendingDeepLinkWithUserDefaults:(NSUserDefaults *)userDefaults - customScheme:(nullable NSString *)customScheme - bundleIdentifier:(nullable NSString *)bundleIdentifier; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Firebase/DynamicLinks/GINDurableDeepLinkServiceReceiving.m b/Firebase/DynamicLinks/GINDurableDeepLinkServiceReceiving.m deleted file mode 100644 index ade3eb9cfcc..00000000000 --- a/Firebase/DynamicLinks/GINDurableDeepLinkServiceReceiving.m +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright 2018 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "GINDurableDeepLinkServiceReceiving+Private.h" - -#import - -NS_ASSUME_NONNULL_BEGIN - -// We should only read the deeplink after install once. We use the following key to store the state -// in the user defaults. -NSString *const kDeepLinkReadInstallKey = @"com.google.appinvite.readDeeplinkAfterInstall"; - -// If we don't get a deep link in this many seconds -// we give up and release any hidden windows. -// This is just to free up resources. Functionally, the -// hidden window should be ok even if it stays around forever. -NSTimeInterval const kAppInviteReadDeepLinkTimeout = 10.0; - -NSString *const kDDLBaseURLParameterBundleId = @"fdl_ios_bundle_id"; -NSString *const kDDLBaseURLParameterURLScheme = @"fdl_ios_url_scheme"; - -// Retrieves the main window of the application. -UIWindow *_Nullable GINGetMainWindow(UIApplication *application) { - UIWindow *mainWindow = [application keyWindow]; - if (!mainWindow && [application.delegate respondsToSelector:@selector(window)]) { - mainWindow = [application.delegate window]; - } - return mainWindow; -} - -UIViewController *_Nullable GINGetTopViewControllerFromViewController( - UIViewController *_Nullable viewController) { - if (!viewController) { - return nil; - } - - if ([viewController isKindOfClass:[UINavigationController class]]) { - UINavigationController *navController = (UINavigationController *)viewController; - return GINGetTopViewControllerFromViewController(navController.topViewController); - } else if ([viewController isKindOfClass:[UITabBarController class]]) { - UITabBarController *tabBarController = (UITabBarController *)viewController; - return GINGetTopViewControllerFromViewController(tabBarController.selectedViewController); - } else if (viewController.presentedViewController) { - return GINGetTopViewControllerFromViewController(viewController.presentedViewController); - } - - return viewController; -} - -UIViewController *_Nullable GINGetTopViewController(UIApplication *application) { - UIViewController *viewController = GINGetMainWindow(application).rootViewController; - return GINGetTopViewControllerFromViewController(viewController); -} - -void GINRemoveViewControllerFromHierarchy(UIViewController *_Nullable viewController) { - if (viewController.parentViewController) { - [viewController removeFromParentViewController]; - } - if (viewController.view.superview) { - [viewController.view removeFromSuperview]; - } -} - -@interface GINDurableDeepLinkServiceReceiving () -@end - -@implementation GINDurableDeepLinkServiceReceiving { - NSTimer *_dismissWindowTimer; - UIWindow *_hiddenWindow; -} - -- (void)checkForPendingDeepLinkWithUserDefaults:(NSUserDefaults *)userDefaults - customScheme:(nullable NSString *)customScheme - bundleIdentifier:(nullable NSString *)bundleIdentifier { - // Make sure this method is called only once after the application was installed. - BOOL appInviteDeepLinkRead = [userDefaults boolForKey:kDeepLinkReadInstallKey]; - if (appInviteDeepLinkRead) { - return; - } - - if (@available(iOS 9.0, *)) { - if ([SFSafariViewController class]) { - // Present a hidden SFSafariViewController. - if (!bundleIdentifier) { - bundleIdentifier = [NSBundle mainBundle].bundleIdentifier; - } - - if (!customScheme) { - customScheme = bundleIdentifier; - } - - NSURLComponents *components = [NSURLComponents new]; - [components setScheme:@"https"]; - [components setHost:@"goo.gl"]; - [components setPath:@"/app/_/deeplink"]; - NSMutableArray *queryItems = [NSMutableArray array]; - - // NSURLQueryItem and -setQueryItems: are called only if the system version is greater than - // iOS 8, so these are safe here. - [queryItems addObject:[NSURLQueryItem queryItemWithName:kDDLBaseURLParameterBundleId - value:bundleIdentifier]]; - [queryItems addObject:[NSURLQueryItem queryItemWithName:kDDLBaseURLParameterURLScheme - value:customScheme]]; - [components setQueryItems:queryItems]; - NSURL *ddlURL = [components URL]; - - SFSafariViewController *safariViewController = - [[SFSafariViewController alloc] initWithURL:ddlURL entersReaderIfAvailable:NO]; - - if ([[UIDevice currentDevice].systemVersion integerValue] >= 10) { - // Since iOS 10, the SFSafariViewController must be in the view controller hierarchy to - // load. - safariViewController.view.alpha = 0.05f; - safariViewController.view.userInteractionEnabled = NO; - safariViewController.view.frame = CGRectMake(0, 0, 1, 1); - safariViewController.delegate = self; - - UIViewController *topViewController = - GINGetTopViewController([UIApplication sharedApplication]); - if (topViewController) { - [topViewController addChildViewController:safariViewController]; - [topViewController.view addSubview:safariViewController.view]; - - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, - (int64_t)(kAppInviteReadDeepLinkTimeout * NSEC_PER_SEC)), - dispatch_get_main_queue(), ^{ - GINRemoveViewControllerFromHierarchy(safariViewController); - }); - } - } else { - // There is no need to set the frame of UIWindow to zero using initWithFrame:CGRectZero - // since it's hidden behind the main view and has an alpha of 0. - _hiddenWindow = [[UIWindow alloc] init]; - // Set window level to be well below UIWindowLevelNormal so that app/status views - // won't be hidden. - _hiddenWindow.windowLevel = UIWindowLevelNormal - 1000; - _hiddenWindow.hidden = NO; - _hiddenWindow.alpha = 0.0; - _hiddenWindow.rootViewController = [[UIViewController alloc] init]; - [_hiddenWindow.rootViewController addChildViewController:safariViewController]; - [_hiddenWindow.rootViewController.view addSubview:safariViewController.view]; - - if (_dismissWindowTimer) { - [_dismissWindowTimer invalidate]; - _dismissWindowTimer = nil; - } - _dismissWindowTimer = - [NSTimer scheduledTimerWithTimeInterval:kAppInviteReadDeepLinkTimeout - target:self - selector:@selector(dismissHiddenUIWindow) - userInfo:nil - repeats:NO]; - - _dismissWindowTimer.tolerance = kAppInviteReadDeepLinkTimeout / 10.0; - } - - // Make sure we don't call |checkForPendingDeepLink| again. - [userDefaults setBool:YES forKey:kDeepLinkReadInstallKey]; - } - } -} - -// Set hidden window to nil once any deep link is received. -// If there is no network access at first launch and no deep link is ever received then -// the hidden window will stay around and takes up resources. -- (void)dismissHiddenUIWindow { - if (_dismissWindowTimer) { - [_dismissWindowTimer invalidate]; - _dismissWindowTimer = nil; - } - _hiddenWindow = nil; -} - -- (void)safariViewController:(SFSafariViewController *)controller - didCompleteInitialLoad:(BOOL)didLoadSuccessfully API_AVAILABLE(ios(9.0)) { - GINRemoveViewControllerFromHierarchy(controller); -} - -- (void)dealloc { - [self dismissHiddenUIWindow]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Firebase/DynamicLinks/GINDurableDeepLinkService_Headers.h b/Firebase/DynamicLinks/GINDurableDeepLinkService_Headers.h deleted file mode 100644 index a5c1cb0af2e..00000000000 --- a/Firebase/DynamicLinks/GINDurableDeepLinkService_Headers.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2018 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// GINDurableDeepLinkService -#import "FIRDynamicLinkNetworking.h" -#import "FIRDynamicLinksCommon.h" -#import "GINDurableDeepLinkService+FirstParty.h" -#import "GINDurableDeepLinkService+Private.h" -#import "GINDurableDeepLinkService.h" -#import "Logging/FDLLogging.h"