firebase / quickstart-ios

Firebase Quickstart Samples for iOS
https://firebase.google.com
Apache License 2.0
2.8k stars 1.47k forks source link

[Infra] Embed static frameworks with proper settings #1580

Closed ncooke3 closed 7 months ago

ncooke3 commented 7 months ago

Verified that running the script will setup the project in a way where the archives will be stripped out:

before:

‣ tree /Users/nickcooke/Library/Developer/Xcode/DerivedData/ABTestingExample-eiqvrjmoietiaeehlkxtcgcahmwq/Build/Products/Debug-iphoneos/ABTestingExample.app                                                      (75ms) 
/Users/nickcooke/Library/Developer/Xcode/DerivedData/ABTestingExample-eiqvrjmoietiaeehlkxtcgcahmwq/Build/Products/Debug-iphoneos/ABTestingExample.app
├── ABTestingExample
├── Base.lproj
│   ├── LaunchScreen.storyboardc
│   │   ├── 01J-lp-oVM-view-Ze5-6b-2t3.nib
│   │   ├── Info.plist
│   │   └── UIViewController-01J-lp-oVM.nib
│   └── Main.storyboardc
│       ├── BYZ-38-t0r-view-8bC-Xf-vdC.nib
│       ├── Info.plist
│       └── UINavigationController-JzM-Lz-pqX.nib
├── Frameworks
│   ├── FBLPromises.framework
│   │   ├── FBLPromises_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   ├── Headers
│   │   │   ├── FBLPromise+All.h
│   │   │   ├── FBLPromise+Always.h
│   │   │   ├── FBLPromise+Any.h
│   │   │   ├── FBLPromise+Async.h
│   │   │   ├── FBLPromise+Await.h
│   │   │   ├── FBLPromise+Catch.h
│   │   │   ├── FBLPromise+Delay.h
│   │   │   ├── FBLPromise+Do.h
│   │   │   ├── FBLPromise+Race.h
│   │   │   ├── FBLPromise+Recover.h
│   │   │   ├── FBLPromise+Reduce.h
│   │   │   ├── FBLPromise+Retry.h
│   │   │   ├── FBLPromise+Testing.h
│   │   │   ├── FBLPromise+Then.h
│   │   │   ├── FBLPromise+Timeout.h
│   │   │   ├── FBLPromise+Validate.h
│   │   │   ├── FBLPromise+Wrap.h
│   │   │   ├── FBLPromise.h
│   │   │   ├── FBLPromiseError.h
│   │   │   ├── FBLPromises.h
│   │   │   └── PromisesObjC-umbrella.h
│   │   ├── Info.plist
│   │   ├── Modules
│   │   │   └── module.modulemap
│   │   └── PrivateHeaders
│   │       └── FBLPromisePrivate.h
│   ├── FirebaseABTesting.framework
│   │   ├── FirebaseABTesting_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   ├── Headers
│   │   │   ├── FIRExperimentController.h
│   │   │   ├── FIRLifecycleEvents.h
│   │   │   ├── FirebaseABTesting-umbrella.h
│   │   │   └── FirebaseABTesting.h
│   │   ├── Info.plist
│   │   └── Modules
│   │       └── module.modulemap
│   ├── FirebaseAnalytics.framework
│   │   ├── Headers
│   │   │   ├── FIRAnalytics+AppDelegate.h
│   │   │   ├── FIRAnalytics+Consent.h
│   │   │   ├── FIRAnalytics+OnDevice.h
│   │   │   ├── FIRAnalytics.h
│   │   │   ├── FIREventNames.h
│   │   │   ├── FIRParameterNames.h
│   │   │   ├── FIRUserPropertyNames.h
│   │   │   ├── FirebaseAnalytics-Swift.h
│   │   │   ├── FirebaseAnalytics-umbrella.h
│   │   │   └── FirebaseAnalytics.h
│   │   ├── Info.plist
│   │   └── Modules
│   │       ├── FirebaseAnalytics.swiftmodule
│   │       │   ├── Project
│   │       │   │   └── arm64-apple-ios.swiftsourceinfo
│   │       │   ├── arm64-apple-ios.abi.json
│   │       │   ├── arm64-apple-ios.private.swiftinterface
│   │       │   ├── arm64-apple-ios.swiftdoc
│   │       │   └── arm64-apple-ios.swiftinterface
│   │       └── module.modulemap
│   ├── FirebaseCore.framework
│   │   ├── FirebaseCore_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   ├── Headers
│   │   │   ├── FIRApp.h
│   │   │   ├── FIRConfiguration.h
│   │   │   ├── FIRLoggerLevel.h
│   │   │   ├── FIROptions.h
│   │   │   ├── FIRVersion.h
│   │   │   ├── FirebaseCore-umbrella.h
│   │   │   └── FirebaseCore.h
│   │   ├── Info.plist
│   │   └── Modules
│   │       └── module.modulemap
│   ├── FirebaseCoreInternal.framework
│   │   ├── FirebaseCoreInternal_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   ├── Headers
│   │   │   ├── FirebaseCoreInternal-Swift.h
│   │   │   └── FirebaseCoreInternal-umbrella.h
│   │   ├── Info.plist
│   │   └── Modules
│   │       ├── FirebaseCoreInternal.swiftmodule
│   │       │   ├── Project
│   │       │   │   └── arm64-apple-ios.swiftsourceinfo
│   │       │   ├── arm64-apple-ios.abi.json
│   │       │   ├── arm64-apple-ios.private.swiftinterface
│   │       │   ├── arm64-apple-ios.swiftdoc
│   │       │   └── arm64-apple-ios.swiftinterface
│   │       └── module.modulemap
│   ├── FirebaseInstallations.framework
│   │   ├── FirebaseInstallations_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   ├── Headers
│   │   │   ├── FIRInstallations.h
│   │   │   ├── FIRInstallationsAuthTokenResult.h
│   │   │   ├── FIRInstallationsErrors.h
│   │   │   ├── FirebaseInstallations-umbrella.h
│   │   │   └── FirebaseInstallations.h
│   │   ├── Info.plist
│   │   └── Modules
│   │       └── module.modulemap
│   ├── FirebaseRemoteConfig.framework
│   │   ├── FirebaseRemoteConfig_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   ├── Headers
│   │   │   ├── FIRRemoteConfig.h
│   │   │   ├── FirebaseRemoteConfig-Swift.h
│   │   │   ├── FirebaseRemoteConfig-umbrella.h
│   │   │   └── FirebaseRemoteConfig.h
│   │   ├── Info.plist
│   │   └── Modules
│   │       ├── FirebaseRemoteConfig.swiftmodule
│   │       │   ├── Project
│   │       │   │   └── arm64-apple-ios.swiftsourceinfo
│   │       │   ├── arm64-apple-ios.abi.json
│   │       │   ├── arm64-apple-ios.private.swiftinterface
│   │       │   ├── arm64-apple-ios.swiftdoc
│   │       │   └── arm64-apple-ios.swiftinterface
│   │       └── module.modulemap
│   ├── FirebaseRemoteConfigInterop.framework
│   │   ├── Headers
│   │   │   ├── FirebaseRemoteConfigInterop-Swift.h
│   │   │   └── FirebaseRemoteConfigInterop-umbrella.h
│   │   ├── Info.plist
│   │   └── Modules
│   │       ├── FirebaseRemoteConfigInterop.swiftmodule
│   │       │   ├── Project
│   │       │   │   └── arm64-apple-ios.swiftsourceinfo
│   │       │   ├── arm64-apple-ios.abi.json
│   │       │   ├── arm64-apple-ios.private.swiftinterface
│   │       │   ├── arm64-apple-ios.swiftdoc
│   │       │   └── arm64-apple-ios.swiftinterface
│   │       └── module.modulemap
│   ├── FirebaseSharedSwift.framework
│   │   ├── Headers
│   │   │   ├── FirebaseSharedSwift-Swift.h
│   │   │   └── FirebaseSharedSwift-umbrella.h
│   │   ├── Info.plist
│   │   └── Modules
│   │       ├── FirebaseSharedSwift.swiftmodule
│   │       │   ├── Project
│   │       │   │   └── arm64-apple-ios.swiftsourceinfo
│   │       │   ├── arm64-apple-ios.abi.json
│   │       │   ├── arm64-apple-ios.private.swiftinterface
│   │       │   ├── arm64-apple-ios.swiftdoc
│   │       │   └── arm64-apple-ios.swiftinterface
│   │       └── module.modulemap
│   ├── GoogleAppMeasurement.framework
│   │   ├── Info.plist
│   │   └── Modules
│   │       └── module.modulemap
│   ├── GoogleAppMeasurementIdentitySupport.framework
│   │   ├── Info.plist
│   │   └── Modules
│   │       └── module.modulemap
│   ├── GoogleUtilities.framework
│   │   ├── GoogleUtilities_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   ├── Headers
│   │   │   ├── GULAppDelegateSwizzler.h
│   │   │   ├── GULAppEnvironmentUtil.h
│   │   │   ├── GULApplication.h
│   │   │   ├── GULHeartbeatDateStorable.h
│   │   │   ├── GULHeartbeatDateStorage.h
│   │   │   ├── GULHeartbeatDateStorageUserDefaults.h
│   │   │   ├── GULKeychainStorage.h
│   │   │   ├── GULKeychainUtils.h
│   │   │   ├── GULLogger.h
│   │   │   ├── GULLoggerLevel.h
│   │   │   ├── GULMutableDictionary.h
│   │   │   ├── GULNSData+zlib.h
│   │   │   ├── GULNetwork.h
│   │   │   ├── GULNetworkConstants.h
│   │   │   ├── GULNetworkInfo.h
│   │   │   ├── GULNetworkLoggerProtocol.h
│   │   │   ├── GULNetworkMessageCode.h
│   │   │   ├── GULNetworkURLSession.h
│   │   │   ├── GULObjectSwizzler.h
│   │   │   ├── GULOriginalIMPConvenienceMacros.h
│   │   │   ├── GULReachabilityChecker.h
│   │   │   ├── GULSceneDelegateSwizzler.h
│   │   │   ├── GULSecureCoding.h
│   │   │   ├── GULSwizzledObject.h
│   │   │   ├── GULSwizzler.h
│   │   │   ├── GULURLSessionDataResponse.h
│   │   │   ├── GULUserDefaults.h
│   │   │   ├── GoogleUtilities-umbrella.h
│   │   │   └── NSURLSession+GULPromises.h
│   │   ├── Info.plist
│   │   └── Modules
│   │       └── module.modulemap
│   └── nanopb.framework
│       ├── Headers
│       │   ├── nanopb-umbrella.h
│       │   ├── pb.h
│       │   ├── pb_common.h
│       │   ├── pb_decode.h
│       │   └── pb_encode.h
│       ├── Info.plist
│       ├── Modules
│       │   └── module.modulemap
│       └── nanopb_Privacy.bundle
│           ├── Info.plist
│           └── PrivacyInfo.xcprivacy
├── GoogleService-Info.plist
├── Info.plist
└── PkgInfo

60 directories, 169 files

after:

/Users/nickcooke/Library/Developer/Xcode/DerivedData/ABTestingExample-eiqvrjmoietiaeehlkxtcgcahmwq/Build/Products/Debug-iphoneos/ABTestingExample.app
├── ABTestingExample
├── Base.lproj
│   ├── LaunchScreen.storyboardc
│   │   ├── 01J-lp-oVM-view-Ze5-6b-2t3.nib
│   │   ├── Info.plist
│   │   └── UIViewController-01J-lp-oVM.nib
│   └── Main.storyboardc
│       ├── BYZ-38-t0r-view-8bC-Xf-vdC.nib
│       ├── Info.plist
│       └── UINavigationController-JzM-Lz-pqX.nib
├── Frameworks
│   ├── FBLPromises.framework
│   │   ├── FBLPromises_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   └── Info.plist
│   ├── FirebaseABTesting.framework
│   │   ├── FirebaseABTesting_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   └── Info.plist
│   ├── FirebaseAnalytics.framework
│   │   └── Info.plist
│   ├── FirebaseCore.framework
│   │   ├── FirebaseCore_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   └── Info.plist
│   ├── FirebaseCoreInternal.framework
│   │   ├── FirebaseCoreInternal_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   └── Info.plist
│   ├── FirebaseInstallations.framework
│   │   ├── FirebaseInstallations_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   └── Info.plist
│   ├── FirebaseRemoteConfigInterop.framework
│   │   └── Info.plist
│   ├── FirebaseSharedSwift.framework
│   │   └── Info.plist
│   ├── GoogleAppMeasurement.framework
│   │   └── Info.plist
│   ├── GoogleAppMeasurementIdentitySupport.framework
│   │   └── Info.plist
│   ├── GoogleUtilities.framework
│   │   ├── GoogleUtilities_Privacy.bundle
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   └── Info.plist
│   └── nanopb.framework
│       ├── Info.plist
│       └── nanopb_Privacy.bundle
│           ├── Info.plist
│           └── PrivacyInfo.xcprivacy
├── GoogleService-Info.plist
├── Info.plist
└── PkgInfo

23 directories, 36 files
➜  LegacyABTestingQuickstart git:(main) ✗