diff --git a/.travis.yml b/.travis.yml index e42689c23af..5c93cd05aff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,12 @@ cache: - bundler - cocoapods +stages: + - checks + - test + - name: cocoapods_compatibility_check + if: type = cron + jobs: include: - stage: checks @@ -212,6 +218,46 @@ jobs: script: - travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD + # Validate Cocoapods configurations + # This may take long time, so we would like to run it only once all other tests pass + # Validate Cocoapods 1.7.0 compatibility + - stage: cocoapods_compatibility_check + env: + - POD_CONFIG_DIR=Cocoapods1_7_0_multiprojects_frameworks + script: + - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile + + - stage: cocoapods_compatibility_check + env: + - POD_CONFIG_DIR=Cocoapods1_7_0_frameworks + script: + - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile + + - stage: cocoapods_compatibility_check + env: + - POD_CONFIG_DIR=Cocoapods1_7_0_multiprojects_staticLibs + script: + - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile + + - stage: cocoapods_compatibility_check + env: + - POD_CONFIG_DIR=Cocoapods1_7_0_staticLibs + script: + - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile + + # Validate Cocoapods 1.6.1 compatibility + - stage: cocoapods_compatibility_check + env: + - POD_CONFIG_DIR=Cocoapods1_6_1_frameworks + script: + - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile + + - stage: cocoapods_compatibility_check + env: + - POD_CONFIG_DIR=Cocoapods1_6_1_staticLibs + script: + - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile + allow_failures: # Run fuzz tests only on cron jobs. - stage: test diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest.xcodeproj/project.pbxproj b/CocoapodsIntegrationTest/CocoapodsIntegrationTest.xcodeproj/project.pbxproj new file mode 100644 index 00000000000..c1224d0f529 --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest.xcodeproj/project.pbxproj @@ -0,0 +1,411 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 9A9CEFAD22564DAB00C32C5B /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A9CEFAC22564DAB00C32C5B /* AppDelegate.m */; }; + 9A9CEFB022564DAB00C32C5B /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A9CEFAF22564DAB00C32C5B /* ViewController.m */; }; + 9A9CEFB322564DAB00C32C5B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9A9CEFB122564DAB00C32C5B /* Main.storyboard */; }; + 9A9CEFB522564DAC00C32C5B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9A9CEFB422564DAC00C32C5B /* Assets.xcassets */; }; + 9A9CEFB822564DAC00C32C5B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9A9CEFB622564DAC00C32C5B /* LaunchScreen.storyboard */; }; + 9A9CEFBB22564DAC00C32C5B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A9CEFBA22564DAC00C32C5B /* main.m */; }; + A1D7F89167D4EDC7356BA0F1 /* Pods_CocoapodsIntegrationTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B465C9A8AC12C2E1B44B6A6 /* Pods_CocoapodsIntegrationTest.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 8B465C9A8AC12C2E1B44B6A6 /* Pods_CocoapodsIntegrationTest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CocoapodsIntegrationTest.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A9CEFA822564DAB00C32C5B /* CocoapodsIntegrationTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CocoapodsIntegrationTest.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A9CEFAB22564DAB00C32C5B /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 9A9CEFAC22564DAB00C32C5B /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 9A9CEFAE22564DAB00C32C5B /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 9A9CEFAF22564DAB00C32C5B /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + 9A9CEFB222564DAB00C32C5B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 9A9CEFB422564DAC00C32C5B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 9A9CEFB722564DAC00C32C5B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 9A9CEFB922564DAC00C32C5B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9A9CEFBA22564DAC00C32C5B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + B60CFECB6829D89F305E8225 /* Pods-CocoapodsIntegrationTest.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CocoapodsIntegrationTest.release.xcconfig"; path = "Target Support Files/Pods-CocoapodsIntegrationTest/Pods-CocoapodsIntegrationTest.release.xcconfig"; sourceTree = ""; }; + DEA28D2A6F2A50E15ADA23A7 /* Pods-CocoapodsIntegrationTest.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CocoapodsIntegrationTest.debug.xcconfig"; path = "Target Support Files/Pods-CocoapodsIntegrationTest/Pods-CocoapodsIntegrationTest.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9A9CEFA522564DAB00C32C5B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A1D7F89167D4EDC7356BA0F1 /* Pods_CocoapodsIntegrationTest.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5262DE71BE536EC6B8E91815 /* Pods */ = { + isa = PBXGroup; + children = ( + DEA28D2A6F2A50E15ADA23A7 /* Pods-CocoapodsIntegrationTest.debug.xcconfig */, + B60CFECB6829D89F305E8225 /* Pods-CocoapodsIntegrationTest.release.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 9A9CEF9F22564DAB00C32C5B = { + isa = PBXGroup; + children = ( + 9A9CEFAA22564DAB00C32C5B /* CocoapodsIntegrationTest */, + 9A9CEFA922564DAB00C32C5B /* Products */, + 5262DE71BE536EC6B8E91815 /* Pods */, + A9C0E60CE8FE7029246BCCBF /* Frameworks */, + ); + sourceTree = ""; + }; + 9A9CEFA922564DAB00C32C5B /* Products */ = { + isa = PBXGroup; + children = ( + 9A9CEFA822564DAB00C32C5B /* CocoapodsIntegrationTest.app */, + ); + name = Products; + sourceTree = ""; + }; + 9A9CEFAA22564DAB00C32C5B /* CocoapodsIntegrationTest */ = { + isa = PBXGroup; + children = ( + 9A9CEFAB22564DAB00C32C5B /* AppDelegate.h */, + 9A9CEFAC22564DAB00C32C5B /* AppDelegate.m */, + 9A9CEFAE22564DAB00C32C5B /* ViewController.h */, + 9A9CEFAF22564DAB00C32C5B /* ViewController.m */, + 9A9CEFB122564DAB00C32C5B /* Main.storyboard */, + 9A9CEFB422564DAC00C32C5B /* Assets.xcassets */, + 9A9CEFB622564DAC00C32C5B /* LaunchScreen.storyboard */, + 9A9CEFB922564DAC00C32C5B /* Info.plist */, + 9A9CEFBA22564DAC00C32C5B /* main.m */, + ); + path = CocoapodsIntegrationTest; + sourceTree = ""; + }; + A9C0E60CE8FE7029246BCCBF /* Frameworks */ = { + isa = PBXGroup; + children = ( + 8B465C9A8AC12C2E1B44B6A6 /* Pods_CocoapodsIntegrationTest.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 9A9CEFA722564DAB00C32C5B /* CocoapodsIntegrationTest */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9A9CEFBE22564DAC00C32C5B /* Build configuration list for PBXNativeTarget "CocoapodsIntegrationTest" */; + buildPhases = ( + 21DA73D41725957D85E38FC2 /* [CP] Check Pods Manifest.lock */, + 9A9CEFA422564DAB00C32C5B /* Sources */, + 9A9CEFA522564DAB00C32C5B /* Frameworks */, + 9A9CEFA622564DAB00C32C5B /* Resources */, + 840F09F7845F2F1AB96D6F7E /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CocoapodsIntegrationTest; + productName = CocoapodsIntegrationTest; + productReference = 9A9CEFA822564DAB00C32C5B /* CocoapodsIntegrationTest.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9A9CEFA022564DAB00C32C5B /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = Google; + TargetAttributes = { + 9A9CEFA722564DAB00C32C5B = { + CreatedOnToolsVersion = 10.1; + }; + }; + }; + buildConfigurationList = 9A9CEFA322564DAB00C32C5B /* Build configuration list for PBXProject "CocoapodsIntegrationTest" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 9A9CEF9F22564DAB00C32C5B; + productRefGroup = 9A9CEFA922564DAB00C32C5B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 9A9CEFA722564DAB00C32C5B /* CocoapodsIntegrationTest */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 9A9CEFA622564DAB00C32C5B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9A9CEFB822564DAC00C32C5B /* LaunchScreen.storyboard in Resources */, + 9A9CEFB522564DAC00C32C5B /* Assets.xcassets in Resources */, + 9A9CEFB322564DAB00C32C5B /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 21DA73D41725957D85E38FC2 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-CocoapodsIntegrationTest-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 840F09F7845F2F1AB96D6F7E /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-CocoapodsIntegrationTest/Pods-CocoapodsIntegrationTest-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-CocoapodsIntegrationTest/Pods-CocoapodsIntegrationTest-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CocoapodsIntegrationTest/Pods-CocoapodsIntegrationTest-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 9A9CEFA422564DAB00C32C5B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9A9CEFB022564DAB00C32C5B /* ViewController.m in Sources */, + 9A9CEFBB22564DAC00C32C5B /* main.m in Sources */, + 9A9CEFAD22564DAB00C32C5B /* AppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 9A9CEFB122564DAB00C32C5B /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 9A9CEFB222564DAB00C32C5B /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 9A9CEFB622564DAC00C32C5B /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 9A9CEFB722564DAC00C32C5B /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 9A9CEFBC22564DAC00C32C5B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 9A9CEFBD22564DAC00C32C5B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 9A9CEFBF22564DAC00C32C5B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DEA28D2A6F2A50E15ADA23A7 /* Pods-CocoapodsIntegrationTest.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = CocoapodsIntegrationTest/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = google.com.CocoapodsIntegrationTest; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 9A9CEFC022564DAC00C32C5B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B60CFECB6829D89F305E8225 /* Pods-CocoapodsIntegrationTest.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = CocoapodsIntegrationTest/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = google.com.CocoapodsIntegrationTest; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9A9CEFA322564DAB00C32C5B /* Build configuration list for PBXProject "CocoapodsIntegrationTest" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9A9CEFBC22564DAC00C32C5B /* Debug */, + 9A9CEFBD22564DAC00C32C5B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9A9CEFBE22564DAC00C32C5B /* Build configuration list for PBXNativeTarget "CocoapodsIntegrationTest" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9A9CEFBF22564DAC00C32C5B /* Debug */, + 9A9CEFC022564DAC00C32C5B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9A9CEFA022564DAB00C32C5B /* Project object */; +} diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest.xcodeproj/xcshareddata/xcschemes/CocoapodsIntegrationTest.xcscheme b/CocoapodsIntegrationTest/CocoapodsIntegrationTest.xcodeproj/xcshareddata/xcschemes/CocoapodsIntegrationTest.xcscheme new file mode 100644 index 00000000000..c7f4d3c3616 --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest.xcodeproj/xcshareddata/xcschemes/CocoapodsIntegrationTest.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest/AppDelegate.h b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/AppDelegate.h new file mode 100644 index 00000000000..b0b8e06e84c --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/AppDelegate.h @@ -0,0 +1,23 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface AppDelegate : UIResponder + +@property(strong, nonatomic) UIWindow *window; + +@end diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest/AppDelegate.m b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/AppDelegate.m new file mode 100644 index 00000000000..ae0efdf729f --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/AppDelegate.m @@ -0,0 +1,26 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "AppDelegate.h" +#import + +@interface AppDelegate () + +@end + +@implementation AppDelegate + +@end diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Assets.xcassets/AppIcon.appiconset/Contents.json b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000000..d8db8d65fd7 --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Assets.xcassets/Contents.json b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Assets.xcassets/Contents.json new file mode 100644 index 00000000000..da4a164c918 --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Base.lproj/LaunchScreen.storyboard b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000000..bfa36129419 --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Base.lproj/Main.storyboard b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Base.lproj/Main.storyboard new file mode 100644 index 00000000000..942f0bc452d --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Info.plist b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Info.plist new file mode 100644 index 00000000000..16be3b68112 --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest/ViewController.h b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/ViewController.h new file mode 100644 index 00000000000..7f02e1a5218 --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/ViewController.h @@ -0,0 +1,21 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface ViewController : UIViewController + +@end diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest/ViewController.m b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/ViewController.m new file mode 100644 index 00000000000..a4696c81665 --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/ViewController.m @@ -0,0 +1,25 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "ViewController.h" + +@interface ViewController () + +@end + +@implementation ViewController + +@end diff --git a/CocoapodsIntegrationTest/CocoapodsIntegrationTest/main.m b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/main.m new file mode 100644 index 00000000000..efb3cc9e634 --- /dev/null +++ b/CocoapodsIntegrationTest/CocoapodsIntegrationTest/main.m @@ -0,0 +1,24 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "AppDelegate.h" + +int main(int argc, char* argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/CocoapodsIntegrationTest/Gemfile b/CocoapodsIntegrationTest/Gemfile new file mode 100644 index 00000000000..a4698322428 --- /dev/null +++ b/CocoapodsIntegrationTest/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem 'cocoapods', "~>1.7.0.beta" diff --git a/CocoapodsIntegrationTest/Gemfile.lock b/CocoapodsIntegrationTest/Gemfile.lock new file mode 100644 index 00000000000..bc83f51078c --- /dev/null +++ b/CocoapodsIntegrationTest/Gemfile.lock @@ -0,0 +1,76 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.0) + activesupport (4.2.11.1) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + atomos (0.1.3) + claide (1.0.2) + cocoapods (1.7.0.beta.3) + activesupport (>= 4.0.2, < 5) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.7.0.beta.3) + cocoapods-deintegrate (>= 1.0.3, < 2.0) + cocoapods-downloader (>= 1.2.2, < 2.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-stats (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.3.1, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) + colored2 (~> 3.1) + escape (~> 0.0.4) + fourflusher (>= 2.2.0, < 3.0) + gh_inspector (~> 1.0) + molinillo (~> 0.6.6) + nap (~> 1.0) + ruby-macho (~> 1.4) + xcodeproj (>= 1.8.2, < 2.0) + cocoapods-core (1.7.0.beta.3) + activesupport (>= 4.0.2, < 6) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + cocoapods-deintegrate (1.0.4) + cocoapods-downloader (1.2.2) + cocoapods-plugins (1.0.0) + nap + cocoapods-search (1.0.0) + cocoapods-stats (1.1.0) + cocoapods-trunk (1.3.1) + nap (>= 0.8, < 2.0) + netrc (~> 0.11) + cocoapods-try (1.1.0) + colored2 (3.1.2) + concurrent-ruby (1.1.5) + escape (0.0.4) + fourflusher (2.2.0) + fuzzy_match (2.0.4) + gh_inspector (1.1.3) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + minitest (5.11.3) + molinillo (0.6.6) + nanaimo (0.2.6) + nap (1.1.0) + netrc (0.11.0) + ruby-macho (1.4.0) + thread_safe (0.3.6) + tzinfo (1.2.5) + thread_safe (~> 0.1) + xcodeproj (1.8.2) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.2.6) + +PLATFORMS + ruby + +DEPENDENCIES + cocoapods (~> 1.7.0.beta) + +BUNDLED WITH + 1.17.1 diff --git a/CocoapodsIntegrationTest/Podfile b/CocoapodsIntegrationTest/Podfile new file mode 100644 index 00000000000..ed45548a20d --- /dev/null +++ b/CocoapodsIntegrationTest/Podfile @@ -0,0 +1,26 @@ +# Uncomment the next line to define a global platform for your project +platform :ios, '9.0' + +target 'CocoapodsIntegrationTest' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + pod 'FirebaseCore', :path => '../' + pod 'FirebaseAuth', :path => '../' + pod 'FirebaseCore', :path => '../' + pod 'FirebaseDatabase', :path => '../' + pod 'FirebaseDynamicLinks', :path => '../' + pod 'FirebaseFirestore', :path => '../' + pod 'FirebaseFunctions', :path => '../' + pod 'FirebaseInAppMessaging', :path => '../' + pod 'FirebaseInstanceID', :path => '../' + pod 'FirebaseMessaging', :path => '../' + pod 'FirebaseStorage', :path => '../' + pod 'GoogleUtilities', :path => '../' +end + +# Using the new speed-enhancing features available with CocoaPods 1.7+ +# [sudo] gem install cocoapods --pre +install! 'cocoapods', + :generate_multiple_pod_projects => true, + :incremental_installation => true diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_frameworks/Gemfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_frameworks/Gemfile new file mode 100644 index 00000000000..7d579adf0f1 --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_frameworks/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem 'cocoapods', "=1.6.1" diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_frameworks/Podfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_frameworks/Podfile new file mode 100644 index 00000000000..ba9f0da36ac --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_frameworks/Podfile @@ -0,0 +1,19 @@ +# Uncomment the next line to define a global platform for your project +platform :ios, '9.0' + +target 'CocoapodsIntegrationTest' do + use_frameworks! + + pod 'FirebaseCore', :path => '../' + pod 'FirebaseAuth', :path => '../' + pod 'FirebaseCore', :path => '../' + pod 'FirebaseDatabase', :path => '../' + pod 'FirebaseDynamicLinks', :path => '../' + pod 'FirebaseFirestore', :path => '../' + pod 'FirebaseFunctions', :path => '../' + pod 'FirebaseInAppMessaging', :path => '../' + pod 'FirebaseInstanceID', :path => '../' + pod 'FirebaseMessaging', :path => '../' + pod 'FirebaseStorage', :path => '../' + pod 'GoogleUtilities', :path => '../' +end diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_staticLibs/Gemfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_staticLibs/Gemfile new file mode 100644 index 00000000000..7d579adf0f1 --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_staticLibs/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem 'cocoapods', "=1.6.1" diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_staticLibs/Podfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_staticLibs/Podfile new file mode 100644 index 00000000000..5d49a5ba8dc --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_staticLibs/Podfile @@ -0,0 +1,17 @@ +# Uncomment the next line to define a global platform for your project +platform :ios, '9.0' + +target 'CocoapodsIntegrationTest' do + pod 'FirebaseCore', :path => '../' + pod 'FirebaseAuth', :path => '../' + pod 'FirebaseCore', :path => '../' + pod 'FirebaseDatabase', :path => '../' + pod 'FirebaseDynamicLinks', :path => '../' + pod 'FirebaseFirestore', :path => '../' + pod 'FirebaseFunctions', :path => '../' + pod 'FirebaseInAppMessaging', :path => '../' + pod 'FirebaseInstanceID', :path => '../' + pod 'FirebaseMessaging', :path => '../' + pod 'FirebaseStorage', :path => '../' + pod 'GoogleUtilities', :path => '../' +end diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_frameworks/Gemfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_frameworks/Gemfile new file mode 100644 index 00000000000..a4698322428 --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_frameworks/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem 'cocoapods', "~>1.7.0.beta" diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_frameworks/Podfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_frameworks/Podfile new file mode 100644 index 00000000000..1ad0177e5d0 --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_frameworks/Podfile @@ -0,0 +1,19 @@ +# Uncomment the next line to define a global platform for your project +platform :ios, '9.0' + +target 'CocoapodsIntegrationTest' do + use_frameworks! + + pod 'FirebaseCore', :path => '../' + pod 'FirebaseAuth', :path => '../' + pod 'FirebaseCore', :path => '../' + pod 'FirebaseDatabase', :path => '../' + pod 'FirebaseDynamicLinks', :path => '../' + pod 'FirebaseFirestore', :path => '../' + pod 'FirebaseFunctions', :path => '../' + pod 'FirebaseInAppMessaging', :path => '../' + pod 'FirebaseInstanceID', :path => '../' + pod 'FirebaseMessaging', :path => '../' + pod 'FirebaseStorage', :path => '../' + pod 'GoogleUtilities', :path => '../' +end \ No newline at end of file diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_frameworks/Gemfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_frameworks/Gemfile new file mode 100644 index 00000000000..a4698322428 --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_frameworks/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem 'cocoapods', "~>1.7.0.beta" diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_frameworks/Podfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_frameworks/Podfile new file mode 100644 index 00000000000..ed45548a20d --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_frameworks/Podfile @@ -0,0 +1,26 @@ +# Uncomment the next line to define a global platform for your project +platform :ios, '9.0' + +target 'CocoapodsIntegrationTest' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + pod 'FirebaseCore', :path => '../' + pod 'FirebaseAuth', :path => '../' + pod 'FirebaseCore', :path => '../' + pod 'FirebaseDatabase', :path => '../' + pod 'FirebaseDynamicLinks', :path => '../' + pod 'FirebaseFirestore', :path => '../' + pod 'FirebaseFunctions', :path => '../' + pod 'FirebaseInAppMessaging', :path => '../' + pod 'FirebaseInstanceID', :path => '../' + pod 'FirebaseMessaging', :path => '../' + pod 'FirebaseStorage', :path => '../' + pod 'GoogleUtilities', :path => '../' +end + +# Using the new speed-enhancing features available with CocoaPods 1.7+ +# [sudo] gem install cocoapods --pre +install! 'cocoapods', + :generate_multiple_pod_projects => true, + :incremental_installation => true diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_staticLibs/Gemfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_staticLibs/Gemfile new file mode 100644 index 00000000000..a4698322428 --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_staticLibs/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem 'cocoapods', "~>1.7.0.beta" diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_staticLibs/Podfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_staticLibs/Podfile new file mode 100644 index 00000000000..c20dc638114 --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_staticLibs/Podfile @@ -0,0 +1,23 @@ +# Uncomment the next line to define a global platform for your project +platform :ios, '9.0' + +target 'CocoapodsIntegrationTest' do + pod 'FirebaseCore', :path => '../' + pod 'FirebaseAuth', :path => '../' + pod 'FirebaseCore', :path => '../' + pod 'FirebaseDatabase', :path => '../' + pod 'FirebaseDynamicLinks', :path => '../' + pod 'FirebaseFirestore', :path => '../' + pod 'FirebaseFunctions', :path => '../' + pod 'FirebaseInAppMessaging', :path => '../' + pod 'FirebaseInstanceID', :path => '../' + pod 'FirebaseMessaging', :path => '../' + pod 'FirebaseStorage', :path => '../' + pod 'GoogleUtilities', :path => '../' +end + +# Using the new speed-enhancing features available with CocoaPods 1.7+ +# [sudo] gem install cocoapods --pre +install! 'cocoapods', + :generate_multiple_pod_projects => true, + :incremental_installation => true diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_staticLibs/Gemfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_staticLibs/Gemfile new file mode 100644 index 00000000000..a4698322428 --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_staticLibs/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem 'cocoapods', "~>1.7.0.beta" diff --git a/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_staticLibs/Podfile b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_staticLibs/Podfile new file mode 100644 index 00000000000..5d49a5ba8dc --- /dev/null +++ b/CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_staticLibs/Podfile @@ -0,0 +1,17 @@ +# Uncomment the next line to define a global platform for your project +platform :ios, '9.0' + +target 'CocoapodsIntegrationTest' do + pod 'FirebaseCore', :path => '../' + pod 'FirebaseAuth', :path => '../' + pod 'FirebaseCore', :path => '../' + pod 'FirebaseDatabase', :path => '../' + pod 'FirebaseDynamicLinks', :path => '../' + pod 'FirebaseFirestore', :path => '../' + pod 'FirebaseFunctions', :path => '../' + pod 'FirebaseInAppMessaging', :path => '../' + pod 'FirebaseInstanceID', :path => '../' + pod 'FirebaseMessaging', :path => '../' + pod 'FirebaseStorage', :path => '../' + pod 'GoogleUtilities', :path => '../' +end diff --git a/CocoapodsIntegrationTest/scripts/build_all_environments.sh b/CocoapodsIntegrationTest/scripts/build_all_environments.sh new file mode 100755 index 00000000000..b992b76fae0 --- /dev/null +++ b/CocoapodsIntegrationTest/scripts/build_all_environments.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +# Copyright 2019 Google +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# The script uses combinations of Gemfile/Podfile to validate Firebase +# compatibility with Cocoapods versions and settings. +# To add a new configuration: +# - create a new directory in `CocoapodsIntegrationTest/TestEnvironments` +# - place Gemfile and Pod file to the created directory +# The script attempts to build the test project for each configuration from +# `CocoapodsIntegrationTest/TestEnvironments`. + +set -euo pipefail + +scriptsDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +buildScripts="$( realpath ${scriptsDir}/build_with_environment.sh )" +environmentsDir="$( realpath ${scriptsDir}/../TestEnvironments )" + +echo "Dir: ${environmentsDir}" + +pushd "${environmentsDir}" + +for environmentDir in `find . -type d -mindepth 1 -maxdepth 1` +do + echo "" + echo "--- Build for environment from ${environmentDir} ---" + source $buildScripts --gemfile="${environmentDir}/Gemfile" --podfile="${environmentDir}/Podfile" + echo "--- Build for environment from ${environmentDir} finished ---" +done + +popd \ No newline at end of file diff --git a/CocoapodsIntegrationTest/scripts/build_with_environment.sh b/CocoapodsIntegrationTest/scripts/build_with_environment.sh new file mode 100755 index 00000000000..efa366027f0 --- /dev/null +++ b/CocoapodsIntegrationTest/scripts/build_with_environment.sh @@ -0,0 +1,106 @@ +#!/usr/bin/env bash + +# Copyright 2019 Google +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# The script uses combination of Gemfile/Podfile to validate Firebase +# compatibility with Cocoapods versions and settings. +# See `printUsage` for usage. + +set -euo pipefail + +# +function runXcodebuild() { + parameters=( + -workspace 'CocoapodsIntegrationTest.xcworkspace' + -scheme 'CocoapodsIntegrationTest' + -sdk 'iphonesimulator' + -destination 'platform=iOS Simulator,name=iPhone 7' + CODE_SIGNING_REQUIRED=NO + clean + build + ) + + echo xcodebuild "${parameters[@]}" + xcodebuild "${parameters[@]}" | xcpretty; result=$? +} + +# Configures bundler environment using Gemfile at the specified path. +function prepareBundle() { + cp -f "$@" ./Gemfile + + # Travis sets this variable. We should unset it otherwise `bundle exec` will + # use the Gemfile by the path from the variable. + unset BUNDLE_GEMFILE + + bundle update +} + +# Updates Cocoapods using Podfile at the specified path. +function prepareCocoapods() { + cp -f "$@" ./Podfile + echo "Cocoapods version: $(bundle exec pod --version)" + bundle exec pod deintegrate + bundle exec pod update +} + +function printUsage() { + echo "USAGE: build_with_environment.sh --gemfile= --podfile=" +} + +for i in "$@" +do + case $i in + --gemfile=*) + GEMFILE="${i#*=}" + shift + ;; + --podfile=*) + PODFILE="${i#*=}" + shift + ;; + *) + printUsage + exit -1 + ;; + esac +done + +if [ -z ${GEMFILE+x} ]; then + echo "--gemfile= is a required parameter" + exit -1 +fi + +if [ -z ${PODFILE+x} ]; then + echo "--podfile= is a required parameter" + exit -1 +fi + +# Convert path to absolute one in case the script is run from another directory. +RESOLVED_GEMFILE="$(realpath ${GEMFILE})" +RESLOVED_PODFILE="$(realpath ${PODFILE})" + +echo "Gemfile = ${RESOLVED_GEMFILE}" +echo "Podfile = ${RESLOVED_PODFILE}" + +# Make sure we build from the project root dir. +scriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +pushd "${scriptDir}/.." + +prepareBundle "${RESOLVED_GEMFILE}" +prepareCocoapods "${RESLOVED_PODFILE}" +runXcodebuild + +# Recover original directory just in case +popd diff --git a/Firebase/Auth/Source/Auth Provider/OAuth/FIROAuthProvider.m b/Firebase/Auth/Source/Auth Provider/OAuth/FIROAuthProvider.m index dd322d6bcc5..6f2fa5092f2 100644 --- a/Firebase/Auth/Source/Auth Provider/OAuth/FIROAuthProvider.m +++ b/Firebase/Auth/Source/Auth Provider/OAuth/FIROAuthProvider.m @@ -17,7 +17,9 @@ #include #import "FIROAuthProvider.h" -#import "FIRApp.h" +#import +#import + #import "FIRAuthBackend.h" #import "FIRAuth_Internal.h" #import "FIRAuthErrorUtils.h" @@ -26,7 +28,6 @@ #import "FIRAuthWebUtils.h" #import "FIROAuthCredential_Internal.h" #import "FIROAuthCredential.h" -#import "FIROptions.h" #if TARGET_OS_IOS #import "FIRAuthURLPresenter.h" diff --git a/Firebase/Core/Private/FIRAppInternal.h b/Firebase/Core/Private/FIRAppInternal.h index 3c346ffc4cb..09728cd33be 100644 --- a/Firebase/Core/Private/FIRAppInternal.h +++ b/Firebase/Core/Private/FIRAppInternal.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#import "FIRApp.h" -#import "FIRErrors.h" +#import +#import @class FIRComponentContainer; @protocol FIRLibrary; diff --git a/Firebase/Core/Private/FIRLogger.h b/Firebase/Core/Private/FIRLogger.h index 41f37480b8e..a86fb9741b5 100644 --- a/Firebase/Core/Private/FIRLogger.h +++ b/Firebase/Core/Private/FIRLogger.h @@ -16,7 +16,7 @@ #import -#import "FIRLoggerLevel.h" +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Firebase/Core/Private/FIROptionsInternal.h b/Firebase/Core/Private/FIROptionsInternal.h index 7bb40fc10d6..117efdaa0fa 100644 --- a/Firebase/Core/Private/FIROptionsInternal.h +++ b/Firebase/Core/Private/FIROptionsInternal.h @@ -14,7 +14,7 @@ * limitations under the License. */ -#import "FIROptions.h" +#import /** * Keys for the strings in the plist file. diff --git a/Firebase/Core/Public/FIRConfiguration.h b/Firebase/Core/Public/FIRConfiguration.h index 2b8e678ceb8..8de3b076a62 100644 --- a/Firebase/Core/Public/FIRConfiguration.h +++ b/Firebase/Core/Public/FIRConfiguration.h @@ -16,7 +16,7 @@ #import -#import "FIRLoggerLevel.h" +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Firebase/InAppMessaging/Runtime/FIRInAppMessaging+Bootstrap.m b/Firebase/InAppMessaging/Runtime/FIRInAppMessaging+Bootstrap.m index 1f3134adb44..c4c5509e5b0 100644 --- a/Firebase/InAppMessaging/Runtime/FIRInAppMessaging+Bootstrap.m +++ b/Firebase/InAppMessaging/Runtime/FIRInAppMessaging+Bootstrap.m @@ -26,7 +26,6 @@ #import "FIRIAMClearcutUploader.h" #import "FIRIAMRuntimeManager.h" #import "FIRIAMSDKSettings.h" -#import "FIROptionsInternal.h" #import "NSString+FIRInterlaceStrings.h" @implementation FIRInAppMessaging (Bootstrap) diff --git a/Firebase/Messaging/FIRMessagingSecureSocket.m b/Firebase/Messaging/FIRMessagingSecureSocket.m index 46d4a70be9e..dd78a76d2ab 100644 --- a/Firebase/Messaging/FIRMessagingSecureSocket.m +++ b/Firebase/Messaging/FIRMessagingSecureSocket.m @@ -16,9 +16,9 @@ #import "FIRMessagingSecureSocket.h" -#import "GPBMessage.h" -#import "GPBCodedOutputStream.h" -#import "GPBUtilities.h" +#import +#import +#import #import "FIRMessagingCodedInputStream.h" #import "FIRMessagingDefines.h" diff --git a/Firebase/Storage/FIRStorageReference.m b/Firebase/Storage/FIRStorageReference.m index 78c9dc64dee..8e70aaa2c73 100644 --- a/Firebase/Storage/FIRStorageReference.m +++ b/Firebase/Storage/FIRStorageReference.m @@ -33,7 +33,7 @@ #import #import -#import "GTMSessionFetcherService.h" +#import @implementation FIRStorageReference diff --git a/Firebase/Storage/FIRStorageTask.m b/Firebase/Storage/FIRStorageTask.m index c0848df259d..748bf2e3628 100644 --- a/Firebase/Storage/FIRStorageTask.m +++ b/Firebase/Storage/FIRStorageTask.m @@ -22,7 +22,7 @@ #import "FIRStorageTask_Private.h" #import "FIRStorage_Private.h" -#import "GTMSessionFetcherService.h" +#import @implementation FIRStorageTask diff --git a/Firebase/Storage/FIRStorageUploadTask.m b/Firebase/Storage/FIRStorageUploadTask.m index 0aba3ab431b..994aa21b659 100644 --- a/Firebase/Storage/FIRStorageUploadTask.m +++ b/Firebase/Storage/FIRStorageUploadTask.m @@ -20,7 +20,7 @@ #import "FIRStorageTask_Private.h" #import "FIRStorageUploadTask_Private.h" -#import "GTMSessionUploadFetcher.h" +#import @implementation FIRStorageUploadTask diff --git a/Firebase/Storage/FIRStorageUtils.m b/Firebase/Storage/FIRStorageUtils.m index 66869ecc7b5..c9ccc6f38ac 100644 --- a/Firebase/Storage/FIRStorageUtils.m +++ b/Firebase/Storage/FIRStorageUtils.m @@ -27,7 +27,7 @@ #import "FirebaseStorage.h" -#import "GTMSessionFetcher.h" +#import // This is the list at https://cloud.google.com/storage/docs/json_api/ without &, ; and +. NSString *const kGCSObjectAllowedCharacterSet = diff --git a/Firestore/Example/App/macOS/AppDelegate.m b/Firestore/Example/App/macOS/AppDelegate.m index 03c73970596..49f300a8d07 100644 --- a/Firestore/Example/App/macOS/AppDelegate.m +++ b/Firestore/Example/App/macOS/AppDelegate.m @@ -15,8 +15,8 @@ */ #import "AppDelegate.h" -#import "FirebaseCore.h" -#import "FirebaseFirestore.h" +#import +#import @interface AppDelegate () diff --git a/Functions/FirebaseFunctions/FIRFunctions.m b/Functions/FirebaseFunctions/FIRFunctions.m index 61a594c9eb1..402ee665e16 100644 --- a/Functions/FirebaseFunctions/FIRFunctions.m +++ b/Functions/FirebaseFunctions/FIRFunctions.m @@ -29,10 +29,10 @@ #import "FUNSerializer.h" #import "FUNUsageValidation.h" -#import "FIRApp.h" -#import "FIRAppInternal.h" -#import "FIROptions.h" -#import "GTMSessionFetcherService.h" +#import +#import +#import +#import // The following two macros supply the incantation so that the C // preprocessor does not try to parse the version as a floating diff --git a/Gemfile.lock b/Gemfile.lock index 19a8e920992..5b15e50861c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,7 +2,7 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.0) - activesupport (4.2.11) + activesupport (4.2.11.1) i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) @@ -32,9 +32,9 @@ GEM activesupport (>= 4.0.2, < 6) fuzzy_match (~> 2.0.4) nap (~> 1.0) - cocoapods-deintegrate (1.0.3) + cocoapods-deintegrate (1.0.4) cocoapods-downloader (1.2.2) - cocoapods-generate (1.3.1) + cocoapods-generate (1.4.0) cocoapods-plugins (1.0.0) nap cocoapods-search (1.0.0) @@ -44,7 +44,7 @@ GEM netrc (~> 0.11) cocoapods-try (1.1.0) colored2 (3.1.2) - concurrent-ruby (1.1.4) + concurrent-ruby (1.1.5) escape (0.0.4) fourflusher (2.2.0) fuzzy_match (2.0.4) @@ -60,7 +60,7 @@ GEM thread_safe (0.3.6) tzinfo (1.2.5) thread_safe (~> 0.1) - xcodeproj (1.8.1) + xcodeproj (1.8.2) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -75,4 +75,4 @@ DEPENDENCIES cocoapods-generate BUNDLED WITH - 1.16.6 + 1.17.3 diff --git a/GoogleUtilities/CHANGELOG.md b/GoogleUtilities/CHANGELOG.md index 2bf1c603e2b..a4f452dfaf9 100644 --- a/GoogleUtilities/CHANGELOG.md +++ b/GoogleUtilities/CHANGELOG.md @@ -1,4 +1,6 @@ # Unreleased +- `GULAppDelegateSwizzler`: support of remote notification methods. (#2698) +- `GULAppDelegateSwizzler`: tvOS support. (#2698) # 5.5.0 - Revert 5.4.x changes restoring 5.3.7 version.