diff --git a/.gitignore b/.gitignore index 4caf19b99d76..624cf075282e 100644 --- a/.gitignore +++ b/.gitignore @@ -97,6 +97,4 @@ Client/Assets/*.js.LICENSE.txt # L10n /firefoxios-l10n /ios-l10n-scripts - -# Glean -sdk_generator.sh +/shavar-prod-lists diff --git a/Account/FxAPushMessageHandler.swift b/Account/FxAPushMessageHandler.swift index 349be6aa51d4..71f62ee5b247 100644 --- a/Account/FxAPushMessageHandler.swift +++ b/Account/FxAPushMessageHandler.swift @@ -6,8 +6,8 @@ import Shared import SwiftyJSON import SyncTelemetry import Account -import SwiftKeychainWrapper import os.log +import FxAClient private let log = Logger.syncLogger @@ -31,7 +31,7 @@ extension FxAPushMessageHandler { /// This method then decrypts it according to the content-encoding (aes128gcm or aesgcm) /// and then effects changes on the logged in account. @discardableResult func handle(userInfo: [AnyHashable: Any]) -> PushMessageResult { - let keychain = KeychainWrapper.sharedAppContainerKeychain + let keychain = MZKeychainWrapper.sharedClientAppContainerKeychain guard let pushReg = keychain.object(forKey: KeychainKey.fxaPushRegistration) as? PushRegistration else { return deferMaybe(PushMessageError.accountError) } @@ -57,7 +57,7 @@ extension FxAPushMessageHandler { guard let string = plaintext else { // The app will detect this missing, and re-register. see AppDelegate+PushNotifications.swift. - keychain.removeObject(forKey: KeychainKey.apnsToken, withAccessibility: .afterFirstUnlock) + keychain.removeObject(forKey: KeychainKey.apnsToken, withAccessibility: MZKeychainItemAccessibility.afterFirstUnlock) return deferMaybe(PushMessageError.notDecrypted) } diff --git a/Account/SyncAuthState.swift b/Account/SyncAuthState.swift index 43fe1a4a8411..3d53f0d8d490 100644 --- a/Account/SyncAuthState.swift +++ b/Account/SyncAuthState.swift @@ -6,7 +6,7 @@ import Foundation import Shared import XCGLogger import SwiftyJSON -import MozillaAppServices +import FxAClient public let FxAClientErrorDomain = "org.mozilla.fxa.error" diff --git a/Cartfile b/Cartfile deleted file mode 100644 index 292c4b65704f..000000000000 --- a/Cartfile +++ /dev/null @@ -1,16 +0,0 @@ -github "getsentry/sentry-cocoa" ~> 4.2 -github "SnapKit/SnapKit" ~> 5.0 -github "SDWebImage/SDWebImage" ~> 5.0 -github "swisspol/GCDWebServer" ~> 3.3 -github "kif-framework/KIF" "v3.7.11" -github "mozilla-mobile/onepassword-app-extension" "add-framework-support" -github "jrendel/SwiftKeychainWrapper" ~> 3.2.0 -github "DaveWoodCom/XCGLogger" ~> 7.0 -github "cezheng/Fuzi" ~> 3.0 -github "SwiftyJSON/SwiftyJSON" ~> 5.0 -github "mozilla-mobile/telemetry-ios" ~> 1.1 -github "mozilla-mobile/MappaMundi" "master" -github "mozilla-services/shavar-prod-lists" "89.0" - -# Release version of application-services -github "mozilla/application-services" "v87.1.0" diff --git a/Cartfile.resolved b/Cartfile.resolved deleted file mode 100644 index 57ada5e19004..000000000000 --- a/Cartfile.resolved +++ /dev/null @@ -1,16 +0,0 @@ -github "DaveWoodCom/XCGLogger" "7.0.0" -github "Dev1an/A-Star" "3.0.0-beta-1" -github "SDWebImage/SDWebImage" "5.4.0" -github "SnapKit/SnapKit" "5.0.1" -github "SwiftyJSON/SwiftyJSON" "5.0.0" -github "apple/swift-protobuf" "1.9.0" -github "cezheng/Fuzi" "3.1.1" -github "getsentry/sentry-cocoa" "4.4.3" -github "jrendel/SwiftKeychainWrapper" "3.4.0" -github "kif-framework/KIF" "v3.7.11" -github "mozilla-mobile/MappaMundi" "9e8ad3ce7a45e2431e551420602f0eeb4300b2a6" -github "mozilla-mobile/onepassword-app-extension" "68a9d932a6373ca045984fbf4fb9a25aee43284c" -github "mozilla-mobile/telemetry-ios" "v1.1.3" -github "mozilla-services/shavar-prod-lists" "3910527004252af3aa9dd701566a2cb3b78e5c3a" -github "mozilla/application-services" "v87.1.0" -github "swisspol/GCDWebServer" "3.5.3" diff --git a/Client.xcodeproj/project.pbxproj b/Client.xcodeproj/project.pbxproj index 7dc61854e8c5..2167513f5e15 100644 --- a/Client.xcodeproj/project.pbxproj +++ b/Client.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 52; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -49,6 +49,13 @@ 0BF1B7E31AC60DEA00A7B407 /* InsetButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BF1B7E21AC60DEA00A7B407 /* InsetButton.swift */; }; 0BF42D4F1A7CD09600889E28 /* TestFavicons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BF42D4E1A7CD09600889E28 /* TestFavicons.swift */; }; 0BF8F8DA1AEFF1C900E90BC2 /* noTitle.html in Resources */ = {isa = PBXBuildFile; fileRef = 0BF8F8D91AEFF1C900E90BC2 /* noTitle.html */; }; + 1B0DFD25274856D60008EB0A /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 1B0DFD24274856D60008EB0A /* SwiftyJSON */; }; + 1B0DFD32274858B10008EB0A /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 1B0DFD31274858B10008EB0A /* SwiftyJSON */; }; + 1B3D99F1270E89D0006E1264 /* Telemetry in Frameworks */ = {isa = PBXBuildFile; productRef = 1B3D99F0270E89D0006E1264 /* Telemetry */; }; + 1BE8D1CE278D35E200213777 /* Viaduct in Frameworks */ = {isa = PBXBuildFile; productRef = 1BE8D1CD278D35E200213777 /* Viaduct */; }; + 1BE9ECCA27176FEA00D729BB /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 1BE9ECC927176FEA00D729BB /* SwiftyJSON */; }; + 1BE9ECCC2717704300D729BB /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 1BE9ECCB2717704300D729BB /* SwiftyJSON */; }; + 1BE9ECCE271770A600D729BB /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 1BE9ECCD271770A600D729BB /* SwiftyJSON */; }; 1D06AE6624FEE4D5000B092B /* TopSitesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D06AE6524FEE4D5000B092B /* TopSitesProvider.swift */; }; 1D06AE6A24FEE8D6000B092B /* TabProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D06AE6924FEE8D6000B092B /* TabProvider.swift */; }; 1D0BA05C24F46A0400D731B5 /* TopSitesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D0BA05B24F46A0400D731B5 /* TopSitesManager.swift */; }; @@ -194,8 +201,6 @@ 39098DC41CAD5ACB00AE87F3 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 391AEFD11C8F11ED00691F84 /* Images.xcassets */; }; 391B4FFF1F9767F50094F841 /* FxScreenGraph.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39EB46981E26DDB4006346E8 /* FxScreenGraph.swift */; }; 39236E721FCC600200A38F1B /* TabEventHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39236E711FCC600200A38F1B /* TabEventHandlerTests.swift */; }; - 392E18031FEC4D7B00EBA79C /* MappaMundi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 392E18021FEC4D7B00EBA79C /* MappaMundi.framework */; }; - 392E18041FEC4D9E00EBA79C /* MappaMundi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 392E18021FEC4D7B00EBA79C /* MappaMundi.framework */; }; 392ED7E41D0AEF56009D9B62 /* NewTabAccessors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392ED7E31D0AEF56009D9B62 /* NewTabAccessors.swift */; }; 392ED7E61D0AEFEF009D9B62 /* HomePageAccessors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392ED7E51D0AEFEF009D9B62 /* HomePageAccessors.swift */; }; 39409A3F1C90E68300DAE683 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288A2D861AB8B3260023ABC3 /* Shared.framework */; }; @@ -221,7 +226,6 @@ 39C22C2F1E897BA7000C0E56 /* LivePushClientTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39C22C2C1E897B9A000C0E56 /* LivePushClientTests.swift */; }; 39C261CC2018DE21009D97BD /* FxScreenGraphTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39C261CB2018DE20009D97BD /* FxScreenGraphTests.swift */; }; 39D056382665235700FBEE59 /* initial_experiments.json in Resources */ = {isa = PBXBuildFile; fileRef = 3964F5FB2656D2B500065278 /* initial_experiments.json */; }; - 39D9E6851C89E9690071FADA /* SnapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B604FA11C495268006EEEC3 /* SnapKit.framework */; }; 39DD030D1CD53E1900BC09B3 /* HomePageHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39DD030C1CD53E1900BC09B3 /* HomePageHelper.swift */; }; 39E65D191CA455A900C63CE3 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 391AEFD11C8F11ED00691F84 /* Images.xcassets */; }; 39E65D271CA5B92000C63CE3 /* AsyncReducerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39E65D261CA5B92000C63CE3 /* AsyncReducerTests.swift */; }; @@ -238,7 +242,6 @@ 3B39EDBA1E16E18900EF029F /* CustomSearchEnginesTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B39EDB91E16E18900EF029F /* CustomSearchEnginesTest.swift */; }; 3B39EDCB1E16E1AA00EF029F /* CustomSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B39EDCA1E16E1AA00EF029F /* CustomSearchViewController.swift */; }; 3B43E3D31D95C48D00BBA9DB /* StoragePerfTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B43E3D21D95C48D00BBA9DB /* StoragePerfTests.swift */; }; - 3B4988CE1E42B01800A12FDA /* SwiftyJSON.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B4988CD1E42B01800A12FDA /* SwiftyJSON.framework */; }; 3B4AA24B1D8B8C4C00A2E008 /* ArrayExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B4AA24A1D8B8C4C00A2E008 /* ArrayExtensionTests.swift */; }; 3B546EC01D95ECAE00BDBE36 /* ActivityStreamTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B546EBF1D95ECAE00BDBE36 /* ActivityStreamTest.swift */; }; 3B61CD491F2A74EF00D38DE1 /* PocketFeed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B61CD481F2A74EF00D38DE1 /* PocketFeed.swift */; }; @@ -246,8 +249,6 @@ 3B61CD631F2A769D00D38DE1 /* pocketglobalfeed.json in Resources */ = {isa = PBXBuildFile; fileRef = 3B61CD621F2A769D00D38DE1 /* pocketglobalfeed.json */; }; 3B6889C51D66950E002AC85E /* UIImageColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B6889C41D66950E002AC85E /* UIImageColors.swift */; }; 3B6F40181DC7849C00656CC6 /* FirefoxHomeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B6F40171DC7849C00656CC6 /* FirefoxHomeTests.swift */; }; - 3BA9A0231D2C208C00BD418C /* Fuzi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BA9A0221D2C208C00BD418C /* Fuzi.framework */; }; - 3BA9A0321D2C2C0500BD418C /* Fuzi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BA9A0221D2C208C00BD418C /* Fuzi.framework */; }; 3BB50E111D6274CD004B33DF /* FirefoxHomeTopSitesCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BB50E101D6274CD004B33DF /* FirefoxHomeTopSitesCell.swift */; }; 3BB50E201D627539004B33DF /* FirefoxHomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BB50E1F1D627539004B33DF /* FirefoxHomeViewController.swift */; }; 3BC659491E5BA4AE006D560F /* TopSites in Resources */ = {isa = PBXBuildFile; fileRef = 3BC659481E5BA4AE006D560F /* TopSites */; }; @@ -263,6 +264,12 @@ 3D9CAA1C1EFCD655002434DD /* ClipBoardTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D9CAA1B1EFCD655002434DD /* ClipBoardTests.swift */; }; 3DEFED081F55EBE300F8620C /* TrackingProtectionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DEFED071F55EBE300F8620C /* TrackingProtectionTests.swift */; }; 3E82980324BE4C31000A59FF /* FxATelemetryUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E82980124BE4C31000A59FF /* FxATelemetryUtils.swift */; }; + 43017ECA278E0BFC00CED011 /* RUSTFxAClient.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE5802278BA50600491291 /* RUSTFxAClient.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 43017ECB278E0C6700CED011 /* RUSTLogins.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 43017ECC278E0C6700CED011 /* RUSTRustLog.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57A2278BA4EA00491291 /* RUSTRustLog.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 43017ECD278E0C6700CED011 /* RUSTNimbus.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57BA278BA4EB00491291 /* RUSTNimbus.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 43017ECE278E0C6700CED011 /* RUSTViaduct.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57D2278BA4EC00491291 /* RUSTViaduct.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 43017ECF278E0C6700CED011 /* RUSTPlaces.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 43118CDD251A9CA700F24376 /* Shared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288A2D861AB8B3260023ABC3 /* Shared.framework */; }; 43118CF3251A9CCA00F24376 /* SiteArchiver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DA3CE5E24EEE7C600422BB2 /* SiteArchiver.swift */; }; 43118D07251A9CD100F24376 /* SavedTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63306D3821103EAE00F25400 /* SavedTab.swift */; }; @@ -271,10 +278,14 @@ 43175DB826B87D2C00C41C31 /* AdsTelemetryHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43175DB726B87D2C00C41C31 /* AdsTelemetryHelper.swift */; }; 431C0CA925C890E500395CE4 /* DefaultBrowserOnboardingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 431C0CA825C890E500395CE4 /* DefaultBrowserOnboardingViewModel.swift */; }; 431C0D1E25C9DC4D00395CE4 /* DefaultBrowserOnboardingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 431C0D1D25C9DC4D00395CE4 /* DefaultBrowserOnboardingTests.swift */; }; + 432BD0242790EBD000A0F3C3 /* Adjust in Frameworks */ = {isa = PBXBuildFile; productRef = 432BD0232790EBD000A0F3C3 /* Adjust */; }; 4331A9BB27193DF0005E8080 /* ContextualHintViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4331A9BA27193DEF005E8080 /* ContextualHintViewController.swift */; }; 4331A9BD271D267E005E8080 /* ContextualHintViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4331A9BC271D267E005E8080 /* ContextualHintViewModel.swift */; }; 4334145724C6378B001541F3 /* IntroScreenWelcomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4334145624C6378B001541F3 /* IntroScreenWelcomeView.swift */; }; 4336FAD2264B169000A6B076 /* WebcompatAllFramesAtDocumentStart.js in Resources */ = {isa = PBXBuildFile; fileRef = 4336FAD1264B169000A6B076 /* WebcompatAllFramesAtDocumentStart.js */; }; + 433F87CE2788EAB600693368 /* GCDWebServers in Frameworks */ = {isa = PBXBuildFile; productRef = 433F87CD2788EAB600693368 /* GCDWebServers */; }; + 433F87D02788ECDD00693368 /* GCDWebServers in Frameworks */ = {isa = PBXBuildFile; productRef = 433F87CF2788ECDD00693368 /* GCDWebServers */; }; + 433F87D52788F01500693368 /* KIF in Frameworks */ = {isa = PBXBuildFile; productRef = 433F87D42788F01500693368 /* KIF */; }; 43446CE7240D9F3000F5C643 /* ETP.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 43446CE5240D9F3000F5C643 /* ETP.xcassets */; }; 43446CEA2412066500F5C643 /* UIViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43446CE92412066500F5C643 /* UIViewControllerExtension.swift */; }; 43446CF02412DDBE00F5C643 /* UpdateCoverSheetViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43446CEF2412DDBE00F5C643 /* UpdateCoverSheetViewModelTests.swift */; }; @@ -283,7 +294,7 @@ 434E733725EED32E006D3BDE /* BrowserViewController+URLBarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 434E733625EED32E006D3BDE /* BrowserViewController+URLBarDelegate.swift */; }; 435222C125882E3800FCA5B6 /* WidgetKitTopSiteModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435222C025882E3800FCA5B6 /* WidgetKitTopSiteModel.swift */; }; 435222C225882E3800FCA5B6 /* WidgetKitTopSiteModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435222C025882E3800FCA5B6 /* WidgetKitTopSiteModel.swift */; }; - 4357697525B733CC0017B210 /* MozillaAppServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBCF403C221CBC9A00B38F28 /* MozillaAppServices.framework */; }; + 435C85F02788F4D00072B526 /* Glean in Frameworks */ = {isa = PBXBuildFile; productRef = 435C85EF2788F4D00072B526 /* Glean */; }; 435D660323D793DF0046EFA2 /* UpdateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435D660223D793DF0046EFA2 /* UpdateModel.swift */; }; 435D660523D794B90046EFA2 /* UpdateViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435D660423D794B90046EFA2 /* UpdateViewModel.swift */; }; 435D660723D7962C0046EFA2 /* UpdateCoverSheetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435D660623D7962C0046EFA2 /* UpdateCoverSheetTableViewCell.swift */; }; @@ -291,8 +302,32 @@ 435D7CC5246209AA0043ACB9 /* IntroViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 435D7CC4246209AA0043ACB9 /* IntroViewController.swift */; }; 435E34B3254A6A6000406D92 /* TimeConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = E650758F1E37F7AB006961AC /* TimeConstants.swift */; }; 436715892488216A006D1D4E /* TabTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 436715882488216A006D1D4E /* TabTableViewCell.swift */; }; + 4368F82B279665370013419B /* Sentry in Frameworks */ = {isa = PBXBuildFile; productRef = 4368F82A279665370013419B /* Sentry */; }; + 4368F82C279665C20013419B /* Sentry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F828279665220013419B /* Sentry.framework */; }; + 4368F82D279665C20013419B /* Sentry.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F828279665220013419B /* Sentry.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 4368F830279665D50013419B /* Sentry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F828279665220013419B /* Sentry.framework */; }; + 4368F831279665D50013419B /* Sentry.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F828279665220013419B /* Sentry.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 4368F834279665DF0013419B /* Sentry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F828279665220013419B /* Sentry.framework */; }; + 4368F835279665DF0013419B /* Sentry.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F828279665220013419B /* Sentry.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 4368F839279665EF0013419B /* Sentry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F828279665220013419B /* Sentry.framework */; }; + 4368F84D2796698A0013419B /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = 4368F84C2796698A0013419B /* SnapKit */; }; + 4368F84E279669A60013419B /* Snapkit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F84A279669740013419B /* Snapkit.framework */; }; + 4368F84F279669C90013419B /* Snapkit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F84A279669740013419B /* Snapkit.framework */; }; + 4368F85427966A4F0013419B /* Snapkit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F84A279669740013419B /* Snapkit.framework */; }; + 4368F85927966A860013419B /* Snapkit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F84A279669740013419B /* Snapkit.framework */; }; + 4368F85D27966BC30013419B /* Snapkit.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F84A279669740013419B /* Snapkit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 4368F87E27966E960013419B /* SDWebImage in Frameworks */ = {isa = PBXBuildFile; productRef = 4368F87D27966E960013419B /* SDWebImage */; }; + 4368F87F27966EA50013419B /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F87B27966E810013419B /* SDWebImage.framework */; }; + 4368F88027966EA50013419B /* SDWebImage.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F87B27966E810013419B /* SDWebImage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 4368F88327966F350013419B /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F87B27966E810013419B /* SDWebImage.framework */; }; + 4368F88427966F350013419B /* SDWebImage.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F87B27966E810013419B /* SDWebImage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 4368F887279671320013419B /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F87B27966E810013419B /* SDWebImage.framework */; }; + 4368F888279671710013419B /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F87B27966E810013419B /* SDWebImage.framework */; }; + 4368F889279671B10013419B /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F87B27966E810013419B /* SDWebImage.framework */; }; + 4368F88A279671D00013419B /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F87B27966E810013419B /* SDWebImage.framework */; }; 437A9B682681256800FB41C1 /* InactiveTabCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437A9B672681256800FB41C1 /* InactiveTabCell.swift */; }; 437A9B6A2681257F00FB41C1 /* InactiveTabViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 437A9B692681257F00FB41C1 /* InactiveTabViewModel.swift */; }; + 438072B22798D8DE00DE8682 /* RUSTFxAClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE5802278BA50600491291 /* RUSTFxAClient.framework */; }; 4390F7FF246DAFBE00570811 /* FirefoxColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4390F7FE246DAFBE00570811 /* FirefoxColors.swift */; }; 4392FB20252EC49D00AD3D23 /* SessionData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74C027441B2A348C001B1E88 /* SessionData.swift */; }; 4392FB34252EC4CE00AD3D23 /* SessionRestoreHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBC4869C2195F58300CDA48D /* SessionRestoreHandler.swift */; }; @@ -305,9 +340,61 @@ 43AB6FA425DC53D30016B015 /* ASHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43AB6F9E25DC53D20016B015 /* ASHeaderView.swift */; }; 43AB6FA525DC53D30016B015 /* ASLibraryCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43AB6F9F25DC53D30016B015 /* ASLibraryCell.swift */; }; 43AB6FA625DC53D30016B015 /* LibraryShortcutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43AB6FA025DC53D30016B015 /* LibraryShortcutView.swift */; }; + 43AFC0DC279678A80039DDF4 /* XCGLogger in Frameworks */ = {isa = PBXBuildFile; productRef = 43AFC0DB279678A80039DDF4 /* XCGLogger */; }; + 43AFC0DE279678F70039DDF4 /* XCGLogger.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0D9279678920039DDF4 /* XCGLogger.framework */; }; + 43AFC0DF2796794F0039DDF4 /* XCGLogger.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0D9279678920039DDF4 /* XCGLogger.framework */; }; + 43AFC0F227967C0F0039DDF4 /* Fuzi in Frameworks */ = {isa = PBXBuildFile; productRef = 43AFC0F127967C0F0039DDF4 /* Fuzi */; }; + 43AFC0F327967C1C0039DDF4 /* Fuzi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0EF27967C000039DDF4 /* Fuzi.framework */; }; + 43AFC0F427967C2B0039DDF4 /* Fuzi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0EF27967C000039DDF4 /* Fuzi.framework */; }; + 43AFC0F527967C320039DDF4 /* Fuzi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0EF27967C000039DDF4 /* Fuzi.framework */; }; + 43AFC0F627967C3E0039DDF4 /* Fuzi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0EF27967C000039DDF4 /* Fuzi.framework */; }; + 43AFC0F727967C8A0039DDF4 /* Fuzi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0EF27967C000039DDF4 /* Fuzi.framework */; }; + 43AFC117279699530039DDF4 /* XCGLogger.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0D9279678920039DDF4 /* XCGLogger.framework */; }; + 43AFC118279699530039DDF4 /* XCGLogger.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0D9279678920039DDF4 /* XCGLogger.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 43AFC11927969A820039DDF4 /* Fuzi.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0EF27967C000039DDF4 /* Fuzi.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 43B137F223A181A200CB7FA0 /* NSUserDefaultsPrefs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43B137F123A181A200CB7FA0 /* NSUserDefaultsPrefs.swift */; }; 43BDBBFE2752FA8600254DE4 /* TabCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43BDBBFD2752FA8600254DE4 /* TabCell.swift */; }; + 43BE577E278BA4D900491291 /* Logins in Frameworks */ = {isa = PBXBuildFile; productRef = 43BE5777278BA4D900491291 /* Logins */; }; + 43BE57B0278BA4EB00491291 /* Nimbus in Frameworks */ = {isa = PBXBuildFile; productRef = 43BE57A8278BA4EB00491291 /* Nimbus */; }; + 43BE57E2278BA4ED00491291 /* Places in Frameworks */ = {isa = PBXBuildFile; productRef = 43BE57D9278BA4ED00491291 /* Places */; }; + 43BE57FB278BA50600491291 /* FxAClient in Frameworks */ = {isa = PBXBuildFile; productRef = 43BE57ED278BA50600491291 /* FxAClient */; }; + 43BE5805278BA52C00491291 /* RustLog in Frameworks */ = {isa = PBXBuildFile; productRef = 43BE5804278BA52C00491291 /* RustLog */; }; + 43BE5806278BA7DA00491291 /* RUSTPlaces.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; }; + 43BE5807278BA7EA00491291 /* RUSTFxAClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE5802278BA50600491291 /* RUSTFxAClient.framework */; }; + 43BE5808278BA80D00491291 /* RUSTViaduct.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57D2278BA4EC00491291 /* RUSTViaduct.framework */; }; + 43BE5809278BA9D700491291 /* RUSTLogins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; }; + 43BE580A278BA9FD00491291 /* RUSTRustLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57A2278BA4EA00491291 /* RUSTRustLog.framework */; }; + 43BE580B278BAA0700491291 /* RUSTRustLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57A2278BA4EA00491291 /* RUSTRustLog.framework */; }; + 43BE580E278BABCF00491291 /* RUSTLogins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; }; + 43BE580F278BABD000491291 /* RUSTNimbus.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57BA278BA4EB00491291 /* RUSTNimbus.framework */; }; + 43BE5810278BABD000491291 /* RUSTPlaces.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; }; + 43BE5811278BABD000491291 /* RUSTRustLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57A2278BA4EA00491291 /* RUSTRustLog.framework */; }; + 43BE5812278BABD000491291 /* RUSTViaduct.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57D2278BA4EC00491291 /* RUSTViaduct.framework */; }; + 43BE5815278BB02000491291 /* RUSTPlaces.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; }; + 43BE5816278BE53E00491291 /* RUSTLogins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; }; + 43BE5817278BE58B00491291 /* RUSTFxAClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE5802278BA50600491291 /* RUSTFxAClient.framework */; }; + 43BE581A278BE5AE00491291 /* RUSTFxAClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE5802278BA50600491291 /* RUSTFxAClient.framework */; }; + 43BE581B278BE5AE00491291 /* RUSTLogins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; }; + 43BE581C278BE5AE00491291 /* RUSTNimbus.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57BA278BA4EB00491291 /* RUSTNimbus.framework */; }; + 43BE581D278BE5AE00491291 /* RUSTPlaces.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; }; + 43BE581E278BE5AE00491291 /* RUSTRustLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57A2278BA4EA00491291 /* RUSTRustLog.framework */; }; + 43BE581F278BE5AE00491291 /* RUSTViaduct.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57D2278BA4EC00491291 /* RUSTViaduct.framework */; }; + 43BE5820278BE68100491291 /* RUSTLogins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; }; + 43BE5821278BE68100491291 /* RUSTNimbus.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57BA278BA4EB00491291 /* RUSTNimbus.framework */; }; + 43BE5822278BE68100491291 /* RUSTPlaces.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; }; + 43BE5823278BE68100491291 /* RUSTRustLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57A2278BA4EA00491291 /* RUSTRustLog.framework */; }; + 43BE5824278BE7D400491291 /* RUSTFxAClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE5802278BA50600491291 /* RUSTFxAClient.framework */; }; + 43BE5825278BE7EF00491291 /* RUSTLogins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; }; + 43BE5826278BE80A00491291 /* RUSTFxAClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE5802278BA50600491291 /* RUSTFxAClient.framework */; }; + 43BE5827278BE81500491291 /* RUSTLogins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; }; + 43BE5828278BE82B00491291 /* RUSTPlaces.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; }; + 43BE582D278CA94000491291 /* RUSTRustLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57A2278BA4EA00491291 /* RUSTRustLog.framework */; }; + 43BE582E278CC5A000491291 /* RUSTFxAClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE5802278BA50600491291 /* RUSTFxAClient.framework */; }; 43C5A09B2555DF8100BA37AD /* BottomSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C5A0992555DF8100BA37AD /* BottomSheetViewController.swift */; }; + 43C6A46E279B8A0800C79856 /* Sentry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F828279665220013419B /* Sentry.framework */; }; + 43C6A46F279B8A3300C79856 /* XCGLogger.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0D9279678920039DDF4 /* XCGLogger.framework */; }; + 43C6A470279B8AAF00C79856 /* XCGLogger.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43AFC0D9279678920039DDF4 /* XCGLogger.framework */; }; + 43C6A47F27A0679300C79856 /* MappaMundi in Frameworks */ = {isa = PBXBuildFile; productRef = 43C6A47E27A0679300C79856 /* MappaMundi */; }; 43DDB96A240994370058A068 /* ETPCoverSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DDB969240994360058A068 /* ETPCoverSheetViewController.swift */; }; 43DDB96C240995A70058A068 /* ETPModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DDB96B240995A70058A068 /* ETPModel.swift */; }; 43DDB97624099F200058A068 /* ETPViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DDB97524099F200058A068 /* ETPViewModel.swift */; }; @@ -315,6 +402,14 @@ 43E69ED7254D081F00B591C2 /* SimpleTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E69EAF254D064E00B591C2 /* SimpleTab.swift */; }; 43E9BDFB255E0904005BCB91 /* TabMoreMenuHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E9BDFA255E0904005BCB91 /* TabMoreMenuHeader.swift */; }; 43F7952525795F69005AEE40 /* SearchTelemetry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43F7952425795F69005AEE40 /* SearchTelemetry.swift */; }; + 43F93C2327A86818009833D9 /* RUSTPlaces.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; }; + 43F93C2427A8681C009833D9 /* RUSTLogins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; }; + 43F93C2527A8682D009833D9 /* Sentry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F828279665220013419B /* Sentry.framework */; }; + 43F93C2627A86831009833D9 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F87B27966E810013419B /* SDWebImage.framework */; }; + 43F93C2727A86835009833D9 /* RUSTPlaces.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; }; + 43F93C2827A8683E009833D9 /* RUSTLogins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; }; + 43F93C2927A868FF009833D9 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4368F87B27966E810013419B /* SDWebImage.framework */; }; + 43F93C2A27A86A9B009833D9 /* RUSTPlaces.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; }; 4A59B58AD11B5EE1F80BBDEB /* TestHistory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A59BF410BBD9B3BE71F4C7C /* TestHistory.swift */; }; 4F2A06BE26F8E46E0017DA05 /* TabCounterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F2A06BD26F8E46E0017DA05 /* TabCounterTests.swift */; }; 4F514FD41ACD8F2C0022D7EA /* HistoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F514FD31ACD8F2C0022D7EA /* HistoryTests.swift */; }; @@ -361,19 +456,10 @@ 7B3D9E651E4CBFDB007A50DA /* NSCoderExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B3D9E641E4CBFDB007A50DA /* NSCoderExtensions.swift */; }; 7B42406E1CA04CAC009B5C28 /* Menu.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7B42406D1CA04CAC009B5C28 /* Menu.xcassets */; }; 7B4980A81CE363ED0017547C /* Settings.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7B4980A71CE363ED0017547C /* Settings.xcassets */; }; - 7B604F991C494F74006EEEC3 /* KIF.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B604F981C494F74006EEEC3 /* KIF.framework */; }; - 7B604F9B1C4950F2006EEEC3 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B604F9A1C4950F2006EEEC3 /* SDWebImage.framework */; }; - 7B604F9D1C495143006EEEC3 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B604F9A1C4950F2006EEEC3 /* SDWebImage.framework */; }; - 7B604FA21C495268006EEEC3 /* SnapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B604FA11C495268006EEEC3 /* SnapKit.framework */; }; - 7B604FBB1C495D8A006EEEC3 /* XCGLogger.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B604FBA1C495D8A006EEEC3 /* XCGLogger.framework */; }; - 7B604FBF1C495E60006EEEC3 /* XCGLogger.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B604FBA1C495D8A006EEEC3 /* XCGLogger.framework */; }; - 7B604FC01C495FD1006EEEC3 /* XCGLogger.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B604FBA1C495D8A006EEEC3 /* XCGLogger.framework */; }; 7B844E3D1BBDDB9D00E733A2 /* ChevronView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B844E3C1BBDDB9D00E733A2 /* ChevronView.swift */; }; 7B8A47F61D01D3B400C07734 /* PassKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B8A47F51D01D3B400C07734 /* PassKit.framework */; }; 7B9BF91C1E43472E00CB24F4 /* JSONExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B9BF91B1E43472E00CB24F4 /* JSONExtensions.swift */; }; 7BA0601B1C0F4DE200DFADB6 /* TabPeekViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA0601A1C0F4DE200DFADB6 /* TabPeekViewController.swift */; }; - 7BA4A9471C4CED900091D032 /* GCDWebServers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BA4A9451C4CED780091D032 /* GCDWebServers.framework */; }; - 7BA4A94A1C4CEFC70091D032 /* OnePasswordExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BA4A9491C4CEFC70091D032 /* OnePasswordExtension.framework */; }; 7BA8D1C71BA037F500C8AE9E /* OpenInHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA8D1C61BA037F500C8AE9E /* OpenInHelper.swift */; }; 7BBFEE741BB405D900A305AA /* TabManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BBFEE731BB405D900A305AA /* TabManagerTests.swift */; }; 7BEB64441C7345600092C02E /* L10nSuite2SnapshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B3632D31C2983F000D12AF9 /* L10nSuite2SnapshotTests.swift */; }; @@ -391,7 +477,6 @@ 8A11C8132731E54800AC7318 /* DictionaryExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A11C8122731E54800AC7318 /* DictionaryExtensionsTests.swift */; }; 8A2783F1275FFDC50080D29D /* KeyboardPressesHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A2783F0275FFDC50080D29D /* KeyboardPressesHandler.swift */; }; 8A2825352760399B00395E66 /* KeyboardPressesHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A2825342760399B00395E66 /* KeyboardPressesHandlerTests.swift */; }; - 8A62951B2790EB6C00688230 /* Adjust in Frameworks */ = {isa = PBXBuildFile; productRef = 8A62951A2790EB6C00688230 /* Adjust */; }; 8A86DAD8277298DE00D7BFFF /* ClosedTabsStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A86DAD7277298DE00D7BFFF /* ClosedTabsStoreTests.swift */; }; 8A8A05E42746ACAC004267A0 /* TabDisplayManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A8A05E32746ACAC004267A0 /* TabDisplayManagerTests.swift */; }; 8A8DDEBF276259A900E7B97A /* RatingPromptManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A8DDEBE276259A900E7B97A /* RatingPromptManager.swift */; }; @@ -508,7 +593,6 @@ C8DFFE492294AAB600296DB1 /* NetworkUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8DFFE482294AAB600296DB1 /* NetworkUtils.swift */; }; C8E18F1E222EDE4500E30E52 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8E18F1D222EDE4400E30E52 /* Accelerate.framework */; }; C8E18F20222EDED000E30E52 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8E18F1F222EDED000E30E52 /* SafariServices.framework */; }; - C8E18F22222EE11B00E30E52 /* MozillaAppServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBCF403C221CBC9A00B38F28 /* MozillaAppServices.framework */; }; C8E2E80C23D20FB3005AACE6 /* Avatar.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8E2E80823D20FB3005AACE6 /* Avatar.swift */; }; C8E2E80D23D20FB3005AACE6 /* RustFirefoxAccounts.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8E2E80923D20FB3005AACE6 /* RustFirefoxAccounts.swift */; }; C8E2E80E23D20FD2005AACE6 /* FxAWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8E2E80723D20FB3005AACE6 /* FxAWebViewController.swift */; }; @@ -535,7 +619,6 @@ CDB3BE8724746787009320EE /* FirefoxAccountSignInViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDB3BE8624746787009320EE /* FirefoxAccountSignInViewController.swift */; }; CE7F11941F3CEEC800ABFC0B /* RemoteDevices.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7F115E1F3CCEF900ABFC0B /* RemoteDevices.swift */; }; CEFA977E1FAA6B490016F365 /* SyncContentSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEFA977D1FAA6B490016F365 /* SyncContentSettingsViewController.swift */; }; - D006F2E32283307B0004D3AB /* KIF.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7B604F981C494F74006EEEC3 /* KIF.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; D01017F5219CB6BD009CBB5A /* DownloadContentScript.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01017F4219CB6BD009CBB5A /* DownloadContentScript.swift */; }; D0131B4D1F3CF7D8000CDE86 /* SQLiteFavicons.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0131B4C1F3CF7D8000CDE86 /* SQLiteFavicons.swift */; }; D0148A02220C8C93008A6EEF /* RustLoginsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0148A01220C8C93008A6EEF /* RustLoginsTests.swift */; }; @@ -701,7 +784,6 @@ DA9FD88624E213CD00168D1E /* Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9FD88524E213CC00168D1E /* Helpers.swift */; }; DA9FD88824E213DD00168D1E /* QuickLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9FD88724E213DC00168D1E /* QuickLink.swift */; }; DA9FD88924E213E500168D1E /* QuickLinkSelection.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = DA9FD88124E213B400168D1E /* QuickLinkSelection.intentdefinition */; settings = {ATTRIBUTES = (no_codegen, ); }; }; - DABDA4AD20DA0FB900FBB0BD /* ObjcExceptionBridging.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DABDA4AC20DA0FB800FBB0BD /* ObjcExceptionBridging.framework */; }; DACDE996225E537900C8F37F /* VersionSettingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DACDE995225E537900C8F37F /* VersionSettingTests.swift */; }; DADC62DA226E3297003AFF8B /* ReopenLastTabTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DADC62D9226E3297003AFF8B /* ReopenLastTabTests.swift */; }; DD31E0FB1B382B520077078A /* TabPrintPageRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD31E0FA1B382B520077078A /* TabPrintPageRenderer.swift */; }; @@ -871,7 +953,6 @@ EBA1CC1E214AB8FD009E6B06 /* StorageTestUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 289A4C121C4EB90600A460E3 /* StorageTestUtils.swift */; }; EBA31D7B1F79990C0055463D /* SyncTelemetryEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBA31D7A1F79990C0055463D /* SyncTelemetryEvents.swift */; }; EBA31D7D1F79996E0055463D /* SyncTelemetryUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBA31D7C1F79996E0055463D /* SyncTelemetryUtils.swift */; }; - EBA31D861F799BE20055463D /* Telemetry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBA31D7E1F799BE20055463D /* Telemetry.framework */; }; EBA3B2C32268F16300728BDB /* PhotonActionSheetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBA3B2C22268F16300728BDB /* PhotonActionSheetCell.swift */; }; EBA3B2CD2268F27500728BDB /* PhotonActionSheetWidgets.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBA3B2CC2268F27500728BDB /* PhotonActionSheetWidgets.swift */; }; EBA3B2D02268F40C00728BDB /* SyncMenuButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBA3B2CF2268F40C00728BDB /* SyncMenuButton.swift */; }; @@ -893,7 +974,6 @@ EBC9D38722D4D56F0011D881 /* disconnect-block-cookies-content.json in Resources */ = {isa = PBXBuildFile; fileRef = EBC9D38322D4D56F0011D881 /* disconnect-block-cookies-content.json */; }; EBC9D38822D4D56F0011D881 /* disconnect-block-cookies-social.json in Resources */ = {isa = PBXBuildFile; fileRef = EBC9D38422D4D56F0011D881 /* disconnect-block-cookies-social.json */; }; EBC9D38922D4D56F0011D881 /* disconnect-block-cookies-advertising.json in Resources */ = {isa = PBXBuildFile; fileRef = EBC9D38522D4D56F0011D881 /* disconnect-block-cookies-advertising.json */; }; - EBCF403B221CBC5B00B38F28 /* SwiftProtobuf.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBCF403A221CBC5B00B38F28 /* SwiftProtobuf.framework */; }; EBE26B57220C959D00D1D99A /* BrowserViewController+TabToolbarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBE26B4E220C959D00D1D99A /* BrowserViewController+TabToolbarDelegate.swift */; }; EBE7635820ADCB7600E27F2D /* SendTo.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EBE7634F20ADCB7500E27F2D /* SendTo.xcassets */; }; EBE7635920ADCB7600E27F2D /* SendTo.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EBE7634F20ADCB7500E27F2D /* SendTo.xcassets */; }; @@ -1055,6 +1135,76 @@ remoteGlobalIDString = 288A2D851AB8B3260023ABC3; remoteInfo = Shared; }; + 435A2FF6278F51CD00C94282 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F84B21B61A090F8100AAB793 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F8324A042649A188007E4BFA; + remoteInfo = CredentialProvider; + }; + 4368F82E279665C20013419B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F84B21B61A090F8100AAB793 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4368F81C279665220013419B; + remoteInfo = Sentry; + }; + 4368F832279665D50013419B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F84B21B61A090F8100AAB793 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4368F81C279665220013419B; + remoteInfo = Sentry; + }; + 4368F836279665DF0013419B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F84B21B61A090F8100AAB793 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4368F81C279665220013419B; + remoteInfo = Sentry; + }; + 4368F851279669C90013419B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F84B21B61A090F8100AAB793 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4368F83E279669740013419B; + remoteInfo = Snapkit; + }; + 4368F85627966A4F0013419B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F84B21B61A090F8100AAB793 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4368F83E279669740013419B; + remoteInfo = Snapkit; + }; + 4368F85B27966A860013419B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F84B21B61A090F8100AAB793 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4368F83E279669740013419B; + remoteInfo = Snapkit; + }; + 4368F88127966EA50013419B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F84B21B61A090F8100AAB793 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4368F86F27966E810013419B; + remoteInfo = SDWebImage; + }; + 4368F88527966F350013419B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F84B21B61A090F8100AAB793 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4368F86F27966E810013419B; + remoteInfo = SDWebImage; + }; + 43BE5813278BAF9A00491291 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F84B21B61A090F8100AAB793 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 43BE57D4278BA4ED00491291; + remoteInfo = Places; + }; 7B9BF92E1E435DE400CB24F4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = F84B21B61A090F8100AAB793 /* Project object */; @@ -1167,13 +1317,6 @@ remoteGlobalIDString = F84B21BD1A090F8100AAB793; remoteInfo = Client; }; - F8324A102649A188007E4BFA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F84B21B61A090F8100AAB793 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F8324A042649A188007E4BFA; - remoteInfo = CredentialProvider; - }; F8324AF82649B540007E4BFA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = F84B21B61A090F8100AAB793 /* Project object */; @@ -1205,23 +1348,27 @@ /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 0B21E8011E26C5D3000C8779 /* CopyFiles */ = { + 1B0DFD2C274857350008EB0A /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; - dstPath = "$(TEST_HOST)/.."; - dstSubfolderSpec = 0; + dstPath = ""; + dstSubfolderSpec = 10; files = ( + 4368F831279665D50013419B /* Sentry.framework in Embed Frameworks */, ); + name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 2F3444EC1AB2378200FD9731 /* Copy Files */ = { + 4368F838279665E00013419B /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; - dstSubfolderSpec = 7; + dstSubfolderSpec = 10; files = ( + 4368F88427966F350013419B /* SDWebImage.framework in Embed Frameworks */, + 4368F835279665DF0013419B /* Sentry.framework in Embed Frameworks */, ); - name = "Copy Files"; + name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; E6B09CD31C74EEDB00C63FA1 /* Copy Frameworks */ = { @@ -1230,22 +1377,23 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( + 43AFC11927969A820039DDF4 /* Fuzi.framework in Copy Frameworks */, + 4368F85D27966BC30013419B /* Snapkit.framework in Copy Frameworks */, + 43017ECB278E0C6700CED011 /* RUSTLogins.framework in Copy Frameworks */, + 43AFC118279699530039DDF4 /* XCGLogger.framework in Copy Frameworks */, + 43017ECC278E0C6700CED011 /* RUSTRustLog.framework in Copy Frameworks */, + 43017ECD278E0C6700CED011 /* RUSTNimbus.framework in Copy Frameworks */, + 43017ECE278E0C6700CED011 /* RUSTViaduct.framework in Copy Frameworks */, + 4368F82D279665C20013419B /* Sentry.framework in Copy Frameworks */, + 43017ECF278E0C6700CED011 /* RUSTPlaces.framework in Copy Frameworks */, + 43017ECA278E0BFC00CED011 /* RUSTFxAClient.framework in Copy Frameworks */, + 4368F88027966EA50013419B /* SDWebImage.framework in Copy Frameworks */, C82043C32523DD6A00740B71 /* Sync.framework in Copy Frameworks */, C87703D225223EA5006E38EB /* Shared.framework in Copy Frameworks */, ); name = "Copy Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - E6ECF2371C974E0600B0DC93 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - D006F2E32283307B0004D3AB /* KIF.framework in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; F84B22531A0920C600AAB793 /* Embed App Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 12; @@ -1338,7 +1486,6 @@ 0A734328A164466314ECE4BE /* ia */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ia; path = ia.lproj/Menu.strings; sourceTree = ""; }; 0A7D41DB98DDB127A2B8C544 /* ms */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ms; path = ms.lproj/Menu.strings; sourceTree = ""; }; 0AE9462E8A8E05CE07D4973D /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; - 0B21E8051E26CCB7000C8779 /* EarlGrey.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = EarlGrey.framework; path = Carthage/Build/iOS/EarlGrey.framework; sourceTree = ""; }; 0B305E1A1E3A98A900BE0767 /* BookmarkingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookmarkingTests.swift; sourceTree = ""; }; 0B3D670D1E09B90B00C1EFC7 /* AuthenticationTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthenticationTest.swift; sourceTree = ""; }; 0B414433840C8AA60829B6FB /* ms */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ms; path = ms.lproj/Intro.strings; sourceTree = ""; }; @@ -1831,7 +1978,6 @@ 39104C4F9A5CFDE66911D82B /* hy-AM */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "hy-AM"; path = "hy-AM.lproj/Search.strings"; sourceTree = ""; }; 391AEFD11C8F11ED00691F84 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 39236E711FCC600200A38F1B /* TabEventHandlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabEventHandlerTests.swift; sourceTree = ""; }; - 392E18021FEC4D7B00EBA79C /* MappaMundi.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MappaMundi.framework; path = Carthage/Build/iOS/MappaMundi.framework; sourceTree = ""; }; 392ED7E31D0AEF56009D9B62 /* NewTabAccessors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NewTabAccessors.swift; path = Accessors/NewTabAccessors.swift; sourceTree = ""; }; 392ED7E51D0AEFEF009D9B62 /* HomePageAccessors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HomePageAccessors.swift; path = Accessors/HomePageAccessors.swift; sourceTree = ""; }; 394344CA90682A8640FDE3DF /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/ClearHistoryConfirm.strings; sourceTree = ""; }; @@ -1883,7 +2029,6 @@ 3B43E3D01D95C48D00BBA9DB /* StoragePerfTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StoragePerfTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 3B43E3D21D95C48D00BBA9DB /* StoragePerfTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoragePerfTests.swift; sourceTree = ""; }; 3B43E3D41D95C48D00BBA9DB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 3B4988CD1E42B01800A12FDA /* SwiftyJSON.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftyJSON.framework; path = Carthage/Build/iOS/SwiftyJSON.framework; sourceTree = ""; }; 3B4AA24A1D8B8C4C00A2E008 /* ArrayExtensionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayExtensionTests.swift; sourceTree = ""; }; 3B546EBF1D95ECAE00BDBE36 /* ActivityStreamTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityStreamTest.swift; sourceTree = ""; }; 3B61CD481F2A74EF00D38DE1 /* PocketFeed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PocketFeed.swift; sourceTree = ""; }; @@ -1893,7 +2038,6 @@ 3B6F40171DC7849C00656CC6 /* FirefoxHomeTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirefoxHomeTests.swift; sourceTree = ""; }; 3B704751960D3C7E442AFBAE /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Search.strings; sourceTree = ""; }; 3B9A4BDF8865C6533212FC6C /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/Menu.strings; sourceTree = ""; }; - 3BA9A0221D2C208C00BD418C /* Fuzi.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Fuzi.framework; path = Carthage/Build/iOS/Fuzi.framework; sourceTree = ""; }; 3BB50E101D6274CD004B33DF /* FirefoxHomeTopSitesCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirefoxHomeTopSitesCell.swift; sourceTree = ""; }; 3BB50E1F1D627539004B33DF /* FirefoxHomeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirefoxHomeViewController.swift; sourceTree = ""; }; 3BC659481E5BA4AE006D560F /* TopSites */ = {isa = PBXFileReference; lastKnownFileType = folder; path = TopSites; sourceTree = ""; }; @@ -1990,6 +2134,12 @@ 435D7CC22461EFDD0043ACB9 /* IntroScreenSyncView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntroScreenSyncView.swift; sourceTree = ""; }; 435D7CC4246209AA0043ACB9 /* IntroViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntroViewController.swift; sourceTree = ""; }; 436715882488216A006D1D4E /* TabTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabTableViewCell.swift; sourceTree = ""; }; + 4368F828279665220013419B /* Sentry.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sentry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4368F829279665220013419B /* Sentry-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Sentry-Info.plist"; sourceTree = ""; }; + 4368F84A279669740013419B /* Snapkit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Snapkit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4368F84B279669740013419B /* Snapkit-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Snapkit-Info.plist"; sourceTree = ""; }; + 4368F87B27966E810013419B /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4368F87C27966E810013419B /* SDWebImage-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = ""; }; 436B4FD998EBB793AB68FAA8 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/PrivateBrowsing.strings; sourceTree = ""; }; 437475CA26DD1B7300DF2822 /* CredentialProviderFirefoxBeta.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = CredentialProviderFirefoxBeta.entitlements; sourceTree = ""; }; 437475CB26DD1E5B00DF2822 /* CredentialProviderFirefox.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = CredentialProviderFirefox.entitlements; sourceTree = ""; }; @@ -2005,8 +2155,24 @@ 43AB6F9F25DC53D30016B015 /* ASLibraryCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ASLibraryCell.swift; sourceTree = ""; }; 43AB6FA025DC53D30016B015 /* LibraryShortcutView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LibraryShortcutView.swift; sourceTree = ""; }; 43AB6FA125DC53D30016B015 /* PanelDataObservers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PanelDataObservers.swift; sourceTree = ""; }; + 43AFC0D9279678920039DDF4 /* XCGLogger.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XCGLogger.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 43AFC0DA279678920039DDF4 /* XCGLogger-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "XCGLogger-Info.plist"; sourceTree = ""; }; + 43AFC0EF27967C000039DDF4 /* Fuzi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Fuzi.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 43AFC0F027967C000039DDF4 /* Fuzi-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Fuzi-Info.plist"; sourceTree = ""; }; 43B137F123A181A200CB7FA0 /* NSUserDefaultsPrefs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSUserDefaultsPrefs.swift; sourceTree = ""; }; 43BDBBFD2752FA8600254DE4 /* TabCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabCell.swift; sourceTree = ""; }; + 43BE578A278BA4D900491291 /* RUSTLogins.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RUSTLogins.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 43BE578B278BA4D900491291 /* RustLogins-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "RustLogins-Info.plist"; sourceTree = ""; }; + 43BE57A2278BA4EA00491291 /* RUSTRustLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RUSTRustLog.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 43BE57A3278BA4EA00491291 /* RustRustLog-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "RustRustLog-Info.plist"; sourceTree = ""; }; + 43BE57BA278BA4EB00491291 /* RUSTNimbus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RUSTNimbus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 43BE57BB278BA4EB00491291 /* RustNimbus-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "RustNimbus-Info.plist"; sourceTree = ""; }; + 43BE57D2278BA4EC00491291 /* RUSTViaduct.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RUSTViaduct.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 43BE57D3278BA4EC00491291 /* RustViaDuct-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "RustViaDuct-Info.plist"; sourceTree = ""; }; + 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RUSTPlaces.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 43BE57EB278BA4ED00491291 /* RustPlaces-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "RustPlaces-Info.plist"; sourceTree = ""; }; + 43BE5802278BA50600491291 /* RUSTFxAClient.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RUSTFxAClient.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 43BE5803278BA50700491291 /* RustFxAClient-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "RustFxAClient-Info.plist"; sourceTree = ""; }; 43C5A0992555DF8100BA37AD /* BottomSheetViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BottomSheetViewController.swift; sourceTree = ""; }; 43CA482EA439A9C486CCA01D /* kk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = kk; path = kk.lproj/Shared.strings; sourceTree = ""; }; 43D72DB226FCE3550069BDE9 /* mr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = mr; path = "mr.lproj/Default Browser.strings"; sourceTree = ""; }; @@ -2430,10 +2596,6 @@ 7B3D9E641E4CBFDB007A50DA /* NSCoderExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSCoderExtensions.swift; sourceTree = ""; }; 7B42406D1CA04CAC009B5C28 /* Menu.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Menu.xcassets; sourceTree = ""; }; 7B4980A71CE363ED0017547C /* Settings.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Settings.xcassets; sourceTree = ""; }; - 7B604F981C494F74006EEEC3 /* KIF.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = KIF.framework; path = Carthage/Build/iOS/KIF.framework; sourceTree = ""; }; - 7B604F9A1C4950F2006EEEC3 /* SDWebImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDWebImage.framework; path = Carthage/Build/iOS/SDWebImage.framework; sourceTree = ""; }; - 7B604FA11C495268006EEEC3 /* SnapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SnapKit.framework; path = Carthage/Build/iOS/SnapKit.framework; sourceTree = ""; }; - 7B604FBA1C495D8A006EEEC3 /* XCGLogger.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCGLogger.framework; path = Carthage/Build/iOS/XCGLogger.framework; sourceTree = ""; }; 7B60B0071BDE3AE10090C984 /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotHelper.swift; path = fastlane/SnapshotHelper.swift; sourceTree = SOURCE_ROOT; }; 7B844E3C1BBDDB9D00E733A2 /* ChevronView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChevronView.swift; sourceTree = ""; }; 7B864D89B9D9C309484081D1 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/PrivateBrowsing.strings; sourceTree = ""; }; @@ -2442,9 +2604,6 @@ 7B9BF91B1E43472E00CB24F4 /* JSONExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JSONExtensions.swift; sourceTree = ""; }; 7BA0601A1C0F4DE200DFADB6 /* TabPeekViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabPeekViewController.swift; sourceTree = ""; }; 7BA34E6CB59CF71C21C42BB3 /* es-AR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-AR"; path = "es-AR.lproj/FindInPage.strings"; sourceTree = ""; }; - 7BA4A9451C4CED780091D032 /* GCDWebServers.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GCDWebServers.framework; path = Carthage/Build/iOS/GCDWebServers.framework; sourceTree = ""; }; - 7BA4A9491C4CEFC70091D032 /* OnePasswordExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OnePasswordExtension.framework; path = Carthage/Build/iOS/OnePasswordExtension.framework; sourceTree = ""; }; - 7BA4A94B1C4CF03B0091D032 /* SwiftKeychainWrapper.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftKeychainWrapper.framework; path = Carthage/Build/iOS/SwiftKeychainWrapper.framework; sourceTree = ""; }; 7BA8D1C61BA037F500C8AE9E /* OpenInHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenInHelper.swift; sourceTree = ""; }; 7BB34A09A04DA7D6B5600019 /* ses */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ses; path = ses.lproj/Search.strings; sourceTree = ""; }; 7BBFEE731BB405D900A305AA /* TabManagerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabManagerTests.swift; sourceTree = ""; }; @@ -2554,9 +2713,6 @@ 89AE47D2B80AF49BFB9763BA /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/LoginManager.strings; sourceTree = ""; }; 8A01891B275E9C2A00923EFE /* ClearHistoryHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearHistoryHelper.swift; sourceTree = ""; }; 8A07910E278F62F2005529CB /* AdjustHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdjustHelper.swift; sourceTree = ""; }; - 8A079110278F8ABC005529CB /* AdjustSdk */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = AdjustSdk; path = Carthage/Build/iOS/AdjustSdk.framework/AdjustSdk; sourceTree = ""; }; - 8A079113278F8B18005529CB /* AdjustSdk.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = AdjustSdk.framework.dSYM; path = Carthage/Build/iOS/AdjustSdk.framework.dSYM; sourceTree = ""; }; - 8A079114278F8B1F005529CB /* AdjustSdk.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdjustSdk.framework; path = Carthage/Build/iOS/AdjustSdk.framework; sourceTree = ""; }; 8A0F46E89E106C66C6C29F07 /* bn */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bn; path = bn.lproj/ErrorPages.strings; sourceTree = ""; }; 8A11C80D2731916E00AC7318 /* defaultOnlyTestList.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = defaultOnlyTestList.json; sourceTree = ""; }; 8A11C8102731CFD700AC7318 /* ReaderModeStyleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderModeStyleTests.swift; sourceTree = ""; }; @@ -3272,7 +3428,6 @@ D04D1B852097859B0074B35F /* DownloadToast.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadToast.swift; sourceTree = ""; }; D04D1B91209790B60074B35F /* Toast.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Toast.swift; sourceTree = ""; }; D053D6732211CD53006C6B64 /* KeychainStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainStore.swift; sourceTree = ""; }; - D05434BF2257DE9900FDE4EF /* Leanplum.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Leanplum.framework; path = Carthage/Build/iOS/Leanplum.framework; sourceTree = ""; }; D05434D8225BAA6200FDE4EF /* RustPlaces.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RustPlaces.swift; sourceTree = ""; }; D05434E2225BBC4100FDE4EF /* RustShared.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RustShared.swift; sourceTree = ""; }; D0543529226687A400FDE4EF /* UIBarButtonItemExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIBarButtonItemExtensions.swift; sourceTree = ""; }; @@ -3725,7 +3880,6 @@ DA9FD88724E213DC00168D1E /* QuickLink.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickLink.swift; sourceTree = ""; }; DAA34D57A0B4D64E6BD517EF /* dsb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = dsb; path = dsb.lproj/ErrorPages.strings; sourceTree = ""; }; DAAE4D2BB25BB3FB7F927CBF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/ErrorPages.strings; sourceTree = ""; }; - DABDA4AC20DA0FB800FBB0BD /* ObjcExceptionBridging.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ObjcExceptionBridging.framework; path = Carthage/Build/iOS/ObjcExceptionBridging.framework; sourceTree = ""; }; DAC044248882A2485365F9A2 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Menu.strings; sourceTree = ""; }; DACDE995225E537900C8F37F /* VersionSettingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VersionSettingTests.swift; sourceTree = ""; }; DAD46F3324A1606C001B3967 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; @@ -3818,7 +3972,6 @@ E42736061EA858CF009C428E /* TabsPayloadTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TabsPayloadTests.swift; path = SyncTests/TabsPayloadTests.swift; sourceTree = ""; }; E42B477091701B1B5A58B99F /* lv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lv; path = lv.lproj/InfoPlist.strings; sourceTree = ""; }; E4424B3B1AC71FB400F44C38 /* FiraSans-Book.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "FiraSans-Book.ttf"; sourceTree = ""; }; - E46175F21EBB73A10021AE8A /* Sentry.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sentry.framework; path = Carthage/Build/iOS/Sentry.framework; sourceTree = ""; }; E46C44F2A99C2C03F692AFB8 /* sq */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sq; path = sq.lproj/Menu.strings; sourceTree = ""; }; E4744CDB87F255C44B05CDB4 /* es-CL */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-CL"; path = "es-CL.lproj/Default Browser.strings"; sourceTree = ""; }; E47616C61AB74CA600E7DD25 /* ReaderModeBarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderModeBarView.swift; sourceTree = ""; }; @@ -3959,8 +4112,6 @@ E6B4C3D71C68F55C001F97E8 /* JSPrompt.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = JSPrompt.html; sourceTree = ""; }; E6B4C4021C68F58B001F97E8 /* BrowserTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BrowserTests.swift; sourceTree = ""; }; E6BA20111E52165800697F9C /* SyncTelemetryTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SyncTelemetryTests.swift; path = StorageTests/SyncTelemetryTests.swift; sourceTree = ""; }; - E6C191D41E38F7B7000A213B /* Cartfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Cartfile; sourceTree = ""; }; - E6C191D51E38F7B7000A213B /* Cartfile.resolved */ = {isa = PBXFileReference; lastKnownFileType = text; path = Cartfile.resolved; sourceTree = ""; }; E6C64CCF918A53B1EB0FAF01 /* rm */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = rm; path = rm.lproj/ClearHistoryConfirm.strings; sourceTree = ""; }; E6CA4229B067C32CA10E19A9 /* ml */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ml; path = ml.lproj/Search.strings; sourceTree = ""; }; E6CF28E61CB43B7900151AB3 /* SensitiveViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SensitiveViewController.swift; sourceTree = ""; }; @@ -4027,7 +4178,6 @@ EB9A179E20E6C1A200B12184 /* ThemedWidgets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedWidgets.swift; sourceTree = ""; }; EBA31D7A1F79990C0055463D /* SyncTelemetryEvents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SyncTelemetryEvents.swift; sourceTree = ""; }; EBA31D7C1F79996E0055463D /* SyncTelemetryUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SyncTelemetryUtils.swift; sourceTree = ""; }; - EBA31D7E1F799BE20055463D /* Telemetry.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Telemetry.framework; path = Carthage/Build/iOS/Telemetry.framework; sourceTree = ""; }; EBA3B2C22268F16300728BDB /* PhotonActionSheetCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotonActionSheetCell.swift; sourceTree = ""; }; EBA3B2CC2268F27500728BDB /* PhotonActionSheetWidgets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotonActionSheetWidgets.swift; sourceTree = ""; }; EBA3B2CF2268F40C00728BDB /* SyncMenuButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncMenuButton.swift; sourceTree = ""; }; @@ -4051,8 +4201,6 @@ EBC9D38322D4D56F0011D881 /* disconnect-block-cookies-content.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "disconnect-block-cookies-content.json"; sourceTree = ""; }; EBC9D38422D4D56F0011D881 /* disconnect-block-cookies-social.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "disconnect-block-cookies-social.json"; sourceTree = ""; }; EBC9D38522D4D56F0011D881 /* disconnect-block-cookies-advertising.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "disconnect-block-cookies-advertising.json"; sourceTree = ""; }; - EBCF403A221CBC5B00B38F28 /* SwiftProtobuf.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftProtobuf.framework; path = Carthage/Build/iOS/SwiftProtobuf.framework; sourceTree = ""; }; - EBCF403C221CBC9A00B38F28 /* MozillaAppServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MozillaAppServices.framework; path = Carthage/Build/iOS/MozillaAppServices.framework; sourceTree = ""; }; EBE26B4E220C959D00D1D99A /* BrowserViewController+TabToolbarDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "BrowserViewController+TabToolbarDelegate.swift"; sourceTree = ""; }; EBE7634F20ADCB7500E27F2D /* SendTo.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = SendTo.xcassets; sourceTree = ""; }; EBF47E6F1F7979DF00899189 /* TelemetryWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TelemetryWrapper.swift; sourceTree = ""; }; @@ -4225,6 +4373,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43AFC0F527967C320039DDF4 /* Fuzi.framework in Frameworks */, + 4368F88A279671D00013419B /* SDWebImage.framework in Frameworks */, + 43BE5806278BA7DA00491291 /* RUSTPlaces.framework in Frameworks */, + 4368F830279665D50013419B /* Sentry.framework in Frameworks */, + 433F87D02788ECDD00693368 /* GCDWebServers in Frameworks */, C8CC4F8725253E79003FDE1F /* WidgetKit.framework in Frameworks */, 43118CDD251A9CA700F24376 /* Shared.framework in Frameworks */, 047F9B2924E1FE1C00CD7DF7 /* SwiftUI.framework in Frameworks */, @@ -4235,7 +4388,17 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43AFC0F727967C8A0039DDF4 /* Fuzi.framework in Frameworks */, + 43AFC0DF2796794F0039DDF4 /* XCGLogger.framework in Frameworks */, + 4368F889279671B10013419B /* SDWebImage.framework in Frameworks */, + 43BE581A278BE5AE00491291 /* RUSTFxAClient.framework in Frameworks */, + 43BE581B278BE5AE00491291 /* RUSTLogins.framework in Frameworks */, + 43BE581C278BE5AE00491291 /* RUSTNimbus.framework in Frameworks */, + 43BE581D278BE5AE00491291 /* RUSTPlaces.framework in Frameworks */, + 43BE581E278BE5AE00491291 /* RUSTRustLog.framework in Frameworks */, + 43BE581F278BE5AE00491291 /* RUSTViaduct.framework in Frameworks */, C820439A2523DC4500740B71 /* libStorage.a in Frameworks */, + 1B0DFD32274858B10008EB0A /* SwiftyJSON in Frameworks */, D09A0CDC1FAA24CC009A0273 /* libAccount.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -4244,7 +4407,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7B604FC01C495FD1006EEEC3 /* XCGLogger.framework in Frameworks */, + 1BE9ECCC2717704300D729BB /* SwiftyJSON in Frameworks */, 28ECD9BF1BA1F19900D829DA /* libz.tbd in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -4253,6 +4416,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 438072B22798D8DE00DE8682 /* RUSTFxAClient.framework in Frameworks */, + 43AFC0DE279678F70039DDF4 /* XCGLogger.framework in Frameworks */, + 4368F88327966F350013419B /* SDWebImage.framework in Frameworks */, + 4368F834279665DF0013419B /* Sentry.framework in Frameworks */, + 1B0DFD25274856D60008EB0A /* SwiftyJSON in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4260,28 +4428,31 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43AFC0F327967C1C0039DDF4 /* Fuzi.framework in Frameworks */, + 4368F84E279669A60013419B /* Snapkit.framework in Frameworks */, + 43BE582E278CC5A000491291 /* RUSTFxAClient.framework in Frameworks */, + 4368F82C279665C20013419B /* Sentry.framework in Frameworks */, + 43BE580E278BABCF00491291 /* RUSTLogins.framework in Frameworks */, + 4368F87F27966EA50013419B /* SDWebImage.framework in Frameworks */, + 43BE580F278BABD000491291 /* RUSTNimbus.framework in Frameworks */, + 43BE5810278BABD000491291 /* RUSTPlaces.framework in Frameworks */, + 43BE5811278BABD000491291 /* RUSTRustLog.framework in Frameworks */, + 43BE5812278BABD000491291 /* RUSTViaduct.framework in Frameworks */, C82043852523DBF600740B71 /* Sync.framework in Frameworks */, C877037A25222F30006E38EB /* Shared.framework in Frameworks */, C8E18F20222EDED000E30E52 /* SafariServices.framework in Frameworks */, - 8A62951B2790EB6C00688230 /* Adjust in Frameworks */, C8E18F1E222EDE4500E30E52 /* Accelerate.framework in Frameworks */, F8324A7C2649A5A5007E4BFA /* AuthenticationServices.framework in Frameworks */, E6231C051B90A472005ABB0D /* libxml2.2.tbd in Frameworks */, - EBCF403B221CBC5B00B38F28 /* SwiftProtobuf.framework in Frameworks */, - 4357697525B733CC0017B210 /* MozillaAppServices.framework in Frameworks */, E6231C011B90A44F005ABB0D /* libz.tbd in Frameworks */, E4B3348A1BBF23F9004E2BFF /* AdSupport.framework in Frameworks */, - 3BA9A0231D2C208C00BD418C /* Fuzi.framework in Frameworks */, - 7BA4A9471C4CED900091D032 /* GCDWebServers.framework in Frameworks */, + 1B3D99F1270E89D0006E1264 /* Telemetry in Frameworks */, + 432BD0242790EBD000A0F3C3 /* Adjust in Frameworks */, 0B8E0FF41A932BD500161DC3 /* ImageIO.framework in Frameworks */, - 7BA4A94A1C4CEFC70091D032 /* OnePasswordExtension.framework in Frameworks */, - DABDA4AD20DA0FB900FBB0BD /* ObjcExceptionBridging.framework in Frameworks */, + 435C85F02788F4D00072B526 /* Glean in Frameworks */, + 433F87CE2788EAB600693368 /* GCDWebServers in Frameworks */, 7B8A47F61D01D3B400C07734 /* PassKit.framework in Frameworks */, - 7B604F9B1C4950F2006EEEC3 /* SDWebImage.framework in Frameworks */, - 7B604FA21C495268006EEEC3 /* SnapKit.framework in Frameworks */, - 3B4988CE1E42B01800A12FDA /* SwiftyJSON.framework in Frameworks */, - EBA31D861F799BE20055463D /* Telemetry.framework in Frameworks */, - 7B604FBB1C495D8A006EEEC3 /* XCGLogger.framework in Frameworks */, + 43AFC117279699530039DDF4 /* XCGLogger.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4289,6 +4460,12 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43BE5820278BE68100491291 /* RUSTLogins.framework in Frameworks */, + 43BE5821278BE68100491291 /* RUSTNimbus.framework in Frameworks */, + 43BE5822278BE68100491291 /* RUSTPlaces.framework in Frameworks */, + 43BE5823278BE68100491291 /* RUSTRustLog.framework in Frameworks */, + 43BE5808278BA80D00491291 /* RUSTViaduct.framework in Frameworks */, + 43BE5807278BA7EA00491291 /* RUSTFxAClient.framework in Frameworks */, C820443825241D3100740B71 /* libSyncTelemetry.a in Frameworks */, C8340C4F24EC69EE00FE91A6 /* libcrypto.a in Frameworks */, C8340C5024EC69EE00FE91A6 /* libssl.a in Frameworks */, @@ -4299,7 +4476,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7B604FBF1C495E60006EEEC3 /* XCGLogger.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4307,7 +4483,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C8E18F22222EE11B00E30E52 /* MozillaAppServices.framework in Frameworks */, + 43C6A470279B8AAF00C79856 /* XCGLogger.framework in Frameworks */, + 43AFC0F627967C3E0039DDF4 /* Fuzi.framework in Frameworks */, + 4368F888279671710013419B /* SDWebImage.framework in Frameworks */, + 4368F839279665EF0013419B /* Sentry.framework in Frameworks */, + 43BE5809278BA9D700491291 /* RUSTLogins.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4315,6 +4495,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43F93C2427A8681C009833D9 /* RUSTLogins.framework in Frameworks */, + 43F93C2327A86818009833D9 /* RUSTPlaces.framework in Frameworks */, + 1BE9ECCA27176FEA00D729BB /* SwiftyJSON in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4324,7 +4507,7 @@ files = ( 39409A3F1C90E68300DAE683 /* Shared.framework in Frameworks */, 3905274C1C874D35007E0BB7 /* NotificationCenter.framework in Frameworks */, - 39D9E6851C89E9690071FADA /* SnapKit.framework in Frameworks */, + 4368F84F279669C90013419B /* Snapkit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4332,70 +4515,137 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43BE5825278BE7EF00491291 /* RUSTLogins.framework in Frameworks */, + 43BE5824278BE7D400491291 /* RUSTFxAClient.framework in Frameworks */, + 43BE580A278BA9FD00491291 /* RUSTRustLog.framework in Frameworks */, C82043AE2523DC8B00740B71 /* Sync.framework in Frameworks */, C877039725222FE6006E38EB /* Shared.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3B43E3CD1D95C48D00BBA9DB /* Frameworks */ = { + 3BFE4B041D342FB800DDF53F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43F93C2A27A86A9B009833D9 /* RUSTPlaces.framework in Frameworks */, + 43F93C2927A868FF009833D9 /* SDWebImage.framework in Frameworks */, + 43C6A47F27A0679300C79856 /* MappaMundi in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3BFE4B041D342FB800DDF53F /* Frameworks */ = { + 4368F820279665220013419B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 392E18031FEC4D7B00EBA79C /* MappaMundi.framework in Frameworks */, + 4368F82B279665370013419B /* Sentry in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7BEB64461C7345600092C02E /* Frameworks */ = { + 4368F842279669740013419B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 392E18041FEC4D9E00EBA79C /* MappaMundi.framework in Frameworks */, + 4368F84D2796698A0013419B /* SnapKit in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7BEB64531C7345990092C02E /* Frameworks */ = { + 4368F87327966E810013419B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 4368F87E27966E960013419B /* SDWebImage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D39FA15C1A83E0EC00EE869C /* Frameworks */ = { + 43AFC0D1279678920039DDF4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E6231C071B90A712005ABB0D /* libz.tbd in Frameworks */, - 7B604F991C494F74006EEEC3 /* KIF.framework in Frameworks */, - D36998891AD70A0A00650C6C /* IOKit.framework in Frameworks */, - D39FA16C1A83E17800EE869C /* CoreGraphics.framework in Frameworks */, + 43AFC0DC279678A80039DDF4 /* XCGLogger in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E69DB0711E97DEA9008A67E6 /* Frameworks */ = { + 43AFC0E727967C000039DDF4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 43AFC0F227967C0F0039DDF4 /* Fuzi in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE577D278BA4D900491291 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 43BE577E278BA4D900491291 /* Logins in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE5795278BA4EA00491291 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 43BE5805278BA52C00491291 /* RustLog in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE57AD278BA4EB00491291 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 43BE57B0278BA4EB00491291 /* Nimbus in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE57C5278BA4EC00491291 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1BE8D1CE278D35E200213777 /* Viaduct in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE57DD278BA4ED00491291 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 43BE57E2278BA4ED00491291 /* Places in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE57F5278BA50600491291 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 43BE57FB278BA50600491291 /* FxAClient in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7BEB64461C7345600092C02E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E69DB07A1E97DEA9008A67E6 /* Frameworks */ = { + D39FA15C1A83E0EC00EE869C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + E6231C071B90A712005ABB0D /* libz.tbd in Frameworks */, + 433F87D52788F01500693368 /* KIF in Frameworks */, + D36998891AD70A0A00650C6C /* IOKit.framework in Frameworks */, + D39FA16C1A83E17800EE869C /* CoreGraphics.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E6F965091B2F1CF20034B023 /* Frameworks */ = { + E69DB0711E97DEA9008A67E6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43C6A46F279B8A3300C79856 /* XCGLogger.framework in Frameworks */, + 43C6A46E279B8A0800C79856 /* Sentry.framework in Frameworks */, + 4368F887279671320013419B /* SDWebImage.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4403,6 +4653,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43BE582D278CA94000491291 /* RUSTRustLog.framework in Frameworks */, + 43BE5817278BE58B00491291 /* RUSTFxAClient.framework in Frameworks */, + 4368F85427966A4F0013419B /* Snapkit.framework in Frameworks */, + 43BE5816278BE53E00491291 /* RUSTLogins.framework in Frameworks */, + 43BE5815278BB02000491291 /* RUSTPlaces.framework in Frameworks */, F8324A072649A188007E4BFA /* AuthenticationServices.framework in Frameworks */, F8324AF62649B540007E4BFA /* Shared.framework in Frameworks */, F8324AFA2649B540007E4BFA /* Sync.framework in Frameworks */, @@ -4413,6 +4668,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43F93C2827A8683E009833D9 /* RUSTLogins.framework in Frameworks */, + 43F93C2727A86835009833D9 /* RUSTPlaces.framework in Frameworks */, + 43F93C2627A86831009833D9 /* SDWebImage.framework in Frameworks */, + 43F93C2527A8682D009833D9 /* Sentry.framework in Frameworks */, + 1BE9ECCE271770A600D729BB /* SwiftyJSON in Frameworks */, E6231C081B90A71E005ABB0D /* libz.tbd in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -4421,11 +4681,15 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 43AFC0F427967C2B0039DDF4 /* Fuzi.framework in Frameworks */, + 43BE5828278BE82B00491291 /* RUSTPlaces.framework in Frameworks */, + 4368F85927966A860013419B /* Snapkit.framework in Frameworks */, + 43BE5827278BE81500491291 /* RUSTLogins.framework in Frameworks */, + 43BE5826278BE80A00491291 /* RUSTFxAClient.framework in Frameworks */, + 43BE580B278BAA0700491291 /* RUSTRustLog.framework in Frameworks */, C82043AF2523DC9600740B71 /* Sync.framework in Frameworks */, C877039625222FDC006E38EB /* Shared.framework in Frameworks */, - 3BA9A0321D2C2C0500BD418C /* Fuzi.framework in Frameworks */, 0B75AEA91AC20FB20015E5DC /* ImageIO.framework in Frameworks */, - 7B604F9D1C495143006EEEC3 /* SDWebImage.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5109,34 +5373,14 @@ 7B604FC11C496005006EEEC3 /* Frameworks */ = { isa = PBXGroup; children = ( - 8A079114278F8B1F005529CB /* AdjustSdk.framework */, - 8A079113278F8B18005529CB /* AdjustSdk.framework.dSYM */, - 8A079110278F8ABC005529CB /* AdjustSdk */, - D05434BF2257DE9900FDE4EF /* Leanplum.framework */, C8E18F1F222EDED000E30E52 /* SafariServices.framework */, C8E18F1D222EDE4400E30E52 /* Accelerate.framework */, - EBCF403C221CBC9A00B38F28 /* MozillaAppServices.framework */, - EBCF403A221CBC5B00B38F28 /* SwiftProtobuf.framework */, - 392E18021FEC4D7B00EBA79C /* MappaMundi.framework */, - EBA31D7E1F799BE20055463D /* Telemetry.framework */, - E46175F21EBB73A10021AE8A /* Sentry.framework */, - 3B4988CD1E42B01800A12FDA /* SwiftyJSON.framework */, E6231C041B90A472005ABB0D /* libxml2.2.tbd */, E6231C001B90A44F005ABB0D /* libz.tbd */, - 0B21E8051E26CCB7000C8779 /* EarlGrey.framework */, D39FA16B1A83E17800EE869C /* CoreGraphics.framework */, 0B8E0FF31A932BD500161DC3 /* ImageIO.framework */, D36998881AD70A0A00650C6C /* IOKit.framework */, - 3BA9A0221D2C208C00BD418C /* Fuzi.framework */, 7B8A47F51D01D3B400C07734 /* PassKit.framework */, - 7BA4A94B1C4CF03B0091D032 /* SwiftKeychainWrapper.framework */, - 7BA4A9491C4CEFC70091D032 /* OnePasswordExtension.framework */, - 7BA4A9451C4CED780091D032 /* GCDWebServers.framework */, - 7B604FBA1C495D8A006EEEC3 /* XCGLogger.framework */, - DABDA4AC20DA0FB800FBB0BD /* ObjcExceptionBridging.framework */, - 7B604FA11C495268006EEEC3 /* SnapKit.framework */, - 7B604F9A1C4950F2006EEEC3 /* SDWebImage.framework */, - 7B604F981C494F74006EEEC3 /* KIF.framework */, E4B334891BBF23F9004E2BFF /* AdSupport.framework */, E4B334871BBF23F3004E2BFF /* iAd.framework */, 3905274B1C874D35007E0BB7 /* NotificationCenter.framework */, @@ -5703,13 +5947,6 @@ path = Views; sourceTree = ""; }; - DA9FD87B24E212F500168D1E /* Recovered References */ = { - isa = PBXGroup; - children = ( - ); - name = "Recovered References"; - sourceTree = ""; - }; DA9FD88024E213B400168D1E /* SearchQuickLinksSmall */ = { isa = PBXGroup; children = ( @@ -6138,8 +6375,6 @@ D4C792CA25651FC500FB7E86 /* PerformanceTestPlan.xctestplan */, 3E82980124BE4C31000A59FF /* FxATelemetryUtils.swift */, C8E2E80623D20FB3005AACE6 /* RustFxA */, - E6C191D41E38F7B7000A213B /* Cartfile */, - E6C191D51E38F7B7000A213B /* Cartfile.resolved */, 2FA435FC1ABB83B4008031D1 /* Account */, 2FA4360B1ABB83B4008031D1 /* AccountTests */, F84B21C01A090F8100AAB793 /* Client */, @@ -6166,7 +6401,17 @@ 28CE83EF1A1D246900576538 /* Third-Party Source */, D39FA1601A83E0EC00EE869C /* UITests */, 3BFE4B081D342FB900DDF53F /* XCUITests */, - DA9FD87B24E212F500168D1E /* Recovered References */, + 43BE578B278BA4D900491291 /* RustLogins-Info.plist */, + 43BE57A3278BA4EA00491291 /* RustRustLog-Info.plist */, + 43BE57BB278BA4EB00491291 /* RustNimbus-Info.plist */, + 43BE57D3278BA4EC00491291 /* RustViaDuct-Info.plist */, + 43BE57EB278BA4ED00491291 /* RustPlaces-Info.plist */, + 43BE5803278BA50700491291 /* RustFxAClient-Info.plist */, + 4368F829279665220013419B /* Sentry-Info.plist */, + 4368F84B279669740013419B /* Snapkit-Info.plist */, + 4368F87C27966E810013419B /* SDWebImage-Info.plist */, + 43AFC0DA279678920039DDF4 /* XCGLogger-Info.plist */, + 43AFC0F027967C000039DDF4 /* Fuzi-Info.plist */, ); sourceTree = ""; }; @@ -6195,6 +6440,17 @@ 397848DB1ED86605004C0C0B /* NotificationService.appex */, 047F9B2724E1FE1C00CD7DF7 /* WidgetKitExtension.appex */, F8324A052649A188007E4BFA /* CredentialProvider.appex */, + 43BE578A278BA4D900491291 /* RUSTLogins.framework */, + 43BE57A2278BA4EA00491291 /* RUSTRustLog.framework */, + 43BE57BA278BA4EB00491291 /* RUSTNimbus.framework */, + 43BE57D2278BA4EC00491291 /* RUSTViaduct.framework */, + 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */, + 43BE5802278BA50600491291 /* RUSTFxAClient.framework */, + 4368F828279665220013419B /* Sentry.framework */, + 4368F84A279669740013419B /* Snapkit.framework */, + 4368F87B27966E810013419B /* SDWebImage.framework */, + 43AFC0D9279678920039DDF4 /* XCGLogger.framework */, + 43AFC0EF27967C000039DDF4 /* Fuzi.framework */, ); name = Products; sourceTree = ""; @@ -6474,13 +6730,20 @@ 047F9B2324E1FE1C00CD7DF7 /* Sources */, 047F9B2424E1FE1C00CD7DF7 /* Frameworks */, 047F9B2524E1FE1C00CD7DF7 /* Resources */, + 1B0DFD2C274857350008EB0A /* Embed Frameworks */, + 43338D0A278F726D00A23914 /* ShellScript */, ); buildRules = ( ); dependencies = ( + 43BE5814278BAF9A00491291 /* PBXTargetDependency */, 43118CDF251A9CAD00F24376 /* PBXTargetDependency */, + 4368F833279665D50013419B /* PBXTargetDependency */, ); name = WidgetKitExtension; + packageProductDependencies = ( + 433F87CF2788ECDD00693368 /* GCDWebServers */, + ); productName = WidgetKitExtension; productReference = 047F9B2724E1FE1C00CD7DF7 /* WidgetKitExtension.appex */; productType = "com.apple.product-type.app-extension"; @@ -6500,6 +6763,9 @@ 2F11EE501ABCAE910083902D /* PBXTargetDependency */, ); name = Sync; + packageProductDependencies = ( + 1B0DFD31274858B10008EB0A /* SwiftyJSON */, + ); productName = Sync; productReference = 2827315E1ABC9BE600AA1954 /* Sync.framework */; productType = "com.apple.product-type.framework"; @@ -6510,7 +6776,6 @@ buildPhases = ( 282731641ABC9BE700AA1954 /* Sources */, 282731651ABC9BE700AA1954 /* Frameworks */, - 282731661ABC9BE700AA1954 /* Resources */, ); buildRules = ( ); @@ -6520,6 +6785,9 @@ 2827316B1ABC9BE700AA1954 /* PBXTargetDependency */, ); name = SyncTests; + packageProductDependencies = ( + 1BE9ECCB2717704300D729BB /* SwiftyJSON */, + ); productName = SyncTests; productReference = 282731681ABC9BE700AA1954 /* SyncTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; @@ -6531,12 +6799,18 @@ 288A2D811AB8B3260023ABC3 /* Sources */, 288A2D821AB8B3260023ABC3 /* Frameworks */, 288A2D841AB8B3260023ABC3 /* Resources */, + 4368F838279665E00013419B /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( + 4368F837279665DF0013419B /* PBXTargetDependency */, + 4368F88627966F350013419B /* PBXTargetDependency */, ); name = Shared; + packageProductDependencies = ( + 1B0DFD24274856D60008EB0A /* SwiftyJSON */, + ); productName = Shared; productReference = 288A2D861AB8B3260023ABC3 /* Shared.framework */; productType = "com.apple.product-type.framework"; @@ -6547,7 +6821,6 @@ buildPhases = ( 2FA435F61ABB83B4008031D1 /* Sources */, 2FA435F71ABB83B4008031D1 /* Frameworks */, - 2FA435F91ABB83B4008031D1 /* Resources */, ); buildRules = ( ); @@ -6565,7 +6838,6 @@ buildPhases = ( 2FA436011ABB83B4008031D1 /* Sources */, 2FA436021ABB83B4008031D1 /* Frameworks */, - 2FA436031ABB83B4008031D1 /* Resources */, ); buildRules = ( ); @@ -6584,14 +6856,16 @@ buildPhases = ( 2FCAE2151ABB51F800877008 /* Sources */, 2FCAE2161ABB51F800877008 /* Frameworks */, - 2FCAE2181ABB51F800877008 /* Resources */, ); buildRules = ( ); dependencies = ( + 43EFA63E2786562600400DF0 /* PBXTargetDependency */, 2FCAE23C1ABB520700877008 /* PBXTargetDependency */, ); name = Storage; + packageProductDependencies = ( + ); productName = Storage; productReference = 2FCAE21A1ABB51F800877008 /* libStorage.a */; productType = "com.apple.product-type.library.static"; @@ -6611,6 +6885,9 @@ 2FCAE2291ABB51F800877008 /* PBXTargetDependency */, ); name = StorageTests; + packageProductDependencies = ( + 1BE9ECC927176FEA00D729BB /* SwiftyJSON */, + ); productName = StorageTests; productReference = 2FCAE2241ABB51F800877008 /* StorageTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; @@ -6622,11 +6899,13 @@ 390527461C874D35007E0BB7 /* Sources */, 390527471C874D35007E0BB7 /* Frameworks */, 390527481C874D35007E0BB7 /* Resources */, + 43338D09278F726500A23914 /* ShellScript */, ); buildRules = ( ); dependencies = ( D09A0CED1FAA2C4C009A0273 /* PBXTargetDependency */, + 4368F852279669C90013419B /* PBXTargetDependency */, ); name = Today; productName = Today; @@ -6640,6 +6919,7 @@ 397848D71ED86605004C0C0B /* Sources */, 397848D81ED86605004C0C0B /* Frameworks */, 397848D91ED86605004C0C0B /* Resources */, + 43338D07278F722700A23914 /* ShellScript */, ); buildRules = ( ); @@ -6648,6 +6928,8 @@ D0EA58171FA836D200D03ED1 /* PBXTargetDependency */, ); name = NotificationService; + packageProductDependencies = ( + ); productName = NotificationService; productReference = 397848DB1ED86605004C0C0B /* NotificationService.appex */; productType = "com.apple.product-type.app-extension"; @@ -6657,8 +6939,6 @@ buildConfigurationList = 3B43E3E91D95C48E00BBA9DB /* Build configuration list for PBXNativeTarget "StoragePerfTests" */; buildPhases = ( 3B43E3CC1D95C48D00BBA9DB /* Sources */, - 3B43E3CD1D95C48D00BBA9DB /* Frameworks */, - 3B43E3CE1D95C48D00BBA9DB /* Resources */, ); buildRules = ( ); @@ -6674,10 +6954,8 @@ isa = PBXNativeTarget; buildConfigurationList = 3BFE4B201D342FB900DDF53F /* Build configuration list for PBXNativeTarget "XCUITests" */; buildPhases = ( - E6EC6EFC1E5354E20067985D /* Copy Carthage Frameworks */, 3BFE4B031D342FB800DDF53F /* Sources */, 3BFE4B041D342FB800DDF53F /* Frameworks */, - 3BFE4B051D342FB800DDF53F /* Resources */, ); buildRules = ( ); @@ -6685,191 +6963,409 @@ 3BFE4B0D1D342FB900DDF53F /* PBXTargetDependency */, ); name = XCUITests; + packageProductDependencies = ( + 43C6A47E27A0679300C79856 /* MappaMundi */, + ); productName = XCUITests; productReference = 3BFE4B071D342FB800DDF53F /* XCUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; - 7BEB64401C7345600092C02E /* L10nSnapshotTests */ = { + 4368F81C279665220013419B /* Sentry */ = { isa = PBXNativeTarget; - buildConfigurationList = E60138631C89EAE700DF9756 /* Build configuration list for PBXNativeTarget "L10nSnapshotTests" */; + buildConfigurationList = 4368F823279665220013419B /* Build configuration list for PBXNativeTarget "Sentry" */; buildPhases = ( - 7BEB64431C7345600092C02E /* Sources */, - 7BEB64461C7345600092C02E /* Frameworks */, - 7BEB64471C7345600092C02E /* Resources */, - E4A69F612048AFEA00D9017B /* Copy Carthage Frameworks */, + 4368F81F279665220013419B /* Sources */, + 4368F820279665220013419B /* Frameworks */, ); buildRules = ( ); dependencies = ( - 7BEB64411C7345600092C02E /* PBXTargetDependency */, ); - name = L10nSnapshotTests; - productName = L10nSnapshotTests; - productReference = 7BEB644D1C7345600092C02E /* L10nSnapshotTests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; + name = Sentry; + packageProductDependencies = ( + 4368F82A279665370013419B /* Sentry */, + ); + productName = Shared; + productReference = 4368F828279665220013419B /* Sentry.framework */; + productType = "com.apple.product-type.framework"; }; - 7BEB644F1C7345990092C02E /* MarketingUITests */ = { + 4368F83E279669740013419B /* Snapkit */ = { isa = PBXNativeTarget; - buildConfigurationList = E60138641C89EAE700DF9756 /* Build configuration list for PBXNativeTarget "MarketingUITests" */; + buildConfigurationList = 4368F845279669740013419B /* Build configuration list for PBXNativeTarget "Snapkit" */; buildPhases = ( - 7BEB64501C7345990092C02E /* Sources */, - 7BEB64531C7345990092C02E /* Frameworks */, - 7BEB64541C7345990092C02E /* Resources */, + 4368F841279669740013419B /* Sources */, + 4368F842279669740013419B /* Frameworks */, ); buildRules = ( ); dependencies = ( - 7BEB645D1C7346100092C02E /* PBXTargetDependency */, ); - name = MarketingUITests; - productName = MarketingUITests; - productReference = 7BEB645A1C7345990092C02E /* MarketingUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; + name = Snapkit; + packageProductDependencies = ( + 4368F84C2796698A0013419B /* SnapKit */, + ); + productName = Shared; + productReference = 4368F84A279669740013419B /* Snapkit.framework */; + productType = "com.apple.product-type.framework"; }; - D39FA15E1A83E0EC00EE869C /* UITests */ = { + 4368F86F27966E810013419B /* SDWebImage */ = { isa = PBXNativeTarget; - buildConfigurationList = D39FA1671A83E0EC00EE869C /* Build configuration list for PBXNativeTarget "UITests" */; + buildConfigurationList = 4368F87627966E810013419B /* Build configuration list for PBXNativeTarget "SDWebImage" */; buildPhases = ( - D39FA15B1A83E0EC00EE869C /* Sources */, - D39FA15C1A83E0EC00EE869C /* Frameworks */, - D39FA15D1A83E0EC00EE869C /* Resources */, - E6ECF2371C974E0600B0DC93 /* CopyFiles */, - 0B21E8011E26C5D3000C8779 /* CopyFiles */, + 4368F87227966E810013419B /* Sources */, + 4368F87327966E810013419B /* Frameworks */, ); buildRules = ( ); dependencies = ( - D39FA1661A83E0EC00EE869C /* PBXTargetDependency */, ); - name = UITests; - productName = UITests; - productReference = D39FA15F1A83E0EC00EE869C /* UITests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; + name = SDWebImage; + packageProductDependencies = ( + 4368F87D27966E960013419B /* SDWebImage */, + ); + productName = Shared; + productReference = 4368F87B27966E810013419B /* SDWebImage.framework */; + productType = "com.apple.product-type.framework"; }; - E69DB0741E97DEA9008A67E6 /* SyncTelemetry */ = { + 43AFC0CD279678920039DDF4 /* XCGLogger */ = { isa = PBXNativeTarget; - buildConfigurationList = E69DB08C1E97DEAA008A67E6 /* Build configuration list for PBXNativeTarget "SyncTelemetry" */; + buildConfigurationList = 43AFC0D4279678920039DDF4 /* Build configuration list for PBXNativeTarget "XCGLogger" */; buildPhases = ( - E69DB0701E97DEA9008A67E6 /* Sources */, - E69DB0711E97DEA9008A67E6 /* Frameworks */, - E69DB0731E97DEA9008A67E6 /* Resources */, + 43AFC0D0279678920039DDF4 /* Sources */, + 43AFC0D1279678920039DDF4 /* Frameworks */, ); buildRules = ( ); dependencies = ( - D09A0CE11FAA25C5009A0273 /* PBXTargetDependency */, ); - name = SyncTelemetry; - productName = SyncTelemetry; - productReference = E69DB0751E97DEA9008A67E6 /* libSyncTelemetry.a */; - productType = "com.apple.product-type.library.static"; + name = XCGLogger; + packageProductDependencies = ( + 43AFC0DB279678A80039DDF4 /* XCGLogger */, + ); + productName = Shared; + productReference = 43AFC0D9279678920039DDF4 /* XCGLogger.framework */; + productType = "com.apple.product-type.framework"; }; - E69DB07C1E97DEA9008A67E6 /* SyncTelemetryTests */ = { + 43AFC0E327967C000039DDF4 /* Fuzi */ = { isa = PBXNativeTarget; - buildConfigurationList = E69DB0921E97DEAA008A67E6 /* Build configuration list for PBXNativeTarget "SyncTelemetryTests" */; + buildConfigurationList = 43AFC0EA27967C000039DDF4 /* Build configuration list for PBXNativeTarget "Fuzi" */; buildPhases = ( - E69DB0791E97DEA9008A67E6 /* Sources */, - E69DB07A1E97DEA9008A67E6 /* Frameworks */, - E69DB07B1E97DEA9008A67E6 /* Resources */, + 43AFC0E627967C000039DDF4 /* Sources */, + 43AFC0E727967C000039DDF4 /* Frameworks */, ); buildRules = ( ); dependencies = ( - E69DB0801E97DEAA008A67E6 /* PBXTargetDependency */, - E69DB0821E97DEAA008A67E6 /* PBXTargetDependency */, ); - name = SyncTelemetryTests; - productName = SyncTelemetryTests; - productReference = E69DB07D1E97DEA9008A67E6 /* SyncTelemetryTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; + name = Fuzi; + packageProductDependencies = ( + 43AFC0F127967C0F0039DDF4 /* Fuzi */, + ); + productName = Shared; + productReference = 43AFC0EF27967C000039DDF4 /* Fuzi.framework */; + productType = "com.apple.product-type.framework"; }; - E6F9650B1B2F1CF20034B023 /* SharedTests */ = { + 43BE5774278BA4D900491291 /* RUSTLogins */ = { isa = PBXNativeTarget; - buildConfigurationList = E6F965381B2F1CF20034B023 /* Build configuration list for PBXNativeTarget "SharedTests" */; + buildConfigurationList = 43BE5785278BA4D900491291 /* Build configuration list for PBXNativeTarget "RUSTLogins" */; buildPhases = ( - E6F965081B2F1CF20034B023 /* Sources */, - E6F965091B2F1CF20034B023 /* Frameworks */, - E6F9650A1B2F1CF20034B023 /* Resources */, + 43BE577C278BA4D900491291 /* Sources */, + 43BE577D278BA4D900491291 /* Frameworks */, ); buildRules = ( ); dependencies = ( - E6F965141B2F1CF20034B023 /* PBXTargetDependency */, - E6F9653A1B2F1D330034B023 /* PBXTargetDependency */, ); - name = SharedTests; - productName = SharedTests; - productReference = E6F9650C1B2F1CF20034B023 /* SharedTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; + name = RUSTLogins; + packageProductDependencies = ( + 43BE5777278BA4D900491291 /* Logins */, + ); + productName = Shared; + productReference = 43BE578A278BA4D900491291 /* RUSTLogins.framework */; + productType = "com.apple.product-type.framework"; }; - F8324A042649A188007E4BFA /* CredentialProvider */ = { + 43BE578C278BA4EA00491291 /* RUSTRustLog */ = { isa = PBXNativeTarget; - buildConfigurationList = F8324A172649A189007E4BFA /* Build configuration list for PBXNativeTarget "CredentialProvider" */; + buildConfigurationList = 43BE579D278BA4EA00491291 /* Build configuration list for PBXNativeTarget "RUSTRustLog" */; buildPhases = ( - F8324A012649A188007E4BFA /* Sources */, - F8324A022649A188007E4BFA /* Frameworks */, - F8324A032649A188007E4BFA /* Resources */, + 43BE5794278BA4EA00491291 /* Sources */, + 43BE5795278BA4EA00491291 /* Frameworks */, ); buildRules = ( ); dependencies = ( - F8324AF92649B540007E4BFA /* PBXTargetDependency */, - F8324AFD2649B540007E4BFA /* PBXTargetDependency */, ); - name = CredentialProvider; - productName = CredentialProvider; - productReference = F8324A052649A188007E4BFA /* CredentialProvider.appex */; - productType = "com.apple.product-type.app-extension"; + name = RUSTRustLog; + packageProductDependencies = ( + 43BE5804278BA52C00491291 /* RustLog */, + ); + productName = Shared; + productReference = 43BE57A2278BA4EA00491291 /* RUSTRustLog.framework */; + productType = "com.apple.product-type.framework"; }; - F84B21BD1A090F8100AAB793 /* Client */ = { + 43BE57A4278BA4EB00491291 /* RUSTNimbus */ = { isa = PBXNativeTarget; - buildConfigurationList = F84B21DD1A090F8100AAB793 /* Build configuration list for PBXNativeTarget "Client" */; + buildConfigurationList = 43BE57B5278BA4EB00491291 /* Build configuration list for PBXNativeTarget "RUSTNimbus" */; buildPhases = ( - 23BEA762251A93FE00A014BF /* ShellScript */, - 7B604F8F1C494AAA006EEEC3 /* Copy Carthage Dependencies */, - CDF3D3002461D92F00A93748 /* Glean SDK Generator Script */, - F84B21BA1A090F8100AAB793 /* Sources */, - F84B21BC1A090F8100AAB793 /* Resources */, - 28CE83DE1A1D1E7C00576538 /* Frameworks */, - F84B22531A0920C600AAB793 /* Embed App Extensions */, - E6639F191BF11E3A002D0853 /* Conditionally Add Settings Bundle */, - E6B09CD31C74EEDB00C63FA1 /* Copy Frameworks */, + 43BE57AC278BA4EB00491291 /* Sources */, + 43BE57AD278BA4EB00491291 /* Frameworks */, ); buildRules = ( ); dependencies = ( - C82043712523DBEB00740B71 /* PBXTargetDependency */, - 288A2D9C1AB8B3260023ABC3 /* PBXTargetDependency */, - 397848E11ED86605004C0C0B /* PBXTargetDependency */, - F84B22521A0920C600AAB793 /* PBXTargetDependency */, - 390527551C874D35007E0BB7 /* PBXTargetDependency */, - 047F9B3124E1FE1F00CD7DF7 /* PBXTargetDependency */, - F8324A112649A188007E4BFA /* PBXTargetDependency */, ); - name = Client; + name = RUSTNimbus; packageProductDependencies = ( - 8A62951A2790EB6C00688230 /* Adjust */, + 43BE57A8278BA4EB00491291 /* Nimbus */, ); - productName = Client; - productReference = F84B21BE1A090F8100AAB793 /* Client.app */; - productType = "com.apple.product-type.application"; + productName = Shared; + productReference = 43BE57BA278BA4EB00491291 /* RUSTNimbus.framework */; + productType = "com.apple.product-type.framework"; }; - F84B21D21A090F8100AAB793 /* ClientTests */ = { + 43BE57BC278BA4EC00491291 /* RUSTViaduct */ = { isa = PBXNativeTarget; - buildConfigurationList = F84B21E01A090F8100AAB793 /* Build configuration list for PBXNativeTarget "ClientTests" */; + buildConfigurationList = 43BE57CD278BA4EC00491291 /* Build configuration list for PBXNativeTarget "RUSTViaduct" */; buildPhases = ( - F84B21CF1A090F8100AAB793 /* Sources */, - F84B21D01A090F8100AAB793 /* Frameworks */, - F84B21D11A090F8100AAB793 /* Resources */, - 2F3444EC1AB2378200FD9731 /* Copy Files */, + 43BE57C4278BA4EC00491291 /* Sources */, + 43BE57C5278BA4EC00491291 /* Frameworks */, ); buildRules = ( ); dependencies = ( - 7B9BF92F1E435DE400CB24F4 /* PBXTargetDependency */, + ); + name = RUSTViaduct; + packageProductDependencies = ( + 1BE8D1CD278D35E200213777 /* Viaduct */, + ); + productName = Shared; + productReference = 43BE57D2278BA4EC00491291 /* RUSTViaduct.framework */; + productType = "com.apple.product-type.framework"; + }; + 43BE57D4278BA4ED00491291 /* RUSTPlaces */ = { + isa = PBXNativeTarget; + buildConfigurationList = 43BE57E5278BA4ED00491291 /* Build configuration list for PBXNativeTarget "RUSTPlaces" */; + buildPhases = ( + 43BE57DC278BA4ED00491291 /* Sources */, + 43BE57DD278BA4ED00491291 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RUSTPlaces; + packageProductDependencies = ( + 43BE57D9278BA4ED00491291 /* Places */, + ); + productName = Shared; + productReference = 43BE57EA278BA4ED00491291 /* RUSTPlaces.framework */; + productType = "com.apple.product-type.framework"; + }; + 43BE57EC278BA50600491291 /* RUSTFxAClient */ = { + isa = PBXNativeTarget; + buildConfigurationList = 43BE57FD278BA50600491291 /* Build configuration list for PBXNativeTarget "RUSTFxAClient" */; + buildPhases = ( + 43BE57F4278BA50600491291 /* Sources */, + 43BE57F5278BA50600491291 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RUSTFxAClient; + packageProductDependencies = ( + 43BE57ED278BA50600491291 /* FxAClient */, + ); + productName = Shared; + productReference = 43BE5802278BA50600491291 /* RUSTFxAClient.framework */; + productType = "com.apple.product-type.framework"; + }; + 7BEB64401C7345600092C02E /* L10nSnapshotTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = E60138631C89EAE700DF9756 /* Build configuration list for PBXNativeTarget "L10nSnapshotTests" */; + buildPhases = ( + 7BEB64431C7345600092C02E /* Sources */, + 7BEB64461C7345600092C02E /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7BEB64411C7345600092C02E /* PBXTargetDependency */, + ); + name = L10nSnapshotTests; + productName = L10nSnapshotTests; + productReference = 7BEB644D1C7345600092C02E /* L10nSnapshotTests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + 7BEB644F1C7345990092C02E /* MarketingUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = E60138641C89EAE700DF9756 /* Build configuration list for PBXNativeTarget "MarketingUITests" */; + buildPhases = ( + 7BEB64501C7345990092C02E /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + 7BEB645D1C7346100092C02E /* PBXTargetDependency */, + ); + name = MarketingUITests; + productName = MarketingUITests; + productReference = 7BEB645A1C7345990092C02E /* MarketingUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + D39FA15E1A83E0EC00EE869C /* UITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = D39FA1671A83E0EC00EE869C /* Build configuration list for PBXNativeTarget "UITests" */; + buildPhases = ( + D39FA15B1A83E0EC00EE869C /* Sources */, + D39FA15C1A83E0EC00EE869C /* Frameworks */, + D39FA15D1A83E0EC00EE869C /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + D39FA1661A83E0EC00EE869C /* PBXTargetDependency */, + ); + name = UITests; + packageProductDependencies = ( + 433F87D42788F01500693368 /* KIF */, + ); + productName = UITests; + productReference = D39FA15F1A83E0EC00EE869C /* UITests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + E69DB0741E97DEA9008A67E6 /* SyncTelemetry */ = { + isa = PBXNativeTarget; + buildConfigurationList = E69DB08C1E97DEAA008A67E6 /* Build configuration list for PBXNativeTarget "SyncTelemetry" */; + buildPhases = ( + E69DB0701E97DEA9008A67E6 /* Sources */, + E69DB0711E97DEA9008A67E6 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + D09A0CE11FAA25C5009A0273 /* PBXTargetDependency */, + ); + name = SyncTelemetry; + packageProductDependencies = ( + ); + productName = SyncTelemetry; + productReference = E69DB0751E97DEA9008A67E6 /* libSyncTelemetry.a */; + productType = "com.apple.product-type.library.static"; + }; + E69DB07C1E97DEA9008A67E6 /* SyncTelemetryTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = E69DB0921E97DEAA008A67E6 /* Build configuration list for PBXNativeTarget "SyncTelemetryTests" */; + buildPhases = ( + E69DB0791E97DEA9008A67E6 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + E69DB0801E97DEAA008A67E6 /* PBXTargetDependency */, + E69DB0821E97DEAA008A67E6 /* PBXTargetDependency */, + ); + name = SyncTelemetryTests; + productName = SyncTelemetryTests; + productReference = E69DB07D1E97DEA9008A67E6 /* SyncTelemetryTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + E6F9650B1B2F1CF20034B023 /* SharedTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = E6F965381B2F1CF20034B023 /* Build configuration list for PBXNativeTarget "SharedTests" */; + buildPhases = ( + E6F965081B2F1CF20034B023 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + E6F965141B2F1CF20034B023 /* PBXTargetDependency */, + E6F9653A1B2F1D330034B023 /* PBXTargetDependency */, + ); + name = SharedTests; + packageProductDependencies = ( + ); + productName = SharedTests; + productReference = E6F9650C1B2F1CF20034B023 /* SharedTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + F8324A042649A188007E4BFA /* CredentialProvider */ = { + isa = PBXNativeTarget; + buildConfigurationList = F8324A172649A189007E4BFA /* Build configuration list for PBXNativeTarget "CredentialProvider" */; + buildPhases = ( + F8324A012649A188007E4BFA /* Sources */, + F8324A022649A188007E4BFA /* Frameworks */, + F8324A032649A188007E4BFA /* Resources */, + 43338D0B278F727600A23914 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + F8324AF92649B540007E4BFA /* PBXTargetDependency */, + F8324AFD2649B540007E4BFA /* PBXTargetDependency */, + 4368F85727966A4F0013419B /* PBXTargetDependency */, + ); + name = CredentialProvider; + packageProductDependencies = ( + ); + productName = CredentialProvider; + productReference = F8324A052649A188007E4BFA /* CredentialProvider.appex */; + productType = "com.apple.product-type.app-extension"; + }; + F84B21BD1A090F8100AAB793 /* Client */ = { + isa = PBXNativeTarget; + buildConfigurationList = F84B21DD1A090F8100AAB793 /* Build configuration list for PBXNativeTarget "Client" */; + buildPhases = ( + CDF3D3002461D92F00A93748 /* Glean SDK Generator Script */, + F84B21BA1A090F8100AAB793 /* Sources */, + F84B21BC1A090F8100AAB793 /* Resources */, + 28CE83DE1A1D1E7C00576538 /* Frameworks */, + F84B22531A0920C600AAB793 /* Embed App Extensions */, + E6639F191BF11E3A002D0853 /* Conditionally Add Settings Bundle */, + E6B09CD31C74EEDB00C63FA1 /* Copy Frameworks */, + 4368F81027955AE80013419B /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 435A2FF7278F51CD00C94282 /* PBXTargetDependency */, + C82043712523DBEB00740B71 /* PBXTargetDependency */, + 288A2D9C1AB8B3260023ABC3 /* PBXTargetDependency */, + 397848E11ED86605004C0C0B /* PBXTargetDependency */, + F84B22521A0920C600AAB793 /* PBXTargetDependency */, + 390527551C874D35007E0BB7 /* PBXTargetDependency */, + 047F9B3124E1FE1F00CD7DF7 /* PBXTargetDependency */, + 4368F82F279665C20013419B /* PBXTargetDependency */, + 4368F88227966EA50013419B /* PBXTargetDependency */, + ); + name = Client; + packageProductDependencies = ( + 1B3D99F0270E89D0006E1264 /* Telemetry */, + 433F87CD2788EAB600693368 /* GCDWebServers */, + 435C85EF2788F4D00072B526 /* Glean */, + 432BD0232790EBD000A0F3C3 /* Adjust */, + ); + productName = Client; + productReference = F84B21BE1A090F8100AAB793 /* Client.app */; + productType = "com.apple.product-type.application"; + }; + F84B21D21A090F8100AAB793 /* ClientTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = F84B21E01A090F8100AAB793 /* Build configuration list for PBXNativeTarget "ClientTests" */; + buildPhases = ( + F84B21CF1A090F8100AAB793 /* Sources */, + F84B21D01A090F8100AAB793 /* Frameworks */, + F84B21D11A090F8100AAB793 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 7B9BF92F1E435DE400CB24F4 /* PBXTargetDependency */, F84B21D51A090F8100AAB793 /* PBXTargetDependency */, ); name = ClientTests; + packageProductDependencies = ( + 1BE9ECCD271770A600D729BB /* SwiftyJSON */, + ); productName = ClientTests; productReference = F84B21D31A090F8100AAB793 /* ClientTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; @@ -6881,14 +7377,18 @@ F84B22451A0920C600AAB793 /* Sources */, F84B22461A0920C600AAB793 /* Frameworks */, F84B22471A0920C600AAB793 /* Resources */, + 43338D08278F725C00A23914 /* ShellScript */, ); buildRules = ( ); dependencies = ( D09A0CF11FAA2C7E009A0273 /* PBXTargetDependency */, D09A0CF31FAA2C81009A0273 /* PBXTargetDependency */, + 4368F85C27966A860013419B /* PBXTargetDependency */, ); name = ShareTo; + packageProductDependencies = ( + ); productName = ShareToFirefox; productReference = F84B22491A0920C600AAB793 /* ShareTo.appex */; productType = "com.apple.product-type.app-extension"; @@ -7166,7 +7666,20 @@ ); mainGroup = F84B21B51A090F8100AAB793; packageReferences = ( - 8A6295192790EB6B00688230 /* XCRemoteSwiftPackageReference "ios_sdk" */, + 1B3D99EF270E89D0006E1264 /* XCRemoteSwiftPackageReference "telemetry-ios" */, + 1BDA1F8327113788006B2FAB /* XCRemoteSwiftPackageReference "SwiftyJSON" */, + 1BDA1F8827113852006B2FAB /* XCRemoteSwiftPackageReference "swift-protobuf" */, + 433F87CC2788EAB600693368 /* XCRemoteSwiftPackageReference "GCDWebServer" */, + 433F87D12788EF5B00693368 /* XCRemoteSwiftPackageReference "KIF" */, + 433F87D62788F34500693368 /* XCRemoteSwiftPackageReference "rust-components-swift" */, + 435C85EE2788F4D00072B526 /* XCRemoteSwiftPackageReference "glean-swift" */, + 432BD0222790EBD000A0F3C3 /* XCRemoteSwiftPackageReference "ios_sdk" */, + 4368F811279611AC0013419B /* XCRemoteSwiftPackageReference "sentry-cocoa" */, + 4368F83B279669690013419B /* XCRemoteSwiftPackageReference "SnapKit" */, + 4368F86C27966E770013419B /* XCRemoteSwiftPackageReference "SDWebImage" */, + 43AFC0CA2796788B0039DDF4 /* XCRemoteSwiftPackageReference "XCGLogger" */, + 43AFC0E027967BFA0039DDF4 /* XCRemoteSwiftPackageReference "Fuzi" */, + 43C6A47D27A0679300C79856 /* XCRemoteSwiftPackageReference "MappaMundi" */, ); productRefGroup = F84B21BF1A090F8100AAB793 /* Products */; projectDirPath = ""; @@ -7179,9 +7692,9 @@ 047F9B2624E1FE1C00CD7DF7 /* WidgetKitExtension */, F8324A042649A188007E4BFA /* CredentialProvider */, 288A2D851AB8B3260023ABC3 /* Shared */, + 2827315D1ABC9BE600AA1954 /* Sync */, 2FCAE2191ABB51F800877008 /* Storage */, 2FA435FA1ABB83B4008031D1 /* Account */, - 2827315D1ABC9BE600AA1954 /* Sync */, E69DB0741E97DEA9008A67E6 /* SyncTelemetry */, F84B21D21A090F8100AAB793 /* ClientTests */, D39FA15E1A83E0EC00EE869C /* UITests */, @@ -7194,6 +7707,17 @@ 3BFE4B061D342FB800DDF53F /* XCUITests */, 3B43E3CF1D95C48D00BBA9DB /* StoragePerfTests */, E69DB07C1E97DEA9008A67E6 /* SyncTelemetryTests */, + 43BE5774278BA4D900491291 /* RUSTLogins */, + 43BE578C278BA4EA00491291 /* RUSTRustLog */, + 43BE57A4278BA4EB00491291 /* RUSTNimbus */, + 43BE57BC278BA4EC00491291 /* RUSTViaduct */, + 43BE57D4278BA4ED00491291 /* RUSTPlaces */, + 43BE57EC278BA50600491291 /* RUSTFxAClient */, + 4368F81C279665220013419B /* Sentry */, + 4368F83E279669740013419B /* Snapkit */, + 4368F86F27966E810013419B /* SDWebImage */, + 43AFC0CD279678920039DDF4 /* XCGLogger */, + 43AFC0E327967C000039DDF4 /* Fuzi */, ); }; /* End PBXProject section */ @@ -7218,13 +7742,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 282731661ABC9BE700AA1954 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 288A2D841AB8B3260023ABC3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -7252,27 +7769,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2FA435F91ABB83B4008031D1 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2FA436031ABB83B4008031D1 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2FCAE2181ABB51F800877008 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 2FCAE2221ABB51F800877008 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -7299,34 +7795,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3B43E3CE1D95C48D00BBA9DB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3BFE4B051D342FB800DDF53F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7BEB64471C7345600092C02E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7BEB64541C7345990092C02E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; D39FA15D1A83E0EC00EE869C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -7348,28 +7816,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E69DB0731E97DEA9008A67E6 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E69DB07B1E97DEA9008A67E6 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E6F9650A1B2F1CF20034B023 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F8324A032649A188007E4BFA /* Resources */ = { + F8324A032649A188007E4BFA /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -7473,7 +7920,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 23BEA762251A93FE00A014BF /* ShellScript */ = { + 43338D07278F722700A23914 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -7488,36 +7935,26 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "rm -rf Carthage/Build/iOS/GCDWebServers.framework/GCDWebUploader.bundle/Contents/Resources/fonts\n"; + shellScript = "cd \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [[ -d \"Frameworks\" ]]; then \n rm -fr Frameworks\nfi\n"; }; - 7B604F8F1C494AAA006EEEC3 /* Copy Carthage Dependencies */ = { + 43338D08278F725C00A23914 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "$(SRCROOT)/Carthage/Build/iOS/SDWebImage.framework", - "$(SRCROOT)/Carthage/Build/iOS/SnapKit.framework", - "$(SRCROOT)/Carthage/Build/iOS/ObjcExceptionBridging.framework", - "$(SRCROOT)/Carthage/Build/iOS/XCGLogger.framework", - "$(SRCROOT)/Carthage/Build/iOS/GCDWebServers.framework", - "$(SRCROOT)/Carthage/Build/iOS/OnePasswordExtension.framework", - "$(SRCROOT)/Carthage/Build/iOS/SwiftKeychainWrapper.framework", - "$(SRCROOT)/Carthage/Build/iOS/Fuzi.framework", - "$(SRCROOT)/Carthage/Build/iOS/SwiftyJSON.framework", - "$(SRCROOT)/Carthage/Build/iOS/Sentry.framework", - "$(SRCROOT)/Carthage/Build/iOS/Telemetry.framework", - "$(SRCROOT)/Carthage/Build/iOS/SwiftProtobuf.framework", - "$(SRCROOT)/Carthage/Build/iOS/MozillaAppServices.framework", - ); - name = "Copy Carthage Dependencies"; + ); + outputFileListPaths = ( + ); outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/usr/local/bin/carthage copy-frameworks\n"; + shellScript = "cd \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [[ -d \"Frameworks\" ]]; then \n rm -fr Frameworks\nfi\n"; }; - CDF3D3002461D92F00A93748 /* Glean SDK Generator Script */ = { + 43338D09278F726500A23914 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -7525,63 +7962,100 @@ inputFileListPaths = ( ); inputPaths = ( - "$(SRCROOT)/Client/metrics.yaml", ); - name = "Glean SDK Generator Script"; outputFileListPaths = ( ); outputPaths = ( - "$(SRCROOT)/Client/Generated/Metrics.swift", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "rm -rf .venv; bash $SRCROOT/sdk_generator.sh -g MozillaAppServices\n"; + shellScript = "cd \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [[ -d \"Frameworks\" ]]; then \n rm -fr Frameworks\nfi\n"; }; - E4A69F612048AFEA00D9017B /* Copy Carthage Frameworks */ = { + 43338D0A278F726D00A23914 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "$(SRCROOT)/Carthage/Build/iOS/MappaMundi.framework", - "$(SRCROOT)/Carthage/Build/iOS/AStar.framework", ); - name = "Copy Carthage Frameworks"; + outputFileListPaths = ( + ); outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/usr/local/bin/carthage copy-frameworks"; + shellScript = "cd \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [[ -d \"Frameworks\" ]]; then \n rm -fr Frameworks\nfi\n"; }; - E6639F191BF11E3A002D0853 /* Conditionally Add Settings Bundle */ = { + 43338D0B278F727600A23914 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( ); - name = "Conditionally Add Settings Bundle"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\nif [[ -d \"Frameworks\" ]]; then \n rm -fr Frameworks\nfi\n"; + }; + 4368F81027955AE80013419B /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "movedFrameworks=()\n cd \"${CODESIGNING_FOLDER_PATH}/Frameworks/\"\n for framework in *; do\n if [ -d \"$framework\" ]; then\n if [ -d \"${framework}/Frameworks\" ]; then\n echo \"Moving nested frameworks from ${framework}/Frameworks/ to ${PRODUCT_NAME}.app/Frameworks/\"\n \n cd \"${framework}/Frameworks/\"\n for nestedFramework in *; do\n echo \"- nested: ${nestedFramework}\"\n movedFrameworks+=(\"${nestedFramework}\")\n done\n cd ..\n cd ..\n \n cp -R \"${framework}/Frameworks/\" .\n rm -rf \"${framework}/Frameworks\"\n fi\n fi\n done\n \n if [ \"${CONFIGURATION}\" == \"Debug\" ] & [ \"${PLATFORM_NAME}\" != \"iphonesimulator\" ] ; then\n for movedFramework in \"${movedFrameworks[@]}\"\n do\n codesign --force --deep --sign \"${EXPANDED_CODE_SIGN_IDENTITY}\" --preserve-metadata=identifier,entitlements --timestamp=none \"${movedFramework}\"\n done\n else\n echo \"Info: CODESIGNING is only needed for Debug on device (will be re-signed anyway when archiving) \"\n fi\n"; + }; + CDF3D3002461D92F00A93748 /* Glean SDK Generator Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(SRCROOT)/Client/metrics.yaml", + ); + name = "Glean SDK Generator Script"; + outputFileListPaths = ( + ); outputPaths = ( + "$(SRCROOT)/Client/Generated/Metrics.swift", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [ \"${INCLUDE_SETTINGS_BUNDLE}\" = \"YES\" ]\nthen\n cp -r \"${PROJECT_DIR}/${TARGET_NAME}/Application/Settings.bundle\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app\"\nfi"; + shellScript = "rm -rf .venv; bash $PWD/bin/sdk_generator.sh -g Glean\n"; }; - E6EC6EFC1E5354E20067985D /* Copy Carthage Frameworks */ = { + E6639F191BF11E3A002D0853 /* Conditionally Add Settings Bundle */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "$(SRCROOT)/Carthage/Build/iOS/MappaMundi.framework", - "$(SRCROOT)/Carthage/Build/iOS/AStar.framework", ); - name = "Copy Carthage Frameworks"; + name = "Conditionally Add Settings Bundle"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/usr/local/bin/carthage copy-frameworks"; + shellScript = "if [ \"${INCLUDE_SETTINGS_BUNDLE}\" = \"YES\" ]\nthen\n cp -r \"${PROJECT_DIR}/${TARGET_NAME}/Application/Settings.bundle\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app\"\nfi\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -7938,6 +8412,83 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 4368F81F279665220013419B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4368F841279669740013419B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4368F87227966E810013419B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43AFC0D0279678920039DDF4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43AFC0E627967C000039DDF4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE577C278BA4D900491291 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE5794278BA4EA00491291 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE57AC278BA4EB00491291 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE57C4278BA4EC00491291 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE57DC278BA4ED00491291 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 43BE57F4278BA50600491291 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 7BEB64431C7345600092C02E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -8576,6 +9127,60 @@ target = 288A2D851AB8B3260023ABC3 /* Shared */; targetProxy = 43118CDE251A9CAD00F24376 /* PBXContainerItemProxy */; }; + 435A2FF7278F51CD00C94282 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F8324A042649A188007E4BFA /* CredentialProvider */; + targetProxy = 435A2FF6278F51CD00C94282 /* PBXContainerItemProxy */; + }; + 4368F82F279665C20013419B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4368F81C279665220013419B /* Sentry */; + targetProxy = 4368F82E279665C20013419B /* PBXContainerItemProxy */; + }; + 4368F833279665D50013419B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4368F81C279665220013419B /* Sentry */; + targetProxy = 4368F832279665D50013419B /* PBXContainerItemProxy */; + }; + 4368F837279665DF0013419B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4368F81C279665220013419B /* Sentry */; + targetProxy = 4368F836279665DF0013419B /* PBXContainerItemProxy */; + }; + 4368F852279669C90013419B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4368F83E279669740013419B /* Snapkit */; + targetProxy = 4368F851279669C90013419B /* PBXContainerItemProxy */; + }; + 4368F85727966A4F0013419B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4368F83E279669740013419B /* Snapkit */; + targetProxy = 4368F85627966A4F0013419B /* PBXContainerItemProxy */; + }; + 4368F85C27966A860013419B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4368F83E279669740013419B /* Snapkit */; + targetProxy = 4368F85B27966A860013419B /* PBXContainerItemProxy */; + }; + 4368F88227966EA50013419B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4368F86F27966E810013419B /* SDWebImage */; + targetProxy = 4368F88127966EA50013419B /* PBXContainerItemProxy */; + }; + 4368F88627966F350013419B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4368F86F27966E810013419B /* SDWebImage */; + targetProxy = 4368F88527966F350013419B /* PBXContainerItemProxy */; + }; + 43BE5814278BAF9A00491291 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 43BE57D4278BA4ED00491291 /* RUSTPlaces */; + targetProxy = 43BE5813278BAF9A00491291 /* PBXContainerItemProxy */; + }; + 43EFA63E2786562600400DF0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + productRef = 43EFA63D2786562600400DF0 /* Places */; + }; 7B9BF92F1E435DE400CB24F4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 2FCAE2231ABB51F800877008 /* StorageTests */; @@ -8656,11 +9261,6 @@ target = F84B21BD1A090F8100AAB793 /* Client */; targetProxy = E63CD1B21B31B66400A63AFF /* PBXContainerItemProxy */; }; - F8324A112649A188007E4BFA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = F8324A042649A188007E4BFA /* CredentialProvider */; - targetProxy = F8324A102649A188007E4BFA /* PBXContainerItemProxy */; - }; F8324AF92649B540007E4BFA /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 288A2D851AB8B3260023ABC3 /* Shared */; @@ -10833,6 +11433,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; DEFINES_MODULE = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = Sync/Info.plist; SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Sync/Sync-Bridging-Header.h"; }; @@ -10842,6 +11443,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = SyncTests/Info.plist; SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/SyncTests/SyncTests-Bridging-Header.h"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Client.app/Client"; @@ -10857,6 +11459,7 @@ CODE_SIGN_STYLE = Manual; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = "Shared/Supporting Files/Info.plist"; LOCALIZED_STRING_MACRO_NAMES = ( MZLocalizedString, @@ -10874,6 +11477,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; DEFINES_MODULE = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; HEADER_SEARCH_PATHS = ( "$(inherited)", /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, @@ -10896,6 +11500,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = AccountTests/Info.plist; SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Account/Account-Bridging-Header.h"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Client.app/Client"; @@ -10906,11 +11511,11 @@ isa = XCBuildConfiguration; buildSettings = { DEFINES_MODULE = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = Storage/Info.plist; SKIP_INSTALL = YES; SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Storage/Storage-Bridging-Header.h"; - VALIDATE_WORKSPACE = NO; + VALIDATE_WORKSPACE = YES; }; name = Fennec; }; @@ -10918,6 +11523,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = StorageTests/Info.plist; SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Storage/Storage-Bridging-Header.h"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Client.app/Client"; @@ -10931,6 +11537,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = Extensions/Today/Info.plist; OTHER_SWIFT_FLAGS = "-DMOZ_CHANNEL_FENNEC -DMOZ_TARGET_TODAY"; PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID).$(PRODUCT_NAME)"; @@ -10994,6 +11601,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = Extensions/NotificationService/Info.plist; OTHER_SWIFT_FLAGS = "-DMOZ_CHANNEL_FENNEC -DMOZ_TARGET_NOTIFICATIONSERVICE"; PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID).$(PRODUCT_NAME)"; @@ -11038,6 +11646,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = StoragePerfTests/Info.plist; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Client.app/Client"; }; @@ -11067,6 +11676,7 @@ CODE_SIGN_ENTITLEMENTS = ""; CODE_SIGN_IDENTITY = "iPhone Distribution"; DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = XCUITests/Info.plist; PRODUCT_BUNDLE_IDENTIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "org.mozilla.ios.XCUITests 2021-08-12"; @@ -11106,8 +11716,10 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = WidgetKit/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MARKETING_VERSION = 0.0.1; PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID).WidgetKit"; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = NO; @@ -11122,40 +11734,1033 @@ CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = ""; IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MARKETING_VERSION = 0.0.1; PINFOPLIST_FILE = WidgetKit/Info.plist; PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID).WidgetKit"; PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = NO; + SKIP_INSTALL = NO; + }; + name = Fennec_Enterprise; + }; + 4354D3E324EEEEC5001184F6 /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = Extensions/Entitlements/Firefox.entitlements; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = WidgetKit/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MARKETING_VERSION = 0.0.1; + PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID).WidgetKit"; + PROVISIONING_PROFILE_SPECIFIER = "org.mozilla.ios.Firefox.WidgetKit 2021-08-12"; + SKIP_INSTALL = NO; + }; + name = Firefox; + }; + 4354D3E424EEEEC5001184F6 /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = Extensions/Entitlements/FirefoxBeta.entitlements; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = WidgetKit/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MARKETING_VERSION = 0.0.1; + PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID).WidgetKit"; + PROVISIONING_PROFILE_SPECIFIER = "org.mozilla.ios.FirefoxBeta.WidgetKit 2021-08-12"; + SKIP_INSTALL = NO; + }; + name = FirefoxBeta; + }; + 4368F824279665220013419B /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "Sentry-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 4368F825279665220013419B /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "Sentry-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec_Enterprise; + }; + 4368F826279665220013419B /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "Sentry-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Firefox; + }; + 4368F827279665220013419B /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "Sentry-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = FirefoxBeta; + }; + 4368F846279669740013419B /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "Snapkit-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 4368F847279669740013419B /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "Snapkit-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec_Enterprise; + }; + 4368F848279669740013419B /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "Snapkit-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Firefox; + }; + 4368F849279669740013419B /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "Snapkit-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = FirefoxBeta; + }; + 4368F87727966E810013419B /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "SDWebImage-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 4368F87827966E810013419B /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "SDWebImage-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec_Enterprise; + }; + 4368F87927966E810013419B /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "SDWebImage-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Firefox; + }; + 4368F87A27966E810013419B /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "SDWebImage-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = FirefoxBeta; + }; + 43AFC0D5279678920039DDF4 /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "XCGLogger-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 43AFC0D6279678920039DDF4 /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "XCGLogger-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec_Enterprise; + }; + 43AFC0D7279678920039DDF4 /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "XCGLogger-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Firefox; + }; + 43AFC0D8279678920039DDF4 /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "XCGLogger-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = FirefoxBeta; + }; + 43AFC0EB27967C000039DDF4 /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "Fuzi-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 43AFC0EC27967C000039DDF4 /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "Fuzi-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec_Enterprise; + }; + 43AFC0ED27967C000039DDF4 /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "Fuzi-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Firefox; + }; + 43AFC0EE27967C000039DDF4 /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "Fuzi-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = FirefoxBeta; + }; + 43BE5786278BA4D900491291 /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "$(SRCROOT)/RustLogins-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 43BE5787278BA4D900491291 /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustLogins-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec_Enterprise; + }; + 43BE5788278BA4D900491291 /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "$(SRCROOT)/RustLogins-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Firefox; + }; + 43BE5789278BA4D900491291 /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustLogins-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = FirefoxBeta; + }; + 43BE579E278BA4EA00491291 /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "$(SRCROOT)/RustRustLog-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 43BE579F278BA4EA00491291 /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustRustLog-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec_Enterprise; + }; + 43BE57A0278BA4EA00491291 /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "$(SRCROOT)/RustRustLog-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Firefox; + }; + 43BE57A1278BA4EA00491291 /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustRustLog-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = FirefoxBeta; + }; + 43BE57B6278BA4EB00491291 /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "$(SRCROOT)/RustNimbus-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 43BE57B7278BA4EB00491291 /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustNimbus-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec_Enterprise; + }; + 43BE57B8278BA4EB00491291 /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "$(SRCROOT)/RustNimbus-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Firefox; + }; + 43BE57B9278BA4EB00491291 /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustNimbus-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = FirefoxBeta; + }; + 43BE57CE278BA4EC00491291 /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "$(SRCROOT)/RustViaDuct-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 43BE57CF278BA4EC00491291 /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustViaDuct-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec_Enterprise; + }; + 43BE57D0278BA4EC00491291 /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "$(SRCROOT)/RustViaDuct-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Firefox; + }; + 43BE57D1278BA4EC00491291 /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustViaDuct-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = FirefoxBeta; + }; + 43BE57E6278BA4ED00491291 /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "$(SRCROOT)/RustPlaces-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 43BE57E7278BA4ED00491291 /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustPlaces-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec_Enterprise; + }; + 43BE57E8278BA4ED00491291 /* Firefox */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "$(SRCROOT)/RustPlaces-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Firefox; + }; + 43BE57E9278BA4ED00491291 /* FirefoxBeta */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustPlaces-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = FirefoxBeta; + }; + 43BE57FE278BA50600491291 /* Fennec */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = "$(SRCROOT)/RustFxAClient-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; + }; + name = Fennec; + }; + 43BE57FF278BA50600491291 /* Fennec_Enterprise */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 43AQ936H96; + INFOPLIST_FILE = "$(SRCROOT)/RustFxAClient-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; }; name = Fennec_Enterprise; }; - 4354D3E324EEEEC5001184F6 /* Firefox */ = { + 43BE5800278BA50600491291 /* Firefox */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_ENTITLEMENTS = Extensions/Entitlements/Firefox.entitlements; + CODE_SIGN_ENTITLEMENTS = ""; CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 43AQ936H96; - INFOPLIST_FILE = WidgetKit/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID).WidgetKit"; - PROVISIONING_PROFILE_SPECIFIER = "org.mozilla.ios.Firefox.WidgetKit 2021-08-12"; - SKIP_INSTALL = NO; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = "$(SRCROOT)/RustFxAClient-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; }; name = Firefox; }; - 4354D3E424EEEEC5001184F6 /* FirefoxBeta */ = { + 43BE5801278BA50600491291 /* FirefoxBeta */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_ENTITLEMENTS = Extensions/Entitlements/FirefoxBeta.entitlements; + CODE_SIGN_ENTITLEMENTS = ""; CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 43AQ936H96; - INFOPLIST_FILE = WidgetKit/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; - PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID).WidgetKit"; - PROVISIONING_PROFILE_SPECIFIER = "org.mozilla.ios.FirefoxBeta.WidgetKit 2021-08-12"; - SKIP_INSTALL = NO; + INFOPLIST_FILE = "$(SRCROOT)/RustFxAClient-Info.plist"; + LOCALIZED_STRING_MACRO_NAMES = ( + MZLocalizedString, + NSLocalizedString, + CFCopyLocalizedString, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; }; name = FirefoxBeta; }; @@ -11163,6 +12768,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = UITests/Info.plist; SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/UITests/UITests-Bridging-Header.h"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Client.app/Client"; @@ -11183,6 +12789,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = E60961891B62B8C800DD640F /* Firefox.xcconfig */; buildSettings = { + VALIDATE_WORKSPACE = YES; }; name = Firefox; }; @@ -11199,10 +12806,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS/AdjustSdk.framework", - ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID)"; PRODUCT_MODULE_NAME = Client; PRODUCT_NAME = Client; @@ -11348,6 +12952,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; PRODUCT_NAME = L10nSnapshotTests; TEST_TARGET_NAME = Client; USES_XCTRUNNER = YES; @@ -11378,6 +12983,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; PRODUCT_NAME = MarketingUITests; }; name = Fennec; @@ -11401,6 +13007,7 @@ E69DB08D1E97DEAA008A67E6 /* Fennec */ = { isa = XCBuildConfiguration; buildSettings = { + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = SyncTelemetry/Info.plist; }; name = Fennec; @@ -11430,6 +13037,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = SyncTelemetryTests/Info.plist; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Client.app/Client"; }; @@ -11466,6 +13074,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = E6DCC1ED1DCBB6AA00CEC4B7 /* Fennec.enterprise.xcconfig */; buildSettings = { + VALIDATE_WORKSPACE = YES; }; name = Fennec_Enterprise; }; @@ -11483,10 +13092,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS/AdjustSdk.framework", - ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID)"; PRODUCT_MODULE_NAME = Client; PRODUCT_NAME = Client; @@ -11698,6 +13304,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = SharedTests/Info.plist; SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/Shared/Shared-Bridging-Header.h"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Client.app/Client"; @@ -11718,6 +13325,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = E6FCC43C1C40565200DF6113 /* FirefoxBeta.xcconfig */; buildSettings = { + VALIDATE_WORKSPACE = YES; }; name = FirefoxBeta; }; @@ -11734,10 +13342,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS/AdjustSdk.framework", - ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID)"; PRODUCT_MODULE_NAME = Client; PRODUCT_NAME = Client; @@ -11935,6 +13540,7 @@ DEVELOPMENT_TEAM = 43AQ936H96; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -11956,6 +13562,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); + MARKETING_VERSION = 0.0.1; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -12026,6 +13633,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); + MARKETING_VERSION = 0.0.1; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.mozilla.ios.FennecEnterprise.CredentialProvider; @@ -12097,6 +13705,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); + MARKETING_VERSION = 0.0.1; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.mozilla.ios.Firefox.CredentialProvider; @@ -12168,6 +13777,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); + MARKETING_VERSION = 0.0.1; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.mozilla.ios.FirefoxBeta.CredentialProvider; @@ -12187,6 +13797,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = E60961861B62B8A700DD640F /* Fennec.xcconfig */; buildSettings = { + VALIDATE_WORKSPACE = YES; }; name = Fennec; }; @@ -12198,14 +13809,12 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS/AdjustSdk.framework", - ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID)"; PRODUCT_MODULE_NAME = Client; PRODUCT_NAME = Client; @@ -12221,6 +13830,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = ""; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = ClientTests/Info.plist; PRODUCT_NAME = ClientTests; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Client.app/Client"; @@ -12234,6 +13844,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 43AQ936H96; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; INFOPLIST_FILE = Extensions/ShareTo/Info.plist; OTHER_SWIFT_FLAGS = "-DMOZ_CHANNEL_FENNEC -DMOZ_TARGET_SHARETO"; PRODUCT_BUNDLE_IDENTIFIER = "$(MOZ_BUNDLE_ID).$(PRODUCT_NAME)"; @@ -12377,6 +13988,127 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Fennec; }; + 4368F823279665220013419B /* Build configuration list for PBXNativeTarget "Sentry" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4368F824279665220013419B /* Fennec */, + 4368F825279665220013419B /* Fennec_Enterprise */, + 4368F826279665220013419B /* Firefox */, + 4368F827279665220013419B /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; + 4368F845279669740013419B /* Build configuration list for PBXNativeTarget "Snapkit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4368F846279669740013419B /* Fennec */, + 4368F847279669740013419B /* Fennec_Enterprise */, + 4368F848279669740013419B /* Firefox */, + 4368F849279669740013419B /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; + 4368F87627966E810013419B /* Build configuration list for PBXNativeTarget "SDWebImage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4368F87727966E810013419B /* Fennec */, + 4368F87827966E810013419B /* Fennec_Enterprise */, + 4368F87927966E810013419B /* Firefox */, + 4368F87A27966E810013419B /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; + 43AFC0D4279678920039DDF4 /* Build configuration list for PBXNativeTarget "XCGLogger" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43AFC0D5279678920039DDF4 /* Fennec */, + 43AFC0D6279678920039DDF4 /* Fennec_Enterprise */, + 43AFC0D7279678920039DDF4 /* Firefox */, + 43AFC0D8279678920039DDF4 /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; + 43AFC0EA27967C000039DDF4 /* Build configuration list for PBXNativeTarget "Fuzi" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43AFC0EB27967C000039DDF4 /* Fennec */, + 43AFC0EC27967C000039DDF4 /* Fennec_Enterprise */, + 43AFC0ED27967C000039DDF4 /* Firefox */, + 43AFC0EE27967C000039DDF4 /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; + 43BE5785278BA4D900491291 /* Build configuration list for PBXNativeTarget "RUSTLogins" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43BE5786278BA4D900491291 /* Fennec */, + 43BE5787278BA4D900491291 /* Fennec_Enterprise */, + 43BE5788278BA4D900491291 /* Firefox */, + 43BE5789278BA4D900491291 /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; + 43BE579D278BA4EA00491291 /* Build configuration list for PBXNativeTarget "RUSTRustLog" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43BE579E278BA4EA00491291 /* Fennec */, + 43BE579F278BA4EA00491291 /* Fennec_Enterprise */, + 43BE57A0278BA4EA00491291 /* Firefox */, + 43BE57A1278BA4EA00491291 /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; + 43BE57B5278BA4EB00491291 /* Build configuration list for PBXNativeTarget "RUSTNimbus" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43BE57B6278BA4EB00491291 /* Fennec */, + 43BE57B7278BA4EB00491291 /* Fennec_Enterprise */, + 43BE57B8278BA4EB00491291 /* Firefox */, + 43BE57B9278BA4EB00491291 /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; + 43BE57CD278BA4EC00491291 /* Build configuration list for PBXNativeTarget "RUSTViaduct" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43BE57CE278BA4EC00491291 /* Fennec */, + 43BE57CF278BA4EC00491291 /* Fennec_Enterprise */, + 43BE57D0278BA4EC00491291 /* Firefox */, + 43BE57D1278BA4EC00491291 /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; + 43BE57E5278BA4ED00491291 /* Build configuration list for PBXNativeTarget "RUSTPlaces" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43BE57E6278BA4ED00491291 /* Fennec */, + 43BE57E7278BA4ED00491291 /* Fennec_Enterprise */, + 43BE57E8278BA4ED00491291 /* Firefox */, + 43BE57E9278BA4ED00491291 /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; + 43BE57FD278BA50600491291 /* Build configuration list for PBXNativeTarget "RUSTFxAClient" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43BE57FE278BA50600491291 /* Fennec */, + 43BE57FF278BA50600491291 /* Fennec_Enterprise */, + 43BE5800278BA50600491291 /* Firefox */, + 43BE5801278BA50600491291 /* FirefoxBeta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Fennec; + }; D39FA1671A83E0EC00EE869C /* Build configuration list for PBXNativeTarget "UITests" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -12502,22 +14234,281 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 8A6295192790EB6B00688230 /* XCRemoteSwiftPackageReference "ios_sdk" */ = { + 1B3D99EF270E89D0006E1264 /* XCRemoteSwiftPackageReference "telemetry-ios" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/adjust/ios_sdk"; + repositoryURL = "https://github.com/mozilla-mobile/telemetry-ios"; + requirement = { + kind = exactVersion; + version = 2.0.0; + }; + }; + 1BDA1F8327113788006B2FAB /* XCRemoteSwiftPackageReference "SwiftyJSON" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/SwiftyJSON/SwiftyJSON"; + requirement = { + kind = exactVersion; + version = 5.0.1; + }; + }; + 1BDA1F8827113852006B2FAB /* XCRemoteSwiftPackageReference "swift-protobuf" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/apple/swift-protobuf.git"; + requirement = { + kind = exactVersion; + version = 1.18.0; + }; + }; + 1BE9ECAA271765C800D729BB /* XCRemoteSwiftPackageReference "rust-components-swift" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/mozilla/rust-components-swift"; + requirement = { + kind = exactVersion; + version = 87.2.0; + }; + }; + 432BD0222790EBD000A0F3C3 /* XCRemoteSwiftPackageReference "ios_sdk" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/adjust/ios_sdk.git"; requirement = { kind = exactVersion; version = 4.29.6; }; }; + 433F87CC2788EAB600693368 /* XCRemoteSwiftPackageReference "GCDWebServer" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/nbhasin2/GCDWebServer.git"; + requirement = { + branch = master; + kind = branch; + }; + }; + 433F87D12788EF5B00693368 /* XCRemoteSwiftPackageReference "KIF" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/kif-framework/KIF.git"; + requirement = { + kind = exactVersion; + version = 3.8.6; + }; + }; + 433F87D62788F34500693368 /* XCRemoteSwiftPackageReference "rust-components-swift" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/skhamis/rust-components-swift"; + requirement = { + branch = "update-for-fxios"; + kind = branch; + }; + }; + 435C85EE2788F4D00072B526 /* XCRemoteSwiftPackageReference "glean-swift" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/mozilla/glean-swift"; + requirement = { + kind = exactVersion; + version = 43.0.2; + }; + }; + 4368F811279611AC0013419B /* XCRemoteSwiftPackageReference "sentry-cocoa" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/getsentry/sentry-cocoa.git"; + requirement = { + kind = exactVersion; + version = 4.4.3; + }; + }; + 4368F83B279669690013419B /* XCRemoteSwiftPackageReference "SnapKit" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/SnapKit/SnapKit.git"; + requirement = { + kind = exactVersion; + version = 5.0.1; + }; + }; + 4368F86C27966E770013419B /* XCRemoteSwiftPackageReference "SDWebImage" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/SDWebImage/SDWebImage.git"; + requirement = { + kind = exactVersion; + version = 5.4.0; + }; + }; + 43AFC0CA2796788B0039DDF4 /* XCRemoteSwiftPackageReference "XCGLogger" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/DaveWoodCom/XCGLogger.git"; + requirement = { + kind = exactVersion; + version = 7.0.1; + }; + }; + 43AFC0E027967BFA0039DDF4 /* XCRemoteSwiftPackageReference "Fuzi" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/nbhasin2/Fuzi.git"; + requirement = { + branch = master; + kind = branch; + }; + }; + 43BE5776278BA4D900491291 /* XCRemoteSwiftPackageReference "rust-components-swift" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/skhamis/rust-components-swift"; + requirement = { + branch = "update-for-fxios"; + kind = branch; + }; + }; + 43BE57A6278BA4EB00491291 /* XCRemoteSwiftPackageReference "rust-components-swift" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/skhamis/rust-components-swift"; + requirement = { + branch = "update-for-fxios"; + kind = branch; + }; + }; + 43BE57D6278BA4ED00491291 /* XCRemoteSwiftPackageReference "rust-components-swift" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/skhamis/rust-components-swift"; + requirement = { + branch = "update-for-fxios"; + kind = branch; + }; + }; + 43BE57EE278BA50600491291 /* XCRemoteSwiftPackageReference "rust-components-swift" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/skhamis/rust-components-swift"; + requirement = { + branch = "update-for-fxios"; + kind = branch; + }; + }; + 43C6A47D27A0679300C79856 /* XCRemoteSwiftPackageReference "MappaMundi" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/nbhasin2/MappaMundi.git"; + requirement = { + branch = master; + kind = branch; + }; + }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 8A62951A2790EB6C00688230 /* Adjust */ = { + 1B0DFD24274856D60008EB0A /* SwiftyJSON */ = { + isa = XCSwiftPackageProductDependency; + package = 1BDA1F8327113788006B2FAB /* XCRemoteSwiftPackageReference "SwiftyJSON" */; + productName = SwiftyJSON; + }; + 1B0DFD31274858B10008EB0A /* SwiftyJSON */ = { + isa = XCSwiftPackageProductDependency; + package = 1BDA1F8327113788006B2FAB /* XCRemoteSwiftPackageReference "SwiftyJSON" */; + productName = SwiftyJSON; + }; + 1B3D99F0270E89D0006E1264 /* Telemetry */ = { + isa = XCSwiftPackageProductDependency; + package = 1B3D99EF270E89D0006E1264 /* XCRemoteSwiftPackageReference "telemetry-ios" */; + productName = Telemetry; + }; + 1BE8D1CD278D35E200213777 /* Viaduct */ = { + isa = XCSwiftPackageProductDependency; + package = 433F87D62788F34500693368 /* XCRemoteSwiftPackageReference "rust-components-swift" */; + productName = Viaduct; + }; + 1BE9ECC927176FEA00D729BB /* SwiftyJSON */ = { + isa = XCSwiftPackageProductDependency; + package = 1BDA1F8327113788006B2FAB /* XCRemoteSwiftPackageReference "SwiftyJSON" */; + productName = SwiftyJSON; + }; + 1BE9ECCB2717704300D729BB /* SwiftyJSON */ = { + isa = XCSwiftPackageProductDependency; + package = 1BDA1F8327113788006B2FAB /* XCRemoteSwiftPackageReference "SwiftyJSON" */; + productName = SwiftyJSON; + }; + 1BE9ECCD271770A600D729BB /* SwiftyJSON */ = { + isa = XCSwiftPackageProductDependency; + package = 1BDA1F8327113788006B2FAB /* XCRemoteSwiftPackageReference "SwiftyJSON" */; + productName = SwiftyJSON; + }; + 432BD0232790EBD000A0F3C3 /* Adjust */ = { isa = XCSwiftPackageProductDependency; - package = 8A6295192790EB6B00688230 /* XCRemoteSwiftPackageReference "ios_sdk" */; + package = 432BD0222790EBD000A0F3C3 /* XCRemoteSwiftPackageReference "ios_sdk" */; productName = Adjust; }; + 433F87CD2788EAB600693368 /* GCDWebServers */ = { + isa = XCSwiftPackageProductDependency; + package = 433F87CC2788EAB600693368 /* XCRemoteSwiftPackageReference "GCDWebServer" */; + productName = GCDWebServers; + }; + 433F87CF2788ECDD00693368 /* GCDWebServers */ = { + isa = XCSwiftPackageProductDependency; + package = 433F87CC2788EAB600693368 /* XCRemoteSwiftPackageReference "GCDWebServer" */; + productName = GCDWebServers; + }; + 433F87D42788F01500693368 /* KIF */ = { + isa = XCSwiftPackageProductDependency; + package = 433F87D12788EF5B00693368 /* XCRemoteSwiftPackageReference "KIF" */; + productName = KIF; + }; + 435C85EF2788F4D00072B526 /* Glean */ = { + isa = XCSwiftPackageProductDependency; + package = 435C85EE2788F4D00072B526 /* XCRemoteSwiftPackageReference "glean-swift" */; + productName = Glean; + }; + 4368F82A279665370013419B /* Sentry */ = { + isa = XCSwiftPackageProductDependency; + package = 4368F811279611AC0013419B /* XCRemoteSwiftPackageReference "sentry-cocoa" */; + productName = Sentry; + }; + 4368F84C2796698A0013419B /* SnapKit */ = { + isa = XCSwiftPackageProductDependency; + package = 4368F83B279669690013419B /* XCRemoteSwiftPackageReference "SnapKit" */; + productName = SnapKit; + }; + 4368F87D27966E960013419B /* SDWebImage */ = { + isa = XCSwiftPackageProductDependency; + package = 4368F86C27966E770013419B /* XCRemoteSwiftPackageReference "SDWebImage" */; + productName = SDWebImage; + }; + 43AFC0DB279678A80039DDF4 /* XCGLogger */ = { + isa = XCSwiftPackageProductDependency; + package = 43AFC0CA2796788B0039DDF4 /* XCRemoteSwiftPackageReference "XCGLogger" */; + productName = XCGLogger; + }; + 43AFC0F127967C0F0039DDF4 /* Fuzi */ = { + isa = XCSwiftPackageProductDependency; + package = 43AFC0E027967BFA0039DDF4 /* XCRemoteSwiftPackageReference "Fuzi" */; + productName = Fuzi; + }; + 43BE5777278BA4D900491291 /* Logins */ = { + isa = XCSwiftPackageProductDependency; + package = 43BE5776278BA4D900491291 /* XCRemoteSwiftPackageReference "rust-components-swift" */; + productName = Logins; + }; + 43BE57A8278BA4EB00491291 /* Nimbus */ = { + isa = XCSwiftPackageProductDependency; + package = 43BE57A6278BA4EB00491291 /* XCRemoteSwiftPackageReference "rust-components-swift" */; + productName = Nimbus; + }; + 43BE57D9278BA4ED00491291 /* Places */ = { + isa = XCSwiftPackageProductDependency; + package = 43BE57D6278BA4ED00491291 /* XCRemoteSwiftPackageReference "rust-components-swift" */; + productName = Places; + }; + 43BE57ED278BA50600491291 /* FxAClient */ = { + isa = XCSwiftPackageProductDependency; + package = 43BE57EE278BA50600491291 /* XCRemoteSwiftPackageReference "rust-components-swift" */; + productName = FxAClient; + }; + 43BE5804278BA52C00491291 /* RustLog */ = { + isa = XCSwiftPackageProductDependency; + package = 433F87D62788F34500693368 /* XCRemoteSwiftPackageReference "rust-components-swift" */; + productName = RustLog; + }; + 43C6A47E27A0679300C79856 /* MappaMundi */ = { + isa = XCSwiftPackageProductDependency; + package = 43C6A47D27A0679300C79856 /* XCRemoteSwiftPackageReference "MappaMundi" */; + productName = MappaMundi; + }; + 43EFA63D2786562600400DF0 /* Places */ = { + isa = XCSwiftPackageProductDependency; + package = 1BE9ECAA271765C800D729BB /* XCRemoteSwiftPackageReference "rust-components-swift" */; + productName = Places; + }; /* End XCSwiftPackageProductDependency section */ }; rootObject = F84B21B61A090F8100AAB793 /* Project object */; diff --git a/Client.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Client.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 9c19f56bf04c..919434a6254f 100644 --- a/Client.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/Client.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/Client.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Client.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 74851e7833fc..0e08c6f8de8c 100644 --- a/Client.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Client.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,14 +1,140 @@ { "object": { "pins": [ + { + "package": "AStar", + "repositoryURL": "https://github.com/Dev1an/A-Star", + "state": { + "branch": null, + "revision": "036256f9a8d1dda44085a2b92fa58199446a8339", + "version": "3.0.0-beta-1" + } + }, + { + "package": "Fuzi", + "repositoryURL": "https://github.com/nbhasin2/Fuzi.git", + "state": { + "branch": "master", + "revision": "04170682baf5c013a41270963c689c87ba0d1374", + "version": null + } + }, + { + "package": "GCDWebServer", + "repositoryURL": "https://github.com/nbhasin2/GCDWebServer.git", + "state": { + "branch": "master", + "revision": "14f9eedb296c5b71fec971d8256ef3bfc20a2245", + "version": null + } + }, + { + "package": "Glean", + "repositoryURL": "https://github.com/mozilla/glean-swift", + "state": { + "branch": null, + "revision": "e8fef341610de380b55cd5a057f9a3adf7cebb44", + "version": "43.0.2" + } + }, { "package": "Adjust", - "repositoryURL": "https://github.com/adjust/ios_sdk", + "repositoryURL": "https://github.com/adjust/ios_sdk.git", "state": { "branch": null, "revision": "43c5bb5eb8f77c72da856637dac5c46087c27848", "version": "4.29.6" } + }, + { + "package": "KIF", + "repositoryURL": "https://github.com/kif-framework/KIF.git", + "state": { + "branch": null, + "revision": "709adbc64f2d8d40d48136cdd56b0a706010904b", + "version": "3.8.6" + } + }, + { + "package": "MappaMundi", + "repositoryURL": "https://github.com/nbhasin2/MappaMundi.git", + "state": { + "branch": "master", + "revision": "7fcd2b7910550227088480490ac19ea66044b3d1", + "version": null + } + }, + { + "package": "MozillaRustComponentsSwift", + "repositoryURL": "https://github.com/skhamis/rust-components-swift", + "state": { + "branch": "update-for-fxios", + "revision": "1f1aba21157b0da730a5f3c7029bfca448cbec5e", + "version": null + } + }, + { + "package": "SDWebImage", + "repositoryURL": "https://github.com/SDWebImage/SDWebImage.git", + "state": { + "branch": null, + "revision": "7ef9a314b12c1a31edb0d09d41fcba93143fe772", + "version": "5.4.0" + } + }, + { + "package": "Sentry", + "repositoryURL": "https://github.com/getsentry/sentry-cocoa.git", + "state": { + "branch": null, + "revision": "bb3c1d852980432907cd314e4fa984fc9a78c9f3", + "version": "4.4.3" + } + }, + { + "package": "SnapKit", + "repositoryURL": "https://github.com/SnapKit/SnapKit.git", + "state": { + "branch": null, + "revision": "d458564516e5676af9c70b4f4b2a9178294f1bc6", + "version": "5.0.1" + } + }, + { + "package": "SwiftProtobuf", + "repositoryURL": "https://github.com/apple/swift-protobuf.git", + "state": { + "branch": null, + "revision": "7e2c5f3cbbeea68e004915e3a8961e20bd11d824", + "version": "1.18.0" + } + }, + { + "package": "SwiftyJSON", + "repositoryURL": "https://github.com/SwiftyJSON/SwiftyJSON", + "state": { + "branch": null, + "revision": "b3dcd7dbd0d488e1a7077cb33b00f2083e382f07", + "version": "5.0.1" + } + }, + { + "package": "Telemetry", + "repositoryURL": "https://github.com/mozilla-mobile/telemetry-ios", + "state": { + "branch": null, + "revision": "68f2d813320c9fda2fb4aee4548c64293500200a", + "version": "2.0.0" + } + }, + { + "package": "XCGLogger", + "repositoryURL": "https://github.com/DaveWoodCom/XCGLogger.git", + "state": { + "branch": null, + "revision": "a9c4667b247928a29bdd41be2ec2c8d304215a54", + "version": "7.0.1" + } } ] }, diff --git a/Client.xcodeproj/xcshareddata/xcschemes/Firefox.xcscheme b/Client.xcodeproj/xcshareddata/xcschemes/Firefox.xcscheme index 0c3fbeb9c3d4..215c3274b5ef 100644 --- a/Client.xcodeproj/xcshareddata/xcschemes/Firefox.xcscheme +++ b/Client.xcodeproj/xcshareddata/xcschemes/Firefox.xcscheme @@ -26,9 +26,18 @@ buildConfiguration = "Firefox" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES" language = "en" - region = "US" - shouldUseLaunchSchemeArgsEnv = "YES"> + region = "US"> + + + + @@ -134,17 +143,6 @@ - - - - - - - - + region = "US"> + + + + @@ -134,17 +143,6 @@ - - - - - - - - Void)? { get set } diff --git a/Client/Frontend/Browser/SavedTab.swift b/Client/Frontend/Browser/SavedTab.swift index ed9d2aa655aa..27b6a55b0f4c 100644 --- a/Client/Frontend/Browser/SavedTab.swift +++ b/Client/Frontend/Browser/SavedTab.swift @@ -5,7 +5,7 @@ import Foundation import WebKit import Shared -import MozillaAppServices +import Places class SavedTab: NSObject, NSCoding { var isSelected: Bool @@ -102,10 +102,10 @@ public class TabGroupData: NSObject, NSCoding { func isEmpty() -> Bool { return tabAssociatedSearchTerm.isEmpty && tabAssociatedSearchUrl.isEmpty && tabAssociatedNextUrl.isEmpty } - - func tabHistoryMetadatakey() -> HistoryMetadataKey { - return HistoryMetadataKey(url: tabAssociatedSearchUrl, searchTerm: tabAssociatedSearchTerm, referrerUrl: tabAssociatedNextUrl) - } + + func tabHistoryMetadatakey() -> HistoryMetadataKey { + return HistoryMetadataKey(url: tabAssociatedSearchUrl, searchTerm: tabAssociatedSearchTerm, referrerUrl: tabAssociatedNextUrl) + } var jsonDictionary: [String: Any] { return [ diff --git a/Client/Frontend/Browser/SearchViewController.swift b/Client/Frontend/Browser/SearchViewController.swift index 5fd0cb531fde..7976c99de82d 100644 --- a/Client/Frontend/Browser/SearchViewController.swift +++ b/Client/Frontend/Browser/SearchViewController.swift @@ -5,7 +5,7 @@ import UIKit import Shared import Storage -import MozillaAppServices +import Nimbus import Telemetry private enum SearchListSection: Int, CaseIterable { diff --git a/Client/Frontend/Browser/Tabs/SearchTermGroupsManager.swift b/Client/Frontend/Browser/Tabs/SearchTermGroupsManager.swift index 21c6cc83155d..469036fa8e5c 100644 --- a/Client/Frontend/Browser/Tabs/SearchTermGroupsManager.swift +++ b/Client/Frontend/Browser/Tabs/SearchTermGroupsManager.swift @@ -5,7 +5,7 @@ import Foundation import Shared import Storage -import MozillaAppServices +import Places struct ASGroup { var searchTerm: String diff --git a/Client/Frontend/Home/FirefoxHomeRecentlySavedViewModel.swift b/Client/Frontend/Home/FirefoxHomeRecentlySavedViewModel.swift index 510ad61d9382..5be4d2f96afc 100644 --- a/Client/Frontend/Home/FirefoxHomeRecentlySavedViewModel.swift +++ b/Client/Frontend/Home/FirefoxHomeRecentlySavedViewModel.swift @@ -11,7 +11,7 @@ protocol RecentlySavedItem { } extension ReadingListItem: RecentlySavedItem { } -extension BookmarkItem: RecentlySavedItem { } +extension BookmarkItemData: RecentlySavedItem { } class FirefoxHomeRecentlySavedViewModel { @@ -22,7 +22,7 @@ class FirefoxHomeRecentlySavedViewModel { private let profile: Profile private lazy var siteImageHelper = SiteImageHelper(profile: profile) private var readingListItems = [ReadingListItem]() - private var recentBookmarks = [BookmarkItem]() + private var recentBookmarks = [BookmarkItemData]() private let dataQueue = DispatchQueue(label: "com.moz.recentlySaved.queue") init(isZeroSearch: Bool, profile: Profile) { @@ -78,8 +78,8 @@ class FirefoxHomeRecentlySavedViewModel { // MARK: - Private - private func updateRecentBookmarks(bookmarks: [BookmarkItem]) { - recentBookmarks = RecentItemsHelper.filterStaleItems(recentItems: bookmarks, since: Date()) as! [BookmarkItem] + private func updateRecentBookmarks(bookmarks: [BookmarkItemData]) { + recentBookmarks = RecentItemsHelper.filterStaleItems(recentItems: bookmarks, since: Date()) as! [BookmarkItemData] // Send telemetry if bookmarks aren't empty if !recentBookmarks.isEmpty { diff --git a/Client/Frontend/Home/FirefoxHomeViewController.swift b/Client/Frontend/Home/FirefoxHomeViewController.swift index bb23481f4e25..70431a131de0 100644 --- a/Client/Frontend/Home/FirefoxHomeViewController.swift +++ b/Client/Frontend/Home/FirefoxHomeViewController.swift @@ -8,6 +8,7 @@ import Storage import SDWebImage import XCGLogger import SyncTelemetry +import Nimbus private let log = Logger.browserLogger diff --git a/Client/Frontend/Home/FxHomeRecentlySavedCollectionCell.swift b/Client/Frontend/Home/FxHomeRecentlySavedCollectionCell.swift index 1a51119abf07..7a79e384b048 100644 --- a/Client/Frontend/Home/FxHomeRecentlySavedCollectionCell.swift +++ b/Client/Frontend/Home/FxHomeRecentlySavedCollectionCell.swift @@ -109,7 +109,7 @@ extension FxHomeRecentlySavedCollectionCell: UICollectionViewDataSource { extension FxHomeRecentlySavedCollectionCell: UICollectionViewDelegate { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - if let item = viewModel.recentItems[safe: indexPath.row] as? BookmarkItem { + if let item = viewModel.recentItems[safe: indexPath.row] as? BookmarkItemData { guard let url = URIFixup.getURL(item.url) else { return } homePanelDelegate?.homePanel(didSelectURL: url, visitType: .bookmark, isGoogleTopSite: false) diff --git a/Client/Frontend/Library/BookmarkDetailPanel.swift b/Client/Frontend/Library/BookmarkDetailPanel.swift index bda98c06eb50..4055ef165ea7 100644 --- a/Client/Frontend/Library/BookmarkDetailPanel.swift +++ b/Client/Frontend/Library/BookmarkDetailPanel.swift @@ -39,7 +39,7 @@ class BookmarkDetailPanel: SiteTableViewController { let bookmarkNodeType: BookmarkNodeType // Editable field(s) that all BookmarkNodes have. - var parentBookmarkFolder: BookmarkFolder + var parentBookmarkFolder: BookmarkFolderData // Sort position for the BookmarkItem. If editing, this // value remains the same as it was prior to the edit @@ -64,7 +64,7 @@ class BookmarkDetailPanel: SiteTableViewController { // Array of tuples containing all of the BookmarkFolders // along with their indentation depth. - var bookmarkFolders: [(folder: BookmarkFolder, indent: Int)] = [] + var bookmarkFolders: [(folder: BookmarkFolderData, indent: Int)] = [] private var maxIndentationLevel: Int { return Int(floor((view.frame.width - BookmarkDetailPanelUX.MinIndentedContentWidth) / BookmarkDetailPanelUX.IndentationWidth)) @@ -84,25 +84,25 @@ class BookmarkDetailPanel: SiteTableViewController { }() // MARK: - Initializers - convenience init(profile: Profile, bookmarkNode: BookmarkNode, parentBookmarkFolder: BookmarkFolder, presentedFromToast fromToast: Bool = false) { + convenience init(profile: Profile, bookmarkNode: BookmarkNodeData, parentBookmarkFolder: BookmarkFolderData, presentedFromToast fromToast: Bool = false) { self.init(profile: profile, bookmarkNodeGUID: bookmarkNode.guid, bookmarkNodeType: bookmarkNode.type, parentBookmarkFolder: parentBookmarkFolder) self.isPresentedFromToast = fromToast self.bookmarkItemPosition = bookmarkNode.position - if let bookmarkItem = bookmarkNode as? BookmarkItem { + if let bookmarkItem = bookmarkNode as? BookmarkItemData { self.bookmarkItemOrFolderTitle = bookmarkItem.title self.bookmarkItemURL = bookmarkItem.url self.title = .BookmarksEditBookmark - } else if let bookmarkFolder = bookmarkNode as? BookmarkFolder { + } else if let bookmarkFolder = bookmarkNode as? BookmarkFolderData { self.bookmarkItemOrFolderTitle = bookmarkFolder.title self.title = .BookmarksEditFolder } } - convenience init(profile: Profile, withNewBookmarkNodeType bookmarkNodeType: BookmarkNodeType, parentBookmarkFolder: BookmarkFolder) { + convenience init(profile: Profile, withNewBookmarkNodeType bookmarkNodeType: BookmarkNodeType, parentBookmarkFolder: BookmarkFolderData) { self.init(profile: profile, bookmarkNodeGUID: nil, bookmarkNodeType: bookmarkNodeType, parentBookmarkFolder: parentBookmarkFolder) if bookmarkNodeType == .bookmark { @@ -117,7 +117,7 @@ class BookmarkDetailPanel: SiteTableViewController { } } - private init(profile: Profile, bookmarkNodeGUID: GUID?, bookmarkNodeType: BookmarkNodeType, parentBookmarkFolder: BookmarkFolder) { + private init(profile: Profile, bookmarkNodeGUID: GUID?, bookmarkNodeType: BookmarkNodeType, parentBookmarkFolder: BookmarkFolderData) { self.bookmarkNodeGUID = bookmarkNodeGUID self.bookmarkNodeType = bookmarkNodeType self.parentBookmarkFolder = parentBookmarkFolder @@ -181,29 +181,29 @@ class BookmarkDetailPanel: SiteTableViewController { // Can be called while app backgrounded and the db closed, don't try to reload the data source in this case if profile.isShutdown { return } profile.places.getBookmarksTree(rootGUID: BookmarkRoots.RootGUID, recursive: true).uponQueue(.main) { result in - guard let rootFolder = result.successValue as? BookmarkFolder else { + guard let rootFolder = result.successValue as? BookmarkFolderData else { // TODO: Handle error case? self.bookmarkFolders = [] self.tableView.reloadData() return } - var bookmarkFolders: [(folder: BookmarkFolder, indent: Int)] = [] + var bookmarkFolders: [(folder: BookmarkFolderData, indent: Int)] = [] - func addFolder(_ folder: BookmarkFolder, indent: Int = 0) { + func addFolder(_ folder: BookmarkFolderData, indent: Int = 0) { // Do not append itself and the top "root" folder to this list as // bookmarks cannot be stored directly within it. if folder.guid != BookmarkRoots.RootGUID && folder.guid != self.bookmarkNodeGUID { bookmarkFolders.append((folder, indent)) } - var folderChildren: [BookmarkNode]? = nil + var folderChildren: [BookmarkNodeData]? = nil // Suitable to be appended if folder.guid != self.bookmarkNodeGUID { folderChildren = folder.children } - for case let childFolder as BookmarkFolder in folderChildren ?? [] { + for case let childFolder as BookmarkFolderData in folderChildren ?? [] { // Any "root" folders (i.e. "Mobile Bookmarks") should // have an indentation of 0. if childFolder.isRoot { diff --git a/Client/Frontend/Library/BookmarksPanel.swift b/Client/Frontend/Library/BookmarksPanel.swift index 2103bbe5bd76..653b542b31a2 100644 --- a/Client/Frontend/Library/BookmarksPanel.swift +++ b/Client/Frontend/Library/BookmarksPanel.swift @@ -43,9 +43,9 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { let bookmarkFolderGUID: GUID - var bookmarkFolder: BookmarkFolder? - var bookmarkNodes = [BookmarkNode]() - var recentBookmarks = [BookmarkNode]() + var bookmarkFolder: BookmarkFolderData? + var bookmarkNodes = [BookmarkNodeData]() + var recentBookmarks = [BookmarkNodeData]() fileprivate var flashLastRowOnNextReload = false @@ -109,7 +109,7 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { self.profile.places.createSeparator(parentGUID: self.bookmarkFolderGUID, position: UInt32(centerVisibleRow)) >>== { guid in self.profile.places.getBookmark(guid: guid).uponQueue(.main) { result in - guard let bookmarkNode = result.successValue, let bookmarkSeparator = bookmarkNode as? BookmarkSeparator else { + guard let bookmarkNode = result.successValue, let bookmarkSeparator = bookmarkNode as? BookmarkSeparatorData else { return } @@ -154,7 +154,7 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { if profile.isShutdown { return } profile.places.getBookmarksTree(rootGUID: bookmarkFolderGUID, recursive: false).uponQueue(.main) { result in - guard let folder = result.successValue as? BookmarkFolder else { + guard let folder = result.successValue as? BookmarkFolderData else { // TODO: Handle error case? self.bookmarkFolder = nil self.bookmarkNodes = [] @@ -231,7 +231,7 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { // If this node is a folder and it is not empty, we need // to prompt the user before deleting. - if let bookmarkFolder = bookmarkNode as? BookmarkFolder, + if let bookmarkFolder = bookmarkNode as? BookmarkFolderData, !bookmarkFolder.childGUIDs.isEmpty { let alertController = UIAlertController(title: .BookmarksDeleteFolderWarningTitle, message: .BookmarksDeleteFolderWarningDescription, preferredStyle: .alert) alertController.addAction(UIAlertAction(title: .BookmarksDeleteFolderCancelButtonLabel, style: .cancel)) @@ -297,7 +297,7 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.deselectRow(at: indexPath, animated: false) - let node: BookmarkNode? + let node: BookmarkNodeData? if indexPath.section == BookmarksSection.recent.rawValue { node = recentBookmarks[safe: indexPath.row] @@ -311,7 +311,7 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { guard !tableView.isEditing else { TelemetryWrapper.recordEvent(category: .action, method: .change, object: .bookmark, value: .bookmarksPanel) - if let bookmarkFolder = self.bookmarkFolder, !(bookmarkNode is BookmarkSeparator) { + if let bookmarkFolder = self.bookmarkFolder, !(bookmarkNode is BookmarkSeparatorData) { let detailController = BookmarkDetailPanel(profile: profile, bookmarkNode: bookmarkNode, parentBookmarkFolder: bookmarkFolder) navigationController?.pushViewController(detailController, animated: true) } @@ -319,7 +319,7 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { } switch bookmarkNode { - case let bookmarkFolder as BookmarkFolder: + case let bookmarkFolder as BookmarkFolderData: let nextController = BookmarksPanel(profile: profile, bookmarkFolderGUID: bookmarkFolder.guid) if bookmarkFolder.isRoot, let localizedString = LocalizedRootBookmarkFolderStrings[bookmarkFolder.guid] { nextController.title = localizedString @@ -328,7 +328,7 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { } nextController.libraryPanelDelegate = libraryPanelDelegate navigationController?.pushViewController(nextController, animated: true) - case let bookmarkItem as BookmarkItem: + case let bookmarkItem as BookmarkItemData: libraryPanelDelegate?.libraryPanel(didSelectURLString: bookmarkItem.url, visitType: .bookmark) TelemetryWrapper.recordEvent(category: .action, method: .open, object: .bookmark, value: .bookmarksPanel) default: @@ -359,7 +359,7 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { let cell = tableView.dequeueReusableCell(withIdentifier: BookmarkNodeCellIdentifier, for: indexPath) as! OneLineTableViewCell switch bookmarkNode { - case let bookmarkFolder as BookmarkFolder: + case let bookmarkFolder as BookmarkFolderData: if bookmarkFolder.isRoot, let localizedString = LocalizedRootBookmarkFolderStrings[bookmarkFolder.guid] { cell.titleLabel.text = localizedString } else { @@ -371,7 +371,7 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { cell.accessoryType = .disclosureIndicator cell.editingAccessoryType = .disclosureIndicator return cell - case let bookmarkItem as BookmarkItem: + case let bookmarkItem as BookmarkItemData: if bookmarkItem.title.isEmpty { cell.titleLabel.text = bookmarkItem.url } else { @@ -394,7 +394,7 @@ class BookmarksPanel: SiteTableViewController, LibraryPanel { cell.accessoryType = .none cell.editingAccessoryType = .disclosureIndicator return cell - case is BookmarkSeparator: + case is BookmarkSeparatorData: let cell = tableView.dequeueReusableCell(withIdentifier: BookmarkSeparatorCellIdentifier, for: indexPath) return cell default: @@ -483,7 +483,7 @@ extension BookmarksPanel: LibraryPanelContextMenu { func getSiteDetails(for indexPath: IndexPath) -> Site? { guard let bookmarkNode = indexPath.section == BookmarksSection.recent.rawValue ? recentBookmarks[safe: indexPath.row] : bookmarkNodes[safe: indexPath.row], - let bookmarkItem = bookmarkNode as? BookmarkItem else { + let bookmarkItem = bookmarkNode as? BookmarkItemData else { return nil } diff --git a/Client/Frontend/Login Management/LoginListViewController.swift b/Client/Frontend/Login Management/LoginListViewController.swift index c93b07eafe2d..25955f7ae24b 100644 --- a/Client/Frontend/Login Management/LoginListViewController.swift +++ b/Client/Frontend/Login Management/LoginListViewController.swift @@ -5,7 +5,6 @@ import UIKit import Storage import Shared -import SwiftKeychainWrapper private extension UITableView { var allLoginIndexPaths: [IndexPath] { diff --git a/Client/Frontend/Settings/AppSettingsOptions.swift b/Client/Frontend/Settings/AppSettingsOptions.swift index 682f08deefb7..237a3070ff31 100644 --- a/Client/Frontend/Settings/AppSettingsOptions.swift +++ b/Client/Frontend/Settings/AppSettingsOptions.swift @@ -5,9 +5,8 @@ import Foundation import Shared import Account -import SwiftKeychainWrapper import LocalAuthentication -import MozillaAppServices +import Glean // This file contains all of the settings available in the main settings screen of the app. diff --git a/Client/Frontend/Settings/LoginDetailViewController.swift b/Client/Frontend/Settings/LoginDetailViewController.swift index e878a999be6a..d5489db942d1 100644 --- a/Client/Frontend/Settings/LoginDetailViewController.swift +++ b/Client/Frontend/Settings/LoginDetailViewController.swift @@ -5,7 +5,6 @@ import Foundation import Storage import Shared -import SwiftKeychainWrapper enum InfoItem: Int { case breachItem = 0 diff --git a/Client/Frontend/Settings/SyncContentSettingsViewController.swift b/Client/Frontend/Settings/SyncContentSettingsViewController.swift index 1de97ceb2b92..245523764677 100644 --- a/Client/Frontend/Settings/SyncContentSettingsViewController.swift +++ b/Client/Frontend/Settings/SyncContentSettingsViewController.swift @@ -6,7 +6,6 @@ import Foundation import Shared import Sync import Account -import MozillaAppServices class ManageFxAccountSetting: Setting { let profile: Profile diff --git a/Client/Frontend/Share/ShareExtensionHelper.swift b/Client/Frontend/Share/ShareExtensionHelper.swift index cc86a9df3e3d..c0e8c93cbd2c 100644 --- a/Client/Frontend/Share/ShareExtensionHelper.swift +++ b/Client/Frontend/Share/ShareExtensionHelper.swift @@ -4,7 +4,7 @@ import Foundation import Shared -import OnePasswordExtension +import MobileCoreServices private let log = Logger.browserLogger @@ -58,7 +58,9 @@ class ShareExtensionHelper: NSObject { // This needs to be ready by the time the share menu has been displayed and // activityViewController(activityViewController:, activityType:) is called, // which is after the user taps the button. So a million cycles away. - findLoginExtensionItem() + guard (selectedTab?.webView) != nil else { + return activityViewController + } activityViewController.completionWithItemsHandler = { activityType, completed, returnedItems, activityError in if !completed { @@ -71,14 +73,9 @@ class ShareExtensionHelper: NSObject { UIPasteboard.general.urls = [url] } - if self.isPasswordManager(activityType: activityType) { - if let logins = returnedItems { - self.fillPasswords(logins as [AnyObject]) - } - } - completionHandler(completed, activityType) } + return activityViewController } } @@ -129,34 +126,3 @@ extension ShareExtensionHelper: UIActivityItemSource { return activityType.lowercased().range(of: "remoteopeninapplication-bycopy") != nil } } - -private extension ShareExtensionHelper { - func findLoginExtensionItem() { - guard let selectedWebView = selectedTab?.webView else { - return - } - - // Add 1Password to share sheet - OnePasswordExtension.shared().createExtensionItem(forWebView: selectedWebView, completion: {(extensionItem, error) -> Void in - if extensionItem == nil { - log.error("Failed to create the password manager extension item: \(error.debugDescription).") - return - } - - // Set the 1Password extension item property - self.onePasswordExtensionItem = extensionItem - }) - } - - func fillPasswords(_ returnedItems: [AnyObject]) { - guard let selectedWebView = selectedTab?.webView else { - return - } - - OnePasswordExtension.shared().fillReturnedItems(returnedItems, intoWebView: selectedWebView, completion: { (success, returnedItemsError) -> Void in - if !success { - log.error("Failed to fill item into webview: \(returnedItemsError ??? "nil").") - } - }) - } -} diff --git a/Client/RecentItemsHelper.swift b/Client/RecentItemsHelper.swift index 7506c425fb59..bac3f804d939 100644 --- a/Client/RecentItemsHelper.swift +++ b/Client/RecentItemsHelper.swift @@ -19,7 +19,7 @@ class RecentItemsHelper { var cutoff = since let calendar = Calendar.current - if let bookmarkItem = recentItems as? [BookmarkItem] { + if let bookmarkItem = recentItems as? [BookmarkItemData] { return bookmarkItem.filter { item in let dateAdded = Date.fromTimestamp(Timestamp(item.dateAdded)) return calendar.numberOfDaysBetween(dateAdded, and: cutoff) <= 10 diff --git a/Client/Telemetry/AdsTelemetryHelper.swift b/Client/Telemetry/AdsTelemetryHelper.swift index 0d6247a491e2..5c73e910e58d 100644 --- a/Client/Telemetry/AdsTelemetryHelper.swift +++ b/Client/Telemetry/AdsTelemetryHelper.swift @@ -5,7 +5,7 @@ import Foundation import Shared import WebKit -import MozillaAppServices +import Glean public enum BasicSearchProvider: String { case google diff --git a/Client/Telemetry/SearchTelemetry.swift b/Client/Telemetry/SearchTelemetry.swift index 5d0614b08370..419c2b0b2f27 100644 --- a/Client/Telemetry/SearchTelemetry.swift +++ b/Client/Telemetry/SearchTelemetry.swift @@ -3,8 +3,8 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0 import Foundation -import MozillaAppServices import WebKit +import Glean // Search Partner Codes // https://docs.google.com/spreadsheets/d/1HMm9UXjfJv-uHhGU1pJlbP4ILkdpSD9w_Fd-3yOd8oY/ diff --git a/Client/Telemetry/TelemetryWrapper.swift b/Client/Telemetry/TelemetryWrapper.swift index f3fe04a5476a..8f7b57c53b3d 100644 --- a/Client/Telemetry/TelemetryWrapper.swift +++ b/Client/Telemetry/TelemetryWrapper.swift @@ -2,7 +2,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0 -import MozillaAppServices +import Glean import Shared import Telemetry import Account @@ -140,7 +140,7 @@ class TelemetryWrapper { } // Initialize Glean telemetry - glean.initialize(uploadEnabled: sendUsageData, configuration: Configuration(channel: AppConstants.BuildChannel.rawValue)) + glean.initialize(uploadEnabled: sendUsageData, configuration: Configuration(channel: AppConstants.BuildChannel.rawValue), buildInfo: GleanMetrics.GleanBuild.info) // Save the profile so we can record settings from it when the notification below fires. self.profile = profile diff --git a/ClientTests/LoginsListViewModelTests.swift b/ClientTests/LoginsListViewModelTests.swift index 5891c05aef9f..4c35ebd30c70 100644 --- a/ClientTests/LoginsListViewModelTests.swift +++ b/ClientTests/LoginsListViewModelTests.swift @@ -6,7 +6,7 @@ import Storage import Shared import XCTest -import SwiftKeychainWrapper + class LoginsListViewModelTests: XCTestCase { diff --git a/ClientTests/ProfileTest.swift b/ClientTests/ProfileTest.swift index 7f80e6dc82bd..e580d6c494a2 100644 --- a/ClientTests/ProfileTest.swift +++ b/ClientTests/ProfileTest.swift @@ -7,7 +7,6 @@ import Foundation import Shared import Storage -import SwiftKeychainWrapper import XCTest diff --git a/ClientTests/TelemetryWrapperTests.swift b/ClientTests/TelemetryWrapperTests.swift index 7dbe1d687848..f9c78f2e592f 100644 --- a/ClientTests/TelemetryWrapperTests.swift +++ b/ClientTests/TelemetryWrapperTests.swift @@ -4,7 +4,7 @@ @testable import Client -import MozillaAppServices +import Glean import XCTest class TelemetryWrapperTests: XCTestCase { diff --git a/CredentialProvider/CredentialProviderPresenter.swift b/CredentialProvider/CredentialProviderPresenter.swift index c9aa4c7a08dd..7e7769d243ec 100644 --- a/CredentialProvider/CredentialProviderPresenter.swift +++ b/CredentialProvider/CredentialProviderPresenter.swift @@ -4,7 +4,6 @@ import UIKit import AuthenticationServices -import SwiftKeychainWrapper let CredentialProviderAuthenticationDelay = 0.25 diff --git a/CredentialProvider/Info.plist b/CredentialProvider/Info.plist index 610af8cb2be7..7cdec8e2f496 100644 --- a/CredentialProvider/Info.plist +++ b/CredentialProvider/Info.plist @@ -2,8 +2,6 @@ - MozDevelopmentTeam - $(DEVELOPMENT_TEAM) CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName diff --git a/Fuzi-Info.plist b/Fuzi-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/Fuzi-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Info.plist b/Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Providers/Profile.swift b/Providers/Profile.swift index 2ee6e772fa52..28b61d73313d 100644 --- a/Providers/Profile.swift +++ b/Providers/Profile.swift @@ -12,9 +12,12 @@ import Shared import Storage import Sync import XCGLogger -import SwiftKeychainWrapper import SyncTelemetry import AuthenticationServices +import RustLog +import FxAClient +import Sync15 +@_exported import Logins // Import these dependencies ONLY for the main `Client` application target. #if MOZ_TARGET_CLIENT @@ -234,7 +237,7 @@ extension Profile { open class BrowserProfile: Profile { fileprivate let name: String - fileprivate let keychain: KeychainWrapper + fileprivate let keychain: MZKeychainWrapper var isShutdown = false internal let files: FileAccessor @@ -261,7 +264,7 @@ open class BrowserProfile: Profile { log.debug("Initing profile \(localName) on thread \(Thread.current).") self.name = localName self.files = ProfileFileAccessor(localName: localName) - self.keychain = KeychainWrapper.sharedAppContainerKeychain + self.keychain = MZKeychainWrapper.sharedClientAppContainerKeychain self.syncDelegate = syncDelegate if clear { @@ -285,7 +288,7 @@ open class BrowserProfile: Profile { if isNewProfile { log.info("New profile. Removing old Keychain/Prefs data.") - KeychainWrapper.wipeKeychain() + MZKeychainWrapper.wipeKeychain() prefs.clearAll() } @@ -609,11 +612,11 @@ open class BrowserProfile: Profile { // Restore the keys that are still needed if let sqlCipherKey = sqlCipherKey { - keychain.set(sqlCipherKey, forKey: rustLoginsKeys.loginsUnlockKeychainKey, withAccessibility: .afterFirstUnlock) + keychain.set(sqlCipherKey, forKey: rustLoginsKeys.loginsUnlockKeychainKey, withAccessibility: MZKeychainItemAccessibility.afterFirstUnlock) } if let sqlCipherSalt = sqlCipherSalt { - keychain.set(sqlCipherSalt, forKey: rustLoginsKeys.loginsSaltKeychainKey, withAccessibility: .afterFirstUnlock) + keychain.set(sqlCipherSalt, forKey: rustLoginsKeys.loginsSaltKeychainKey, withAccessibility: MZKeychainItemAccessibility.afterFirstUnlock) } if let perFieldKey = perFieldKey { diff --git a/README.md b/README.md index 7be77aa02cf0..3bcf0bdd7505 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ Download on the [App Store](https://itunes.apple.com/app/firefox-web-browser/id9 This branch (main) ----------- -This branch works with [Xcode 13.1](https://developer.apple.com/download/all/?q=xcode), Swift 5.5.1 and supports iOS 13 and above. +This branch works only with [Xcode 13.2.1](https://developer.apple.com/download/all/?q=xcode), Swift 5.5.2 and supports iOS 13 and above. -*Please note:* due to dependency issues, development of Firefox-iOS is currently only supported on Intel based Macs, and not Apple Silicon based Macs. +*Please note:* Both Intel and M1 macs are supported 🎉 and we use swift package manager. Please make sure you aim your pull requests in the right direction. @@ -23,10 +23,9 @@ Building the code ----------------- 1. Install the latest [Xcode developer tools](https://developer.apple.com/xcode/downloads/) from Apple. -1. Install Carthage, Node, and a Python 3 virtualenv for localization scripts: +1. Install, Node, and a Python 3 virtualenv for localization scripts: ```shell brew update - brew install carthage brew install node pip3 install virtualenv ``` diff --git a/RustFxA/FxAWebViewModel.swift b/RustFxA/FxAWebViewModel.swift index 098404b64994..bd627c6d1e89 100644 --- a/RustFxA/FxAWebViewModel.swift +++ b/RustFxA/FxAWebViewModel.swift @@ -5,9 +5,8 @@ import WebKit import Foundation import Account -import MozillaAppServices +import FxAClient import Shared -import SwiftKeychainWrapper enum FxAPageType { case emailLoginFlow @@ -234,7 +233,7 @@ extension FxAWebViewModel { self.profile.syncManager.onAddedAccount() // ask for push notification - KeychainWrapper.sharedAppContainerKeychain.removeObject(forKey: KeychainKey.apnsToken, withAccessibility: .afterFirstUnlock) + MZKeychainWrapper.sharedClientAppContainerKeychain.removeObject(forKey: KeychainKey.apnsToken, withAccessibility: MZKeychainItemAccessibility.afterFirstUnlock) let center = UNUserNotificationCenter.current() center.requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in guard error == nil else { diff --git a/RustFxA/PushNotificationSetup.swift b/RustFxA/PushNotificationSetup.swift index 35fd7a221a7c..0cf483d7118a 100644 --- a/RustFxA/PushNotificationSetup.swift +++ b/RustFxA/PushNotificationSetup.swift @@ -3,8 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import Shared -import SwiftKeychainWrapper -import MozillaAppServices +import FxAClient open class PushNotificationSetup { private var pushClient: PushClient? @@ -13,7 +12,7 @@ open class PushNotificationSetup { public func didRegister(withDeviceToken deviceToken: Data) { // If we've already registered this push subscription, we don't need to do it again. let apnsToken = deviceToken.hexEncodedString - let keychain = KeychainWrapper.sharedAppContainerKeychain + let keychain = MZKeychainWrapper.sharedClientAppContainerKeychain guard keychain.string(forKey: KeychainKey.apnsToken, withAccessibility: .afterFirstUnlock) != apnsToken else { return } diff --git a/RustFxA/RustFirefoxAccounts.swift b/RustFxA/RustFirefoxAccounts.swift index b19d72f9a8dd..a42d4c0af1aa 100644 --- a/RustFxA/RustFirefoxAccounts.swift +++ b/RustFxA/RustFirefoxAccounts.swift @@ -2,9 +2,10 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +import UIKit import Shared -import MozillaAppServices -import SwiftKeychainWrapper +import FxAClient +import Viaduct let PendingAccountDisconnectedKey = "PendingAccountDisconnect" @@ -165,7 +166,7 @@ open class RustFirefoxAccounts { NotificationCenter.default.addObserver(forName: .accountAuthenticated, object: nil, queue: .main) { [weak self] notification in // Handle account migration completed successfully. Need to clear the old stored apnsToken and re-register push. if let type = notification.userInfo?["authType"] as? FxaAuthType, case .migrated = type { - KeychainWrapper.sharedAppContainerKeychain.removeObject(forKey: KeychainKey.apnsToken, withAccessibility: .afterFirstUnlock) + MZKeychainWrapper.sharedClientAppContainerKeychain.removeObject(forKey: KeychainKey.apnsToken, withAccessibility: .afterFirstUnlock) NotificationCenter.default.post(name: .RegisterForPushNotifications, object: nil) } @@ -192,7 +193,7 @@ open class RustFirefoxAccounts { // Keychain forKey("profile.account"), return dictionary, from there // forKey("account.state."), guid is dictionary["stateKeyLabel"] // that returns JSON string. - let keychain = KeychainWrapper.sharedAppContainerKeychain + let keychain = MZKeychainWrapper.sharedClientAppContainerKeychain let key = "profile.account" keychain.ensureObjectItemAccessibility(.afterFirstUnlock, forKey: key) @@ -286,7 +287,7 @@ open class RustFirefoxAccounts { prefs?.removeObjectForKey(PendingAccountDisconnectedKey) cachedUserProfile = nil pushNotifications.unregister() - KeychainWrapper.sharedAppContainerKeychain.removeObject(forKey: KeychainKey.apnsToken, withAccessibility: .afterFirstUnlock) + MZKeychainWrapper.sharedClientAppContainerKeychain.removeObject(forKey: KeychainKey.apnsToken, withAccessibility: .afterFirstUnlock) } public func hasAccount() -> Bool { @@ -310,7 +311,7 @@ public struct FxAUserProfile: Codable, Equatable { public let avatarUrl: String? public let displayName: String? - init(profile: MozillaAppServices.Profile) { + init(profile: FxAClient.Profile) { uid = profile.uid email = profile.email avatarUrl = profile.avatar diff --git a/RustFxAClient-Info.plist b/RustFxAClient-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/RustFxAClient-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/RustLogins-Info.plist b/RustLogins-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/RustLogins-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/RustNimbus-Info.plist b/RustNimbus-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/RustNimbus-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/RustPlaces-Info.plist b/RustPlaces-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/RustPlaces-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/RustRustLog-Info.plist b/RustRustLog-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/RustRustLog-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/RustViaDuct-Info.plist b/RustViaDuct-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/RustViaDuct-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/SDWebImage-Info.plist b/SDWebImage-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/SDWebImage-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Sentry-Info.plist b/Sentry-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/Sentry-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Shared/Extensions/KeychainWrapperExtensions.swift b/Shared/Extensions/KeychainWrapperExtensions.swift index 7fd611167628..5236d94ce150 100644 --- a/Shared/Extensions/KeychainWrapperExtensions.swift +++ b/Shared/Extensions/KeychainWrapperExtensions.swift @@ -4,21 +4,21 @@ import Foundation import XCGLogger -import SwiftKeychainWrapper +import FxAClient private let log = Logger.keychainLogger -public extension KeychainWrapper { - static var sharedAppContainerKeychain: KeychainWrapper { +public extension MZKeychainWrapper { + static var sharedClientAppContainerKeychain: MZKeychainWrapper { let baseBundleIdentifier = AppInfo.baseBundleIdentifier let accessGroupPrefix = Bundle.main.object(forInfoDictionaryKey: "MozDevelopmentTeam") as! String let accessGroupIdentifier = AppInfo.keychainAccessGroupWithPrefix(accessGroupPrefix) - return KeychainWrapper(serviceName: baseBundleIdentifier, accessGroup: accessGroupIdentifier) + return MZKeychainWrapper(serviceName: baseBundleIdentifier, accessGroup: accessGroupIdentifier) } } -public extension KeychainWrapper { - func ensureStringItemAccessibility(_ accessibility: SwiftKeychainWrapper.KeychainItemAccessibility, forKey key: String) { +public extension MZKeychainWrapper { + func ensureClientStringItemAccessibility(_ accessibility: MZKeychainItemAccessibility, forKey key: String) { if self.hasValue(forKey: key) { if self.accessibilityOfKey(key) != .afterFirstUnlock { log.debug("updating item \(key) with \(accessibility)") @@ -39,7 +39,7 @@ public extension KeychainWrapper { } } - func ensureObjectItemAccessibility(_ accessibility: SwiftKeychainWrapper.KeychainItemAccessibility, forKey key: String) { + func ensureObjectItemAccessibility(_ accessibility: MZKeychainItemAccessibility, forKey key: String) { if self.hasValue(forKey: key) { if self.accessibilityOfKey(key) != .afterFirstUnlock { log.debug("updating item \(key) with \(accessibility)") diff --git a/Shared/KeychainCache.swift b/Shared/KeychainCache.swift index 4d649b547f28..05feff4fbc83 100644 --- a/Shared/KeychainCache.swift +++ b/Shared/KeychainCache.swift @@ -4,8 +4,8 @@ import Foundation import XCGLogger -import SwiftKeychainWrapper import SwiftyJSON +import FxAClient private let log = Logger.keychainLogger @@ -32,8 +32,8 @@ open class KeychainCache { open class func fromBranch(_ branch: String, withLabel label: String?, withDefault defaultValue: T? = nil, factory: (JSON) -> T?) -> KeychainCache { if let l = label { let key = "\(branch).\(l)" - KeychainWrapper.sharedAppContainerKeychain.ensureStringItemAccessibility(.afterFirstUnlock, forKey: key) - if let s = KeychainWrapper.sharedAppContainerKeychain.string(forKey: key) { + MZKeychainWrapper.sharedClientAppContainerKeychain.ensureStringItemAccessibility(.afterFirstUnlock, forKey: key) + if let s = MZKeychainWrapper.sharedClientAppContainerKeychain.string(forKey: key) { if let t = factory(JSON(parseJSON: s)) { log.info("Read \(branch) from Keychain with label \(branch).\(l).") return KeychainCache(branch: branch, label: l, value: t) @@ -57,9 +57,9 @@ open class KeychainCache { // TODO: PII logging. if let value = value, let jsonString = value.asJSON().stringify() { - KeychainWrapper.sharedAppContainerKeychain.set(jsonString, forKey: "\(branch).\(label)", withAccessibility: .afterFirstUnlock) + MZKeychainWrapper.sharedClientAppContainerKeychain.set(jsonString, forKey: "\(branch).\(label)", withAccessibility: .afterFirstUnlock) } else { - KeychainWrapper.sharedAppContainerKeychain.removeObject(forKey: "\(branch).\(label)") + MZKeychainWrapper.sharedClientAppContainerKeychain.removeObject(forKey: "\(branch).\(label)") } } } diff --git a/Shared/KeychainStore.swift b/Shared/KeychainStore.swift index 9643955a6f67..1bf14da41254 100644 --- a/Shared/KeychainStore.swift +++ b/Shared/KeychainStore.swift @@ -4,21 +4,21 @@ import Foundation import XCGLogger -import SwiftKeychainWrapper import SwiftyJSON +import FxAClient private let log = Logger.keychainLogger public class KeychainStore { public static let shared = KeychainStore() - private let keychainWrapper: KeychainWrapper + private let keychainWrapper: MZKeychainWrapper private init() { - self.keychainWrapper = KeychainWrapper.sharedAppContainerKeychain + self.keychainWrapper = MZKeychainWrapper.sharedClientAppContainerKeychain } - public func setDictionary(_ value: [String: Any]?, forKey key: String, withAccessibility accessibility: SwiftKeychainWrapper.KeychainItemAccessibility = .afterFirstUnlock) { + public func setDictionary(_ value: [String: Any]?, forKey key: String, withAccessibility accessibility: MZKeychainItemAccessibility = .afterFirstUnlock) { guard let value = value else { setString(nil, forKey: key, withAccessibility: accessibility) return @@ -29,7 +29,7 @@ public class KeychainStore { setString(stringValue, forKey: key, withAccessibility: accessibility) } - public func setString(_ value: String?, forKey key: String, withAccessibility accessibility: SwiftKeychainWrapper.KeychainItemAccessibility = .afterFirstUnlock) { + public func setString(_ value: String?, forKey key: String, withAccessibility accessibility: MZKeychainItemAccessibility = .afterFirstUnlock) { guard let value = value else { keychainWrapper.removeObject(forKey: key, withAccessibility: accessibility) return @@ -38,7 +38,7 @@ public class KeychainStore { keychainWrapper.set(value, forKey: key, withAccessibility: accessibility) } - public func dictionary(forKey key: String, withAccessibility accessibility: SwiftKeychainWrapper.KeychainItemAccessibility = .afterFirstUnlock) -> [String: Any]? { + public func dictionary(forKey key: String, withAccessibility accessibility: MZKeychainItemAccessibility = .afterFirstUnlock) -> [String: Any]? { guard let stringValue = string(forKey: key, withAccessibility: accessibility) else { return nil } @@ -49,7 +49,7 @@ public class KeychainStore { return dictionary } - public func string(forKey key: String, withAccessibility accessibility: SwiftKeychainWrapper.KeychainItemAccessibility = .afterFirstUnlock) -> String? { + public func string(forKey key: String, withAccessibility accessibility: MZKeychainItemAccessibility = .afterFirstUnlock) -> String? { keychainWrapper.ensureStringItemAccessibility(accessibility, forKey: key) return keychainWrapper.string(forKey: key, withAccessibility: accessibility) diff --git a/Snapkit-Info.plist b/Snapkit-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/Snapkit-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Storage/Rust/RustLogins.swift b/Storage/Rust/RustLogins.swift index ba291bd6d34c..ab5dca0bb3df 100644 --- a/Storage/Rust/RustLogins.swift +++ b/Storage/Rust/RustLogins.swift @@ -4,9 +4,9 @@ import Foundation import Shared -import SwiftKeychainWrapper - -@_exported import MozillaAppServices +import FxAClient +import Sync15 +@_exported import Logins private let log = Logger.syncLogger @@ -345,7 +345,7 @@ public class RustLoginEncryptionKeys { public let loginsPostMigrationSalt = "sqlcipher.key.logins.salt.post.migration" public let loginsPostMigrationKey = "sqlcipher.key.logins.db.post.migration" - let keychain: KeychainWrapper = KeychainWrapper.sharedAppContainerKeychain + let keychain: MZKeychainWrapper = MZKeychainWrapper.sharedClientAppContainerKeychain let canaryPhraseKey = "canaryPhrase" let canaryPhrase = "a string for checking validity of the key" @@ -356,8 +356,8 @@ public class RustLoginEncryptionKeys { let secret = try createKey() let canary = try createCanary(text: canaryPhrase, encryptionKey: secret) - keychain.set(secret, forKey: loginPerFieldKeychainKey, withAccessibility: .afterFirstUnlock) - keychain.set(canary, forKey: canaryPhraseKey, withAccessibility: .afterFirstUnlock) + keychain.set(secret, forKey: loginPerFieldKeychainKey, withAccessibility: MZKeychainItemAccessibility.afterFirstUnlock) + keychain.set(canary, forKey: canaryPhraseKey, withAccessibility: MZKeychainItemAccessibility.afterFirstUnlock) return secret } catch let err as NSError { @@ -744,7 +744,7 @@ public class RustLogins { } private func migrateSQLCipherDBIfNeeded(key: String) { - let keychain = KeychainWrapper.sharedAppContainerKeychain + let keychain = MZKeychainWrapper.sharedClientAppContainerKeychain let rustKeys: RustLoginEncryptionKeys = RustLoginEncryptionKeys() let sqlCipherLoginsKey: String? = keychain.string(forKey: rustKeys.loginsUnlockKeychainKey) let sqlCipherLoginsSalt: String? = keychain.string(forKey: rustKeys.loginsSaltKeychainKey) diff --git a/Storage/Rust/RustPlaces.swift b/Storage/Rust/RustPlaces.swift index d8efd279dec8..b4373049c1d9 100644 --- a/Storage/Rust/RustPlaces.swift +++ b/Storage/Rust/RustPlaces.swift @@ -4,8 +4,9 @@ import Foundation import Shared - -@_exported import MozillaAppServices +import Sync15 +@_exported import Places +import Logins private let log = Logger.syncLogger @@ -39,7 +40,7 @@ public class RustPlaces { } catch let err as NSError { if let placesError = err as? PlacesError { switch placesError { - case .panic(let message): + case .InternalPanic(let message): Sentry.shared.sendWithStacktrace(message: "Panicked when opening Rust Places database", tag: SentryTag.rustPlaces, severity: .error, description: message) default: Sentry.shared.sendWithStacktrace(message: "Unspecified or other error when opening Rust Places database", tag: SentryTag.rustPlaces, severity: .error, description: placesError.localizedDescription) @@ -65,7 +66,7 @@ public class RustPlaces { writerQueue.async { guard self.isOpen else { - deferred.fill(Maybe(failure: PlacesError.connUseAfterAPIClosed as MaybeErrorType)) + deferred.fill(Maybe(failure: PlacesApiError.connUseAfterApiClosed as MaybeErrorType)) return } @@ -81,7 +82,7 @@ public class RustPlaces { deferred.fill(Maybe(failure: error as MaybeErrorType)) } } else { - deferred.fill(Maybe(failure: PlacesError.connUseAfterAPIClosed as MaybeErrorType)) + deferred.fill(Maybe(failure: PlacesApiError.connUseAfterApiClosed as MaybeErrorType)) } } @@ -93,7 +94,7 @@ public class RustPlaces { readerQueue.async { guard self.isOpen else { - deferred.fill(Maybe(failure: PlacesError.connUseAfterAPIClosed as MaybeErrorType)) + deferred.fill(Maybe(failure: PlacesApiError.connUseAfterApiClosed as MaybeErrorType)) return } @@ -113,7 +114,7 @@ public class RustPlaces { deferred.fill(Maybe(failure: error as MaybeErrorType)) } } else { - deferred.fill(Maybe(failure: PlacesError.connUseAfterAPIClosed as MaybeErrorType)) + deferred.fill(Maybe(failure: PlacesApiError.connUseAfterApiClosed as MaybeErrorType)) } } @@ -149,19 +150,19 @@ public class RustPlaces { } } - public func getBookmarksTree(rootGUID: GUID, recursive: Bool) -> Deferred> { + public func getBookmarksTree(rootGUID: GUID, recursive: Bool) -> Deferred> { return withReader { connection in return try connection.getBookmarksTree(rootGUID: rootGUID, recursive: recursive) } } - public func getBookmark(guid: GUID) -> Deferred> { + public func getBookmark(guid: GUID) -> Deferred> { return withReader { connection in return try connection.getBookmark(guid: guid) } } - public func getRecentBookmarks(limit: UInt) -> Deferred> { + public func getRecentBookmarks(limit: UInt) -> Deferred> { return withReader { connection in return try connection.getRecentBookmarks(limit: limit) } @@ -173,7 +174,7 @@ public class RustPlaces { } } - public func getBookmarksWithURL(url: String) -> Deferred> { + public func getBookmarksWithURL(url: String) -> Deferred> { return withReader { connection in return try connection.getBookmarksWithURL(url: url) } @@ -189,7 +190,7 @@ public class RustPlaces { } } - public func searchBookmarks(query: String, limit: UInt) -> Deferred> { + public func searchBookmarks(query: String, limit: UInt) -> Deferred> { return withReader { connection in return try connection.searchBookmarks(query: query, limit: limit) } @@ -293,7 +294,7 @@ public class RustPlaces { writerQueue.async { guard self.isOpen else { - deferred.fill(Maybe(failure: PlacesError.connUseAfterAPIClosed as MaybeErrorType)) + deferred.fill(Maybe(failure: PlacesApiError.connUseAfterApiClosed as MaybeErrorType)) return } @@ -303,7 +304,7 @@ public class RustPlaces { } catch let err as NSError { if let placesError = err as? PlacesError { switch placesError { - case .panic(let message): + case .InternalPanic(let message): Sentry.shared.sendWithStacktrace(message: "Panicked when syncing Places database", tag: SentryTag.rustPlaces, severity: .error, description: message) default: Sentry.shared.sendWithStacktrace(message: "Unspecified or other error when syncing Places database", tag: SentryTag.rustPlaces, severity: .error, description: placesError.localizedDescription) @@ -322,7 +323,7 @@ public class RustPlaces { writerQueue.async { guard self.isOpen else { - deferred.fill(Maybe(failure: PlacesError.connUseAfterAPIClosed as MaybeErrorType)) + deferred.fill(Maybe(failure: PlacesApiError.connUseAfterApiClosed as MaybeErrorType)) return } diff --git a/Sync/State.swift b/Sync/State.swift index 1720f62d9c10..df2adc551bb5 100644 --- a/Sync/State.swift +++ b/Sync/State.swift @@ -6,7 +6,7 @@ import Foundation import Account import Shared import XCGLogger -import SwiftKeychainWrapper +import FxAClient import SwiftyJSON private let log = Logger.syncLogger @@ -459,8 +459,8 @@ open class Scratchpad { b.keyLabel = keyLabel if let ckTS = prefs.unsignedLongForKey(PrefKeysTS) { let key = "keys." + keyLabel - KeychainWrapper.sharedAppContainerKeychain.ensureStringItemAccessibility(.afterFirstUnlock, forKey: key) - if let keys = KeychainWrapper.sharedAppContainerKeychain.string(forKey: key) { + MZKeychainWrapper.sharedClientAppContainerKeychain.ensureClientStringItemAccessibility(.afterFirstUnlock, forKey: key) + if let keys = MZKeychainWrapper.sharedClientAppContainerKeychain.string(forKey: key) { // We serialize as JSON. let keys = Keys(payload: KeysPayload(keys)) if keys.valid { @@ -530,7 +530,7 @@ open class Scratchpad { open class func clearFromPrefs(_ prefs: Prefs) { if let keyLabel = prefs.stringForKey(PrefKeyLabel) { log.debug("Removing saved key from keychain.") - KeychainWrapper.sharedAppContainerKeychain.removeObject(forKey: keyLabel) + MZKeychainWrapper.sharedClientAppContainerKeychain.removeObject(forKey: keyLabel) } else { log.debug("No key label; nothing to remove from keychain.") } @@ -578,10 +578,10 @@ open class Scratchpad { log.debug("Storing keys in Keychain with label \(label).") prefs.setString(self.keyLabel, forKey: PrefKeyLabel) prefs.setLong(keys.timestamp, forKey: PrefKeysTS) - KeychainWrapper.sharedAppContainerKeychain.set(payload, forKey: label, withAccessibility: .afterFirstUnlock) + MZKeychainWrapper.sharedClientAppContainerKeychain.set(payload, forKey: label, withAccessibility: .afterFirstUnlock) } else { log.debug("Removing keys from Keychain.") - KeychainWrapper.sharedAppContainerKeychain.removeObject(forKey: self.keyLabel) + MZKeychainWrapper.sharedClientAppContainerKeychain.removeObject(forKey: self.keyLabel) } prefs.setString(clientName, forKey: PrefClientName) diff --git a/Sync/SyncTelemetryUtils.swift b/Sync/SyncTelemetryUtils.swift index adf25f0f0a0c..0db6d274d259 100644 --- a/Sync/SyncTelemetryUtils.swift +++ b/Sync/SyncTelemetryUtils.swift @@ -2,7 +2,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0 -import Foundation +import UIKit import Shared import Account import Storage diff --git a/Sync/Synchronizers/ClientsSynchronizer.swift b/Sync/Synchronizers/ClientsSynchronizer.swift index 6e8eb302bc57..ee85c0404a1e 100644 --- a/Sync/Synchronizers/ClientsSynchronizer.swift +++ b/Sync/Synchronizers/ClientsSynchronizer.swift @@ -2,7 +2,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0 -import Foundation +import UIKit import Shared import Storage import XCGLogger diff --git a/SyncTelemetry/SyncTelemetryEvents.swift b/SyncTelemetry/SyncTelemetryEvents.swift index 4962de445e2e..a67d19cf2b98 100644 --- a/SyncTelemetry/SyncTelemetryEvents.swift +++ b/SyncTelemetry/SyncTelemetryEvents.swift @@ -3,6 +3,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0 import Shared +import XCGLogger private let log = Logger.browserLogger diff --git a/UITests/Global.swift b/UITests/Global.swift index 15007542f4d1..53112076d879 100644 --- a/UITests/Global.swift +++ b/UITests/Global.swift @@ -6,7 +6,6 @@ import Foundation import GCDWebServers import Storage import WebKit -import SwiftKeychainWrapper import Shared @testable import Client diff --git a/XCGLogger-Info.plist b/XCGLogger-Info.plist new file mode 100644 index 000000000000..ce200073e947 --- /dev/null +++ b/XCGLogger-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 18.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/XCUITests/FxScreenGraphTests.swift b/XCUITests/FxScreenGraphTests.swift index b2508e310dc2..cc6c52618b4c 100644 --- a/XCUITests/FxScreenGraphTests.swift +++ b/XCUITests/FxScreenGraphTests.swift @@ -14,6 +14,6 @@ class FxScreenGraphTests: XCTestCase { // dot is provided by graphviz. // To install: // % brew install graphviz - MMTestUtils.render(graph: createScreenGraph(for: self, with: XCUIApplication())) + // MMTestUtils.render(graph: createScreenGraph(for: self, with: XCUIApplication())) } } diff --git a/bin/sdk_generator.sh b/bin/sdk_generator.sh new file mode 100755 index 000000000000..17e51d583a2f --- /dev/null +++ b/bin/sdk_generator.sh @@ -0,0 +1,185 @@ +#!/bin/bash + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Glean SDK metrics build script. +# +# More about Glean at https://mozilla.github.io/glean +# +# This script generates metrics and pings as defined in user-provided files +# and generates Swift code to be included in the final build. +# It uses the `glean_parser`. +# See https://mozilla.github.io/glean_parser/ for details. +# +# To use it in a Swift project, follow these steps: +# 1. Import the `sdk_generator.sh` script into your project. +# 2. Add your `metrics.yaml` and (optionally) `pings.yaml` and `tags.yaml` to your project. +# 3. Add a new "Run Script" build step and set the command to `bash $PWD/sdk_generator.sh` +# 4. Add your definition files (`metrics.yaml`, `pings.yaml`, `tags.yaml`) as Input Files for the "Run Script" step. +# 5. Run the build. +# 6. Add the files in the `Generated` folder to your project. +# 7. Add the same files from the `Generated` folder as Output Files of the newly created "Run SCript" step. +# 8. Start using the generated metrics. + +set -e + +GLEAN_PARSER_VERSION=4.4.0 + +# CMDNAME is used in the usage text below. +# shellcheck disable=SC2034 +CMDNAME=$(basename "$0") +USAGE=$(cat <<'HEREDOC' +$(CMDNAME) +Glean Team + +Glean SDK metrics build script. + +More about Glean at https://mozilla.github.io/glean + +This script generates metrics and pings as defined in user-provided files +and generates Swift code to be included in the final build. +It uses the `glean_parser`. +See https://mozilla.github.io/glean_parser/ for details. + +This script should be executed as a "Run Build Script" phase from Xcode. + +USAGE: + ${CMDNAME} [OPTIONS] [PATH ...] + +ARGS: + ... Explicit list of definition files to parse. + If not specified the plugin will use the \$SCRIPT_INPUT_FILE_{N} environment variables. + +OPTIONS: + -a, --allow-reserved Allow reserved names. + -o, --output Folder to place generated code in. Default: \$SOURCE_ROOT/\$PROJECT/Generated + -g, --glean-namespace The Glean namespace to use in generated code. + -m, --markdown Generate markdown documentation in provided directory. + -b, --build-date Set a specific build date or disable build date generation with `0`. + -h, --help Display this help message. +HEREDOC +) + +helptext() { + echo "$USAGE" +} + +declare -a PARAMS=() +ALLOW_RESERVED="" +GLEAN_NAMESPACE=Glean +DOCS_DIRECTORY="" +BUILD_DATE="" +declare -a YAML_FILES=() +OUTPUT_DIR="${SOURCE_ROOT}/${PROJECT}/Generated" + +while (( "$#" )); do + case "$1" in + -a|--allow-reserved) + ALLOW_RESERVED="--allow-reserved" + shift + ;; + -o|--output) + OUTPUT_DIR=$2 + shift 2 + ;; + -g|--glean-namespace) + GLEAN_NAMESPACE=$2 + shift 2 + ;; + -m|--markdown) + DOCS_DIRECTORY=$2 + shift 2 + ;; + -b|--build-date) + BUILD_DATE="--option build_date=$2" + shift 2 + ;; + -h|--help) + helptext + exit 0 + ;; + --) # end argument parsing + shift + break + ;; + --*=|-*) # unsupported flags + echo "Error: Unsupported flag $1" >&2 + exit 1 + ;; + *) # preserve positional arguments + PARAMS+=("$1") + shift + ;; + esac +done + +if [ "$ACTION" = "indexbuild" ]; then + echo "Skipping code generation in 'indexbuild' build. See https://bugzilla.mozilla.org/show_bug.cgi?id=1744504 for more info." + exit 0 +fi + +if [ "${#PARAMS[@]}" -gt 0 ]; then + YAML_FILES=("${PARAMS[@]}") +else + if [ -z "$SCRIPT_INPUT_FILE_COUNT" ] || [ "$SCRIPT_INPUT_FILE_COUNT" -eq 0 ]; then + echo "warning: No input files specified." + exit 0 + fi + + for i in $(seq 0 $((SCRIPT_INPUT_FILE_COUNT - 1))); do + infilevar="SCRIPT_INPUT_FILE_${i}" + infile="${!infilevar}" + YAML_FILES+=("${infile}") + done +fi + +if [ -z "$SOURCE_ROOT" ]; then + echo "Error: No \$SOURCE_ROOT defined." + echo "Execute this script as a build step in Xcode." + exit 2 +fi + +if [ -z "$PROJECT" ]; then + echo "Error: No \$PROJECT defined." + echo "Execute this script as a build step in Xcode." + exit 2 +fi + +VENVDIR="${SOURCE_ROOT}/.venv" + +[ -x "${VENVDIR}/bin/python" ] || python3 -m venv "${VENVDIR}" +# We need at least pip 20.3 for Big Sur support, see https://pip.pypa.io/en/stable/news/#id48 +# Latest pip is 21.0.1 +"${VENVDIR}"/bin/pip install "pip>=20.3" +"${VENVDIR}"/bin/pip install --upgrade glean_parser==$GLEAN_PARSER_VERSION + +# Run the glinter +# Turn its warnings into warnings visible in Xcode (but don't do for the success message) +"${VENVDIR}"/bin/python -m glean_parser \ + glinter \ + $ALLOW_RESERVED \ + "${YAML_FILES[@]}" 2>&1 \ + | sed 's/^\(.\)/warning: \1/' \ + | sed '/Your metrics are Glean/s/^warning: //' + +PARSER_OUTPUT=$("${VENVDIR}"/bin/python -m glean_parser \ + translate \ + -f "swift" \ + -o "${OUTPUT_DIR}" \ + -s "glean_namespace=${GLEAN_NAMESPACE}" \ + $BUILD_DATE \ + $ALLOW_RESERVED \ + "${YAML_FILES[@]}" 2>&1) || { echo "$PARSER_OUTPUT"; echo "error: glean_parser failed. See errors above."; exit 1; } + +if [ -n "$DOCS_DIRECTORY" ]; then + "${VENVDIR}"/bin/python -m glean_parser \ + translate \ + -f "markdown" \ + -o "${DOCS_DIRECTORY}" \ + $ALLOW_RESERVED \ + "${YAML_FILES[@]}" +fi + +exit 0 diff --git a/bitrise.yml b/bitrise.yml index fc92a18fe775..ff354443ad45 100644 --- a/bitrise.yml +++ b/bitrise.yml @@ -79,13 +79,6 @@ workflows: rm /tmp/tmp.xcconfig envman add --key XCODE_XCCONFIG_FILE --value '' title: Remove carthage lipo workaround - - script@1: - title: Copy glean sdk_generator - inputs: - - content: |- - #!/usr/bin/env bash # fail if any commands fails set -e # debug log set -x - # Copy Glean script to source folder from # MozillaAppServices.framework as we need # this script to build iOS App - cp Carthage/Build/iOS/MozillaAppServices.framework/sdk_generator.sh ./ 3_provisioning_and_npm_installation: steps: - script@1.1: @@ -279,14 +272,6 @@ workflows: rm /tmp/tmp.xcconfig envman add --key XCODE_XCCONFIG_FILE --value '' title: Remove carthage lipo workaround - - script@1: - title: Copy glean sdk_generator - run_if: '{{getenv "NEW_XCODE_VERSION" | eq "New_Version_Found" | or (getenv "RUN_ALL_STEPS" | eq "Run_All_Steps")}}' - inputs: - - content: |- - #!/usr/bin/env bash # fail if any commands fails set -e # debug log set -x - # Copy Glean script to source folder from # MozillaAppServices.framework as we need # this script to build iOS App - cp Carthage/Build/iOS/MozillaAppServices.framework/sdk_generator.sh ./ - script@1: run_if: '{{getenv "NEW_XCODE_VERSION" | eq "New_Version_Found" | or (getenv "RUN_ALL_STEPS" | eq "Run_All_Steps")}}' inputs: @@ -478,19 +463,6 @@ workflows: rm /tmp/tmp.xcconfig envman add --key XCODE_XCCONFIG_FILE --value '' title: Remove carthage lip - - script@1: - title: Copy glean sdk_generator - inputs: - - content: |- - #!/usr/bin/env bash - # fail if any commands fails - set -e - # debug log - set -x - # Copy Glean script to source folder from - # MozillaAppServices.framework as we need - # this script to build iOS App - cp Carthage/Build/iOS/MozillaAppServices.framework/sdk_generator.sh ./ - script@1.1: title: NPM install and build inputs: @@ -1121,6 +1093,302 @@ workflows: bitrise.io: stack: osx-xcode-13.1.x machine_type_id: g2.8core + SPM_Deploy_Prod_Beta: + steps: + - activate-ssh-key@4.1: + run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}' + - git-clone@6.1: {} + - certificate-and-profile-installer@1.10: {} + - script@1: + inputs: + - content: |- + #!/usr/bin/env bash + set -e + set -x + + cd Client.xcodeproj + sed -i '' 's/CODE_SIGN_IDENTITY = "iPhone Developer"/CODE_SIGN_IDENTITY = "iPhone Distribution"/' project.pbxproj + cd - + title: Set xcodeproj code_sign_identity + - script@1.1: + title: NPM, ContentBlockerGen + inputs: + - content: |- + #!/usr/bin/env bash + # fail if any commands fails + set -e + # debug log + set -x + + ./content_blocker_update.sh + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_RELEASE_VERSION" + - plist_path: Client/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_RELEASE_VERSION" + - plist_path: Extensions/NotificationService/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_RELEASE_VERSION" + - plist_path: Extensions/ShareTo/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_RELEASE_VERSION" + - plist_path: Extensions/Today/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_RELEASE_VERSION" + - plist_path: WidgetKit/Info.plist + - script@1: + inputs: + - content: |- + #!/usr/bin/env bash + # fail if any commands fails + set -e + # debug log + set -x + + # write your script here + + echo "Setting Nimbus variables" + /usr/libexec/PlistBuddy -c "Set NimbusURL $NIMBUS_URL" "Client/Info.plist" + title: Nimbus Variable Setup + - xcode-archive@4.0: + inputs: + - compile_bitcode: 'no' + - upload_bitcode: 'no' + - team_id: 43AQ936H96 + - export_method: app-store + - output_tool: xcodebuild + - distribution_method: app-store + - export_development_team: 43AQ936H96 + - configuration: "$BITRISE_SCHEME" + - deploy-to-bitrise-io@2.0: {} + - deploy-to-itunesconnect-application-loader@1.3: + inputs: + - app_password: "$APPLE_ACCOUNT_PW" + - password: "$APPLE_ACCOUNT_PW" + - connection: 'off' + - itunescon_user: "$APPLE_ACCOUNT_ID" + - script@1: + inputs: + - content: |- + #!/usr/bin/env bash + set -e + set -x + # sleep 9999 + is_always_run: true + title: debug-sleep + - slack@3.2: + inputs: + - webhook_url: "$WEBHOOK_SLACK_TOKEN" + - xcode-archive@4.0: + inputs: + - compile_bitcode: 'no' + - upload_bitcode: 'no' + - team_id: 43AQ936H96 + - export_method: app-store + - output_tool: xcodebuild + - scheme: FirefoxBeta + - export_development_team: 43AQ936H96 + - distribution_method: app-store + - configuration: FirefoxBeta + title: 'FirefoxBeta: Xcode Archive & Export for iOS' + - deploy-to-itunesconnect-application-loader@1.3: + inputs: + - app_password: "$APPLE_ACCOUNT_PW" + - connection: 'off' + - itunescon_user: "$APPLE_ACCOUNT_ID" + title: 'FirefoxBeta: Deploy to iTunes Connect' + envs: + - opts: + is_expand: false + BITRISE_SCHEME: Firefox + description: This step is to build, archive and upload Firefox Release and Beta + meta: + bitrise.io: + stack: osx-xcode-13.1.x + machine_type_id: g2.8core + SPM_Deploy_Beta_Only: + steps: + - activate-ssh-key@4.1: + run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}' + - git-clone@6.1: {} + - certificate-and-profile-installer@1.10: {} + - script@1: + inputs: + - content: |- + #!/usr/bin/env bash + set -e + set -x + + cd Client.xcodeproj + sed -i '' 's/CODE_SIGN_IDENTITY = "iPhone Developer"/CODE_SIGN_IDENTITY = "iPhone Distribution"/' project.pbxproj + cd - + title: Set xcodeproj code_sign_identity + - script@1.1: + title: NPM, ContentBlockerGen + inputs: + - content: |- + #!/usr/bin/env bash + # fail if any commands fails + set -e + # debug log + set -x + + ./content_blocker_update.sh + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_BETA_VERSION" + - plist_path: Client/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_BETA_VERSION" + - plist_path: Extensions/NotificationService/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_BETA_VERSION" + - plist_path: Extensions/ShareTo/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_BETA_VERSION" + - plist_path: Extensions/Today/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_BETA_VERSION" + - plist_path: WidgetKit/Info.plist + - script@1: + inputs: + - content: |- + #!/usr/bin/env bash + # fail if any commands fails + set -e + # debug log + set -x + + # write your script here + + echo "Setting Nimbus variables" + /usr/libexec/PlistBuddy -c "Set NimbusURL $NIMBUS_URL" "Client/Info.plist" + title: Nimbus Variable Setup + - xcode-archive@4.0: + inputs: + - compile_bitcode: 'no' + - upload_bitcode: 'no' + - team_id: 43AQ936H96 + - export_method: app-store + - output_tool: xcodebuild + - scheme: FirefoxBeta + - export_development_team: 43AQ936H96 + - distribution_method: app-store + - configuration: FirefoxBeta + title: 'FirefoxBeta: Xcode Archive & Export for iOS' + - deploy-to-itunesconnect-application-loader@1.3: + inputs: + - app_password: "$APPLE_ACCOUNT_PW" + - connection: 'off' + - itunescon_user: "$APPLE_ACCOUNT_ID" + title: 'FirefoxBeta: Xcode Archive & Export for iOS' + envs: + - opts: + is_expand: false + BITRISE_SCHEME: Firefox + description: This step is to build, archive and upload Firefox Release and Beta + meta: + bitrise.io: + stack: osx-xcode-13.1.x + machine_type_id: g2.8core + SPM_Nightly_Beta_Only: + steps: + - activate-ssh-key@4.1: + run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}' + - git-clone@6.1: {} + - certificate-and-profile-installer@1.10: {} + - script@1: + inputs: + - content: |- + #!/usr/bin/env bash + set -e + set -x + + cd Client.xcodeproj + sed -i '' 's/CODE_SIGN_IDENTITY = "iPhone Developer"/CODE_SIGN_IDENTITY = "iPhone Distribution"/' project.pbxproj + cd - + title: Set xcodeproj code_sign_identity + - script@1.1: + title: NPM, ContentBlockerGen + inputs: + - content: |- + #!/usr/bin/env bash + # fail if any commands fails + set -e + # debug log + set -x + + ./content_blocker_update.sh + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_NIGHTLY_VERSION" + - plist_path: Client/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_NIGHTLY_VERSION" + - plist_path: Extensions/NotificationService/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_NIGHTLY_VERSION" + - plist_path: Extensions/ShareTo/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_NIGHTLY_VERSION" + - plist_path: Extensions/Today/Info.plist + - set-xcode-build-number@1: + inputs: + - build_short_version_string: "$BITRISE_NIGHTLY_VERSION" + - plist_path: WidgetKit/Info.plist + - script@1: + inputs: + - content: |- + #!/usr/bin/env bash + # fail if any commands fails + set -e + # debug log + set -x + + # write your script here + + echo "Setting Nimbus variables" + /usr/libexec/PlistBuddy -c "Set NimbusURL $NIMBUS_URL" "Client/Info.plist" + title: Nimbus Variable Setup + - xcode-archive@4.0: + inputs: + - compile_bitcode: 'no' + - upload_bitcode: 'no' + - team_id: 43AQ936H96 + - export_method: app-store + - output_tool: xcodebuild + - scheme: FirefoxBeta + - export_development_team: 43AQ936H96 + - distribution_method: app-store + - configuration: FirefoxBeta + title: 'FirefoxBeta: Xcode Archive & Export for iOS' + - deploy-to-itunesconnect-application-loader@1.3: + inputs: + - app_password: "$APPLE_ACCOUNT_PW" + - connection: 'off' + - itunescon_user: "$APPLE_ACCOUNT_ID" + title: 'Nightly FirefoxBeta: Xcode Archive & Export for iOS' + envs: + - opts: + is_expand: false + BITRISE_SCHEME: Firefox + description: This step is to build, archive and upload Firefox Release and Beta + meta: + bitrise.io: + stack: osx-xcode-13.1.x + machine_type_id: g2.8core app: envs: - opts: diff --git a/bootstrap.sh b/bootstrap.sh index 5f9dc055b1cf..57280fc6bb68 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -5,13 +5,8 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. */ # -# Bootstrap the Carthage dependencies. If the Carthage directory -# already exists then nothing is done. This speeds up builds on -# CI services where the Carthage directory can be cached. -# -# Use the --force option to force a rebuild of the dependencies. +# Use the --force option to force a re-build locales. # Use the --importLocales option to fetch and update locales only -# getLocale() { echo "Getting locale..." @@ -22,21 +17,9 @@ getLocale() { git clone --depth 1 https://github.com/mozilla-l10n/firefoxios-l10n firefoxios-l10n || exit 1 } -# Useful to check if previous command was successful - quit if it wasn't -# Pass the error message as a parameter of the function with 'verifyExitCode "message"' -verifyExitCode() { - EXIT_CODE=$? - if [ $EXIT_CODE == 0 ]; then - echo "$1" - exit 0 - fi -} - if [ "$1" == "--force" ]; then rm -rf firefoxios-l10n rm -rf ios-l10n-scripts - rm -rf Carthage/* - rm -rf ~/Library/Caches/org.carthage.CarthageKit fi if [ "$1" == "--importLocales" ]; then @@ -52,16 +35,5 @@ if [ "$1" == "--importLocales" ]; then exit 0 fi -# Run carthage -./carthage_command.sh -verifyExitCode "Exit due to carthage_command.sh" - -# Move Glean script to source folder from MozillaAppServices.framework -# as we don't want to ship our app with this Glean script inside framework -mv Carthage/Build/iOS/MozillaAppServices.framework/sdk_generator.sh ./ - -# Install Node.js dependencies and build user scripts -npm install -npm run build - -(cd content-blocker-lib-ios/ContentBlockerGen && swift run) +# Run and update content blocker +./content_blocker_update.sh diff --git a/carthage_command.sh b/carthage_command.sh deleted file mode 100755 index c71344264f85..000000000000 --- a/carthage_command.sh +++ /dev/null @@ -1,18 +0,0 @@ -xcodesdk=`xcodebuild -scheme Firefox -showBuildSettings | grep -i 'SDK_VERSION =' | sed 's/[ ]*SDK_VERSION = //' | colrm 3` -echo Xcode SDK: $(($xcodesdk+0)) - -# Make sure we're on Xcode greater than 12 -if [[ 13 -gt $(($xcodesdk+0)) ]]; then - echo Xcode 12 version \(SDK 13\) or more should be used! - exit 0 -fi - -echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64=arm64 arm64e armv7 armv7s armv6 armv8' > /tmp/tmp.xcconfig -echo 'EXCLUDED_ARCHS=$(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT))' >> /tmp/tmp.xcconfig -echo 'IPHONEOS_DEPLOYMENT_TARGET=11.4' >> /tmp/tmp.xcconfig -echo 'SWIFT_TREAT_WARNINGS_AS_ERRORS=NO' >> /tmp/tmp.xcconfig -echo 'GCC_TREAT_WARNINGS_AS_ERRORS=NO' >> /tmp/tmp.xcconfig -export XCODE_XCCONFIG_FILE=/tmp/tmp.xcconfig - -carthage bootstrap $CARTHAGE_VERBOSE --platform ios --color auto --cache-builds -exit 1 diff --git a/content-blocker-lib-ios/ContentBlockerGen/Sources/ContentBlockerGen/main.swift b/content-blocker-lib-ios/ContentBlockerGen/Sources/ContentBlockerGen/main.swift index 4e4e088f2d4c..5f36da41f07e 100644 --- a/content-blocker-lib-ios/ContentBlockerGen/Sources/ContentBlockerGen/main.swift +++ b/content-blocker-lib-ios/ContentBlockerGen/Sources/ContentBlockerGen/main.swift @@ -10,9 +10,9 @@ let fallbackPath: String = (#file as NSString).deletingLastPathComponent + "/../ // We expect this command to be executed as 'cd ; swift run', if not, use the fallback path generated from the path to main.swift. Running from an xcodeproj will use fallbackPath. let execIsFromCorrectDir = fm.fileExists(atPath: fm.currentDirectoryPath + "/Package.swift") let rootdir = execIsFromCorrectDir ? fm.currentDirectoryPath : fallbackPath -let blocklist = "\(rootdir)/../../Carthage/Checkouts/shavar-prod-lists/disconnect-blacklist.json" -let entityList = "\(rootdir)/../../Carthage/Checkouts/shavar-prod-lists/disconnect-entitylist.json" -let fingerprintingList = "\(rootdir)/../../Carthage/Checkouts/shavar-prod-lists/normalized-lists/base-fingerprinting-track.json" +let blocklist = "\(rootdir)/../../shavar-prod-lists/disconnect-blacklist.json" +let entityList = "\(rootdir)/../../shavar-prod-lists/disconnect-entitylist.json" +let fingerprintingList = "\(rootdir)/../../shavar-prod-lists/normalized-lists/base-fingerprinting-track.json" func jsonFrom(filename: String) -> [String: Any] { let file = URL(fileURLWithPath: filename) diff --git a/content_blocker_update.sh b/content_blocker_update.sh new file mode 100755 index 000000000000..65ec6dc2114a --- /dev/null +++ b/content_blocker_update.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +# Update commit hash when you need to update shavar prod list +# Note: we can update this to use a tag / branch in future +SHAVAR_COMMIT_HASH="3910527004252af3aa9dd701566a2cb3b78e5c3a" + +# Install Node.js dependencies and build user scripts +npm install +npm run build + +# Clone shavar prod list +rm -rf shavar-prod-lists && git clone https://github.com/mozilla-services/shavar-prod-lists.git && git -C shavar-prod-lists checkout $SHAVAR_COMMIT_HASH + +(cd content-blocker-lib-ios/ContentBlockerGen && swift run) diff --git a/package-lock.json b/package-lock.json index 353746fd7542..6d3d95d5764f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12612,4 +12612,4 @@ } } } -} \ No newline at end of file +}