diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index d8876f55..e086d3f9 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -9,7 +9,7 @@ on:
inputs:
apis:
description: 'CSV of apis to build and test'
- default: 'admob,analytics,auth,database,dynamic_links,firestore,functions,gma,messaging,remote_config,storage'
+ default: 'analytics,auth,database,dynamic_links,firestore,functions,gma,messaging,remote_config,storage'
required: true
env:
@@ -32,7 +32,7 @@ jobs:
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
apis="${{ github.event.inputs.apis }}"
else
- apis="admob,analytics,auth,database,dynamic_links,firestore,functions,gma,messaging,remote_config,storage"
+ apis="analytics,auth,database,dynamic_links,firestore,functions,gma,messaging,remote_config,storage"
fi
echo apis: ${apis}
echo "::set-output name=apis::${apis}"
diff --git a/admob/testapp/AndroidManifest.xml b/admob/testapp/AndroidManifest.xml
deleted file mode 100644
index e62e6385..00000000
--- a/admob/testapp/AndroidManifest.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/admob/testapp/CMakeLists.txt b/admob/testapp/CMakeLists.txt
deleted file mode 100644
index 3a7d02dd..00000000
--- a/admob/testapp/CMakeLists.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-
-# User settings for Firebase samples.
-# Path to Firebase SDK.
-# Try to read the path to the Firebase C++ SDK from an environment variable.
-if (NOT "$ENV{FIREBASE_CPP_SDK_DIR}" STREQUAL "")
- set(DEFAULT_FIREBASE_CPP_SDK_DIR "$ENV{FIREBASE_CPP_SDK_DIR}")
-else()
- set(DEFAULT_FIREBASE_CPP_SDK_DIR "firebase_cpp_sdk")
-endif()
-if ("${FIREBASE_CPP_SDK_DIR}" STREQUAL "")
- set(FIREBASE_CPP_SDK_DIR ${DEFAULT_FIREBASE_CPP_SDK_DIR})
-endif()
-if(NOT EXISTS ${FIREBASE_CPP_SDK_DIR})
- message(FATAL_ERROR "The Firebase C++ SDK directory does not exist: ${FIREBASE_CPP_SDK_DIR}. See the readme.md for more information")
-endif()
-
-# Sample source files.
-set(FIREBASE_SAMPLE_COMMON_SRCS
- src/main.h
- src/common_main.cc
-)
-
-# The include directory for the testapp.
-include_directories(src)
-
-# Sample uses some features that require C++ 11, such as lambdas.
-set (CMAKE_CXX_STANDARD 11)
-
-if(ANDROID)
- # Build an Android application.
-
- # Source files used for the Android build.
- set(FIREBASE_SAMPLE_ANDROID_SRCS
- src/android/android_main.cc
- )
-
- # Build native_app_glue as a static lib
- add_library(native_app_glue STATIC
- ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c)
-
- # Export ANativeActivity_onCreate(),
- # Refer to: https://github.com/android-ndk/ndk/issues/381.
- set(CMAKE_SHARED_LINKER_FLAGS
- "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate")
-
- # Define the target as a shared library, as that is what gradle expects.
- set(target_name "android_main")
- add_library(${target_name} SHARED
- ${FIREBASE_SAMPLE_ANDROID_SRCS}
- ${FIREBASE_SAMPLE_COMMON_SRCS}
- )
-
- target_link_libraries(${target_name}
- log android atomic native_app_glue
- )
-
- target_include_directories(${target_name} PRIVATE
- ${ANDROID_NDK}/sources/android/native_app_glue)
-
- set(ADDITIONAL_LIBS)
-else()
- # Build a desktop application.
-
- # Windows runtime mode, either MD or MT depending on whether you are using
- # /MD or /MT. For more information see:
- # https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx
- set(MSVC_RUNTIME_MODE MD)
-
- # Platform abstraction layer for the desktop sample.
- set(FIREBASE_SAMPLE_DESKTOP_SRCS
- src/desktop/desktop_main.cc
- )
-
- set(target_name "desktop_testapp")
- add_executable(${target_name}
- ${FIREBASE_SAMPLE_DESKTOP_SRCS}
- ${FIREBASE_SAMPLE_COMMON_SRCS}
- )
-
- if(APPLE)
- set(ADDITIONAL_LIBS pthread)
- elseif(MSVC)
- set(ADDITIONAL_LIBS)
- else()
- set(ADDITIONAL_LIBS pthread)
- endif()
-
- # If a config file is present, copy it into the binary location so that it's
- # possible to create the default Firebase app.
- set(FOUND_JSON_FILE FALSE)
- foreach(config "google-services-desktop.json" "google-services.json")
- if (EXISTS ${config})
- add_custom_command(
- TARGET ${target_name} POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy
- ${config} $)
- set(FOUND_JSON_FILE TRUE)
- break()
- endif()
- endforeach()
- if(NOT FOUND_JSON_FILE)
- message(WARNING "Failed to find either google-services-desktop.json or google-services.json. See the readme.md for more information.")
- endif()
-endif()
-
-# Add the Firebase libraries to the target using the function from the SDK.
-add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
-# Note that firebase_app needs to be last in the list.
-set(firebase_libs firebase_admob firebase_app)
-target_link_libraries(${target_name} "${firebase_libs}" ${ADDITIONAL_LIBS})
diff --git a/admob/testapp/LICENSE b/admob/testapp/LICENSE
deleted file mode 100644
index d6456956..00000000
--- a/admob/testapp/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
diff --git a/admob/testapp/LaunchScreen.storyboard b/admob/testapp/LaunchScreen.storyboard
deleted file mode 100644
index 673e0f7e..00000000
--- a/admob/testapp/LaunchScreen.storyboard
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/admob/testapp/Podfile b/admob/testapp/Podfile
deleted file mode 100644
index 9759f528..00000000
--- a/admob/testapp/Podfile
+++ /dev/null
@@ -1,6 +0,0 @@
-source 'https://github.com/CocoaPods/Specs.git'
-platform :ios, '8.0'
-# AdMob test application.
-target 'testapp' do
- pod 'Firebase/AdMob', '7.0.0'
-end
diff --git a/admob/testapp/build.gradle b/admob/testapp/build.gradle
deleted file mode 100644
index a6697fca..00000000
--- a/admob/testapp/build.gradle
+++ /dev/null
@@ -1,64 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-buildscript {
- repositories {
- mavenLocal()
- maven { url 'https://maven.google.com' }
- jcenter()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:3.3.3'
- classpath 'com.google.gms:google-services:4.0.1'
- }
-}
-
-allprojects {
- repositories {
- mavenLocal()
- maven { url 'https://maven.google.com' }
- jcenter()
- }
-}
-
-apply plugin: 'com.android.application'
-
-android {
- compileSdkVersion 28
- buildToolsVersion '28.0.3'
-
- sourceSets {
- main {
- jniLibs.srcDirs = ['libs']
- manifest.srcFile 'AndroidManifest.xml'
- java.srcDirs = ['src/android/java']
- res.srcDirs = ['res']
- }
- }
-
- defaultConfig {
- applicationId 'com.google.android.admob.testapp'
- minSdkVersion 26
- targetSdkVersion 28
- versionCode 1
- versionName '1.0'
- externalNativeBuild.cmake {
- arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
- }
- }
- externalNativeBuild.cmake {
- path 'CMakeLists.txt'
- }
- buildTypes {
- release {
- minifyEnabled true
- proguardFile getDefaultProguardFile('proguard-android.txt')
- proguardFile file('proguard.pro')
- }
- }
-}
-
-apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
-firebaseCpp.dependencies {
- admob
-}
-
-apply plugin: 'com.google.gms.google-services'
diff --git a/admob/testapp/gradle/wrapper/gradle-wrapper.jar b/admob/testapp/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 8c0fb64a..00000000
Binary files a/admob/testapp/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/admob/testapp/gradle/wrapper/gradle-wrapper.properties b/admob/testapp/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 9e09cdb6..00000000
--- a/admob/testapp/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Mon Nov 27 14:03:45 PST 2017
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-all.zip
diff --git a/admob/testapp/gradlew b/admob/testapp/gradlew
deleted file mode 100755
index 91a7e269..00000000
--- a/admob/testapp/gradlew
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
-APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/admob/testapp/gradlew.bat b/admob/testapp/gradlew.bat
deleted file mode 100644
index 8a0b282a..00000000
--- a/admob/testapp/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/admob/testapp/proguard.pro b/admob/testapp/proguard.pro
deleted file mode 100644
index 54cd248b..00000000
--- a/admob/testapp/proguard.pro
+++ /dev/null
@@ -1,2 +0,0 @@
--ignorewarnings
--keep,includedescriptorclasses public class com.google.firebase.example.LoggingUtils { *; }
diff --git a/admob/testapp/readme.md b/admob/testapp/readme.md
deleted file mode 100644
index e8f45f80..00000000
--- a/admob/testapp/readme.md
+++ /dev/null
@@ -1,200 +0,0 @@
-Firebase AdMob Quickstart
-==============================
-
-The Firebase AdMob Test Application (testapp) demonstrates loading and showing
-banners and interstitials using the Firebase AdMob C++ SDK. The application
-has no user interface and simply logs actions it's performing to the console
-while displaying the ads.
-
-Introduction
-------------
-
-- [Read more about Firebase AdMob](https://firebase.google.com/docs/admob)
-
-Getting Started
----------------
-
-### iOS
- - Link your iOS app to the Firebase libraries.
- - Get CocoaPods version 1 or later by running,
- ```
- sudo gem install cocoapods --pre
- ```
- - From the testapp directory, install the CocoaPods listed in the Podfile
- by running,
- ```
- pod install
- ```
- - Open the generated Xcode workspace (which now has the CocoaPods),
- ```
- open testapp.xcworkspace
- ```
- - For further details please refer to the
- [general instructions for setting up an iOS app with Firebase](https://firebase.google.com/docs/ios/setup).
- - Register your iOS app with Firebase.
- - Create a new app on the [Firebase console](https://firebase.google.com/console/),
- and attach your iOS app to it.
- - You can use "com.google.ios.admob.testapp" as the iOS Bundle ID
- while you're testing. You can omit App Store ID while testing.
- - Download the Firebase C++ SDK linked from
- [https://firebase.google.com/docs/cpp/setup](https://firebase.google.com/docs/cpp/setup)
- and unzip it to a directory of your choice.
- - Add the following frameworks from the Firebase C++ SDK to the project:
- - frameworks/ios/universal/firebase.framework
- - frameworks/ios/universal/firebase_admob.framework
- - You will need to either,
- 1. Check "Copy items if needed" when adding the frameworks, or
- 2. Add the framework path in "Framework Search Paths"
- - For example, if you downloaded the Firebase C++ SDK to
- `/Users/me/firebase_cpp_sdk`,
- then you would add the path
- `/Users/me/firebase_cpp_sdk/frameworks/ios/universal`.
- - To add the path, in Xcode, select your project in the project
- navigator, then select your target in the main window.
- Select the "Build Settings" tab, and click "All" to see all
- the build settings. Scroll down to "Search Paths", and add
- your path to "Framework Search Paths".
- - Update the AdMob App ID:
- - In the `src/common_main.cc`, update `kAdMobAppID` with the app ID for
- your iOS app, replacing 'YOUR_IOS_ADMOB_APP_ID'.
- - In the `testapp/Info.plist`, update `GADApplicationIdentifier` with the
- same app ID, replacing 'YOUR_IOS_ADMOB_APP_ID'.
- - For more information, see
- [Update your Info.plist](https://developers.google.com/admob/ios/quick-start#manual_download)
- - In Xcode, build & run the sample on an iOS device or simulator.
- - The testapp displays a banner ad and an interstitial ad. You can dismiss
- the interstitial ad to see the banner ad.
- - Afterwards, the testapp will display a Rewarded Video test ad.
- - The output of the app can be viewed onscreen or via the console. To view
- the console in Xcode, select "View --> Debug Area --> Activate Console"
- from the menu.
-
-### Android
- - Register your Android app with Firebase.
- - Create a new app on the [Firebase console](https://firebase.google.com/console/),
- and attach your Android app to it.
- - You can use "com.google.android.admob.testapp" as the Package Name
- while you're testing.
- - To [generate a SHA1](https://developers.google.com/android/guides/client-auth)
- run this command on Mac and Linux,
- ```
- keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
- ```
- or this command on Windows,
- ```
- keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
- ```
- - If keytool reports that you do not have a debug.keystore, you can
- [create one with](http://developer.android.com/tools/publishing/app-signing.html#signing-manually),
- ```
- keytool -genkey -v -keystore ~/.android/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"
- ```
- - Add the `google-services.json` file that you downloaded from Firebase
- console to the root directory of testapp. This file identifies your
- Android app to the Firebase backend.
- - For further details please refer to the
- [general instructions for setting up an Android app with Firebase](https://firebase.google.com/docs/android/setup).
- - Download the Firebase C++ SDK linked from
- [https://firebase.google.com/docs/cpp/setup](https://firebase.google.com/docs/cpp/setup)
- and unzip it to a directory of your choice.
- - Configure the location of the Firebase C++ SDK by setting the
- firebase\_cpp\_sdk.dir Gradle property to the SDK install directory.
- For example, in the project directory:
- ```
- echo "systemProp.firebase\_cpp\_sdk.dir=/User/$USER/firebase\_cpp\_sdk" >> gradle.properties
- ```
- - Ensure the Android SDK and NDK locations are set in Android Studio.
- - From the Android Studio launch menu, go to `File/Project Structure...` or
- `Configure/Project Defaults/Project Structure...`
- (Shortcut: Control + Alt + Shift + S on windows, Command + ";" on a mac)
- and download the SDK and NDK if the locations are not yet set.
- - Open *build.gradle* in Android Studio.
- - From the Android Studio launch menu, "Open an existing Android Studio
- project", and select `build.gradle`.
- - Install the SDK Platforms that Android Studio reports missing.
- - Update the AdMob App ID:
- - In the `src/common_main.cc`, update `kAdMobAppID` with the app ID for
- your Android app, replacing 'YOUR_ANDROID_ADMOB_APP_ID'.
- - In the `AndroidManifest.xml`, update
- `com.google.android.gms.ads.APPLICATION_ID` with the same app ID,
- replacing 'YOUR_ANDROID_ADMOB_APP_ID'.
- - For more information, see
- [Update your AndroidManifest.xml](https://developers.google.com/admob/android/quick-start#update_your_androidmanifestxml)
- - Build the testapp and run it on an Android device or emulator.
- - The testapp will initialize AdMob, then load and display a test banner and
- a test interstitial.
- - Tapping on an ad to verify the clickthrough process is possible, and the
- interstitial will wait to be closed by the user.
- - Afterwards, the testapp will display a Rewarded Video test ad.
- - While this is happening, information from the device log will be written
- to an onscreen TextView.
- - Logcat can also be used as normal.
-
-### Desktop
- - Register your app with Firebase.
- - Create a new app on the [Firebase console](https://firebase.google.com/console/),
- following the above instructions for Android or iOS.
- - If you have an Android project, add the `google-services.json` file that
- you downloaded from the Firebase console to the root directory of the
- testapp.
- - If you have an iOS project, and don't wish to use an Android project,
- you can use the Python script `generate_xml_from_google_services_json.py --plist`,
- located in the Firebase C++ SDK, to convert your `GoogleService-Info.plist`
- file into a `google-services-desktop.json` file, which can then be
- placed in the root directory of the testapp.
- - Download the Firebase C++ SDK linked from
- [https://firebase.google.com/docs/cpp/setup](https://firebase.google.com/docs/cpp/setup)
- and unzip it to a directory of your choice.
- - Configure the testapp with the location of the Firebase C++ SDK.
- This can be done a couple different ways:
- - When invoking cmake, pass in the location with
- -DFIREBASE_CPP_SDK_DIR=/path/to/firebase_cpp_sdk.
- - Set an environment variable for FIREBASE_CPP_SDK_DIR to the path to use.
- - Edit the CMakeLists.txt file, changing the FIREBASE_CPP_SDK_DIR path
- to the appropriate location.
- - From the testapp directory, generate the build files by running,
- ```
- cmake .
- ```
- If you want to use XCode, you can use -G"Xcode" to generate the project.
- Similarly, to use Visual Studio, -G"Visual Studio 15 2017". For more
- information, see
- [CMake generators](https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html).
- - Build the testapp, by either opening the generated project file based on
- the platform, or running,
- ```
- cmake --build .
- ```
- - Execute the testapp by running,
- ```
- ./desktop_testapp
- ```
- Note that the executable might be under another directory, such as Debug.
- - The testapp has no user interface, but the output can be viewed via the
- console. Note that Admob uses a stubbed implementation on desktop,
- so functionality is not expected.
-
-Support
--------
-
-[https://firebase.google.com/support/](https://firebase.google.com/support/)
-
-License
--------
-
-Copyright 2016 Google, Inc.
-
-Licensed to the Apache Software Foundation (ASF) under one or more contributor
-license agreements. See the NOTICE file distributed with this work for
-additional information regarding copyright ownership. The ASF licenses this
-file to you 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.
diff --git a/admob/testapp/res/values/strings.xml b/admob/testapp/res/values/strings.xml
deleted file mode 100644
index 8589bd2c..00000000
--- a/admob/testapp/res/values/strings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- Firebase AdMob Test
-
diff --git a/admob/testapp/settings.gradle b/admob/testapp/settings.gradle
deleted file mode 100644
index 2a543b93..00000000
--- a/admob/testapp/settings.gradle
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2018 Google LLC
-//
-// 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.
-
-def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
-if (firebase_cpp_sdk_dir == null || firebase_cpp_sdk_dir.isEmpty()) {
- firebase_cpp_sdk_dir = System.getenv('FIREBASE_CPP_SDK_DIR')
- if (firebase_cpp_sdk_dir == null || firebase_cpp_sdk_dir.isEmpty()) {
- if ((new File('firebase_cpp_sdk')).exists()) {
- firebase_cpp_sdk_dir = 'firebase_cpp_sdk'
- } else {
- throw new StopActionException(
- 'firebase_cpp_sdk.dir property or the FIREBASE_CPP_SDK_DIR ' +
- 'environment variable must be set to reference the Firebase C++ ' +
- 'SDK install directory. This is used to configure static library ' +
- 'and C/C++ include paths for the SDK.')
- }
- }
-}
-if (!(new File(firebase_cpp_sdk_dir)).exists()) {
- throw new StopActionException(
- sprintf('Firebase C++ SDK directory %s does not exist',
- firebase_cpp_sdk_dir))
-}
-gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
-includeBuild "$firebase_cpp_sdk_dir"
\ No newline at end of file
diff --git a/admob/testapp/src/android/android_main.cc b/admob/testapp/src/android/android_main.cc
deleted file mode 100644
index 73cb30e7..00000000
--- a/admob/testapp/src/android/android_main.cc
+++ /dev/null
@@ -1,255 +0,0 @@
-// Copyright 2016 Google Inc. All rights reserved.
-//
-// 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.
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include "main.h" // NOLINT
-
-// This implementation is derived from http://github.com/google/fplutil
-
-extern "C" int common_main(int argc, const char* argv[]);
-
-static struct android_app* g_app_state = nullptr;
-static bool g_destroy_requested = false;
-static bool g_started = false;
-static bool g_restarted = false;
-static pthread_mutex_t g_started_mutex;
-
-// Handle state changes from via native app glue.
-static void OnAppCmd(struct android_app* app, int32_t cmd) {
- g_destroy_requested |= cmd == APP_CMD_DESTROY;
-}
-
-// Process events pending on the main thread.
-// Returns true when the app receives an event requesting exit.
-bool ProcessEvents(int msec) {
- struct android_poll_source* source = nullptr;
- int events;
- int looperId = ALooper_pollAll(msec, nullptr, &events,
- reinterpret_cast(&source));
- if (looperId >= 0 && source) {
- source->process(g_app_state, source);
- }
- return g_destroy_requested | g_restarted;
-}
-
-// Get the activity.
-jobject GetActivity() { return g_app_state->activity->clazz; }
-
-// Get the window context. For Android, it's a jobject pointing to the Activity.
-jobject GetWindowContext() { return g_app_state->activity->clazz; }
-
-// Find a class, attempting to load the class if it's not found.
-jclass FindClass(JNIEnv* env, jobject activity_object, const char* class_name) {
- jclass class_object = env->FindClass(class_name);
- if (env->ExceptionCheck()) {
- env->ExceptionClear();
- // If the class isn't found it's possible NativeActivity is being used by
- // the application which means the class path is set to only load system
- // classes. The following falls back to loading the class using the
- // Activity before retrieving a reference to it.
- jclass activity_class = env->FindClass("android/app/Activity");
- jmethodID activity_get_class_loader = env->GetMethodID(
- activity_class, "getClassLoader", "()Ljava/lang/ClassLoader;");
-
- jobject class_loader_object =
- env->CallObjectMethod(activity_object, activity_get_class_loader);
-
- jclass class_loader_class = env->FindClass("java/lang/ClassLoader");
- jmethodID class_loader_load_class =
- env->GetMethodID(class_loader_class, "loadClass",
- "(Ljava/lang/String;)Ljava/lang/Class;");
- jstring class_name_object = env->NewStringUTF(class_name);
-
- class_object = static_cast(env->CallObjectMethod(
- class_loader_object, class_loader_load_class, class_name_object));
-
- if (env->ExceptionCheck()) {
- env->ExceptionClear();
- class_object = nullptr;
- }
- env->DeleteLocalRef(class_name_object);
- env->DeleteLocalRef(class_loader_object);
- }
- return class_object;
-}
-
-// Vars that we need available for appending text to the log window:
-class LoggingUtilsData {
- public:
- LoggingUtilsData()
- : logging_utils_class_(nullptr),
- logging_utils_add_log_text_(0),
- logging_utils_init_log_window_(0) {}
-
- ~LoggingUtilsData() {
- JNIEnv* env = GetJniEnv();
- assert(env);
- if (logging_utils_class_) {
- env->DeleteGlobalRef(logging_utils_class_);
- }
- }
-
- void Init() {
- JNIEnv* env = GetJniEnv();
- assert(env);
-
- jclass logging_utils_class = FindClass(
- env, GetActivity(), "com/google/firebase/example/LoggingUtils");
- assert(logging_utils_class != 0);
-
- // Need to store as global references so it don't get moved during garbage
- // collection.
- logging_utils_class_ =
- static_cast(env->NewGlobalRef(logging_utils_class));
- env->DeleteLocalRef(logging_utils_class);
-
- logging_utils_init_log_window_ = env->GetStaticMethodID(
- logging_utils_class_, "initLogWindow", "(Landroid/app/Activity;)V");
- logging_utils_add_log_text_ = env->GetStaticMethodID(
- logging_utils_class_, "addLogText", "(Ljava/lang/String;)V");
-
- env->CallStaticVoidMethod(logging_utils_class_,
- logging_utils_init_log_window_, GetActivity());
- }
-
- void AppendText(const char* text) {
- if (logging_utils_class_ == 0) return; // haven't been initted yet
- JNIEnv* env = GetJniEnv();
- assert(env);
- jstring text_string = env->NewStringUTF(text);
- env->CallStaticVoidMethod(logging_utils_class_, logging_utils_add_log_text_,
- text_string);
- env->DeleteLocalRef(text_string);
- }
-
- private:
- jclass logging_utils_class_;
- jmethodID logging_utils_add_log_text_;
- jmethodID logging_utils_init_log_window_;
-};
-
-LoggingUtilsData* g_logging_utils_data;
-
-// Checks if a JNI exception has happened, and if so, logs it to the console.
-void CheckJNIException() {
- JNIEnv* env = GetJniEnv();
- if (env->ExceptionCheck()) {
- // Get the exception text.
- jthrowable exception = env->ExceptionOccurred();
- env->ExceptionClear();
-
- // Convert the exception to a string.
- jclass object_class = env->FindClass("java/lang/Object");
- jmethodID toString =
- env->GetMethodID(object_class, "toString", "()Ljava/lang/String;");
- jstring s = (jstring)env->CallObjectMethod(exception, toString);
- const char* exception_text = env->GetStringUTFChars(s, nullptr);
-
- // Log the exception text.
- __android_log_print(ANDROID_LOG_INFO, FIREBASE_TESTAPP_NAME,
- "-------------------JNI exception:");
- __android_log_print(ANDROID_LOG_INFO, FIREBASE_TESTAPP_NAME, "%s",
- exception_text);
- __android_log_print(ANDROID_LOG_INFO, FIREBASE_TESTAPP_NAME,
- "-------------------");
-
- // Also, assert fail.
- assert(false);
-
- // In the event we didn't assert fail, clean up.
- env->ReleaseStringUTFChars(s, exception_text);
- env->DeleteLocalRef(s);
- env->DeleteLocalRef(exception);
- }
-}
-
-// Log a message that can be viewed in "adb logcat".
-void LogMessage(const char* format, ...) {
- static const int kLineBufferSize = 100;
- char buffer[kLineBufferSize + 2];
-
- va_list list;
- va_start(list, format);
- int string_len = vsnprintf(buffer, kLineBufferSize, format, list);
- string_len = string_len < kLineBufferSize ? string_len : kLineBufferSize;
- // append a linebreak to the buffer:
- buffer[string_len] = '\n';
- buffer[string_len + 1] = '\0';
-
- __android_log_vprint(ANDROID_LOG_INFO, FIREBASE_TESTAPP_NAME, format, list);
- g_logging_utils_data->AppendText(buffer);
- CheckJNIException();
- va_end(list);
-}
-
-// Get the JNI environment.
-JNIEnv* GetJniEnv() {
- JavaVM* vm = g_app_state->activity->vm;
- JNIEnv* env;
- jint result = vm->AttachCurrentThread(&env, nullptr);
- return result == JNI_OK ? env : nullptr;
-}
-
-// Execute common_main(), flush pending events and finish the activity.
-extern "C" void android_main(struct android_app* state) {
- // native_app_glue spawns a new thread, calling android_main() when the
- // activity onStart() or onRestart() methods are called. This code handles
- // the case where we're re-entering this method on a different thread by
- // signalling the existing thread to exit, waiting for it to complete before
- // reinitializing the application.
- if (g_started) {
- g_restarted = true;
- // Wait for the existing thread to exit.
- pthread_mutex_lock(&g_started_mutex);
- pthread_mutex_unlock(&g_started_mutex);
- } else {
- g_started_mutex = PTHREAD_MUTEX_INITIALIZER;
- }
- pthread_mutex_lock(&g_started_mutex);
- g_started = true;
-
- // Save native app glue state and setup a callback to track the state.
- g_destroy_requested = false;
- g_app_state = state;
- g_app_state->onAppCmd = OnAppCmd;
-
- // Create the logging display.
- g_logging_utils_data = new LoggingUtilsData();
- g_logging_utils_data->Init();
-
- // Execute cross platform entry point.
- static const char* argv[] = {FIREBASE_TESTAPP_NAME};
- int return_value = common_main(1, argv);
- (void)return_value; // Ignore the return value.
- ProcessEvents(10);
-
- // Clean up logging display.
- delete g_logging_utils_data;
- g_logging_utils_data = nullptr;
-
- // Finish the activity.
- if (!g_restarted) ANativeActivity_finish(state->activity);
-
- g_app_state->activity->vm->DetachCurrentThread();
- g_started = false;
- g_restarted = false;
- pthread_mutex_unlock(&g_started_mutex);
-}
diff --git a/admob/testapp/src/android/java/com/google/firebase/example/LoggingUtils.java b/admob/testapp/src/android/java/com/google/firebase/example/LoggingUtils.java
deleted file mode 100644
index 11d67c5b..00000000
--- a/admob/testapp/src/android/java/com/google/firebase/example/LoggingUtils.java
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2016 Google Inc. All rights reserved.
-//
-// 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.
-
-package com.google.firebase.example;
-
-import android.app.Activity;
-import android.os.Handler;
-import android.os.Looper;
-import android.view.Window;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-/**
- * A utility class, encapsulating the data and methods required to log arbitrary
- * text to the screen, via a non-editable TextView.
- */
-public class LoggingUtils {
- public static TextView sTextView = null;
-
- public static void initLogWindow(Activity activity) {
- LinearLayout linearLayout = new LinearLayout(activity);
- ScrollView scrollView = new ScrollView(activity);
- TextView textView = new TextView(activity);
- textView.setTag("Logger");
- linearLayout.addView(scrollView);
- scrollView.addView(textView);
- Window window = activity.getWindow();
- window.takeSurface(null);
- window.setContentView(linearLayout);
- sTextView = textView;
- }
-
- public static void addLogText(final String text) {
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- if (sTextView != null) {
- sTextView.append(text);
- }
- }
- });
- }
-}
diff --git a/admob/testapp/src/common_main.cc b/admob/testapp/src/common_main.cc
deleted file mode 100644
index eae4f5c4..00000000
--- a/admob/testapp/src/common_main.cc
+++ /dev/null
@@ -1,359 +0,0 @@
-// Copyright 2016 Google Inc. All rights reserved.
-//
-// 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.
-
-#include "firebase/admob.h"
-#include "firebase/admob/banner_view.h"
-#include "firebase/admob/interstitial_ad.h"
-#include "firebase/admob/rewarded_video.h"
-#include "firebase/admob/types.h"
-#include "firebase/app.h"
-#include "firebase/future.h"
-
-// Thin OS abstraction layer.
-#include "main.h" // NOLINT
-
-// A simple listener that logs changes to a BannerView.
-class LoggingBannerViewListener : public firebase::admob::BannerView::Listener {
- public:
- LoggingBannerViewListener() {}
- void OnPresentationStateChanged(
- firebase::admob::BannerView* banner_view,
- firebase::admob::BannerView::PresentationState state) override {
- ::LogMessage("BannerView PresentationState has changed to %d.", state);
- }
- void OnBoundingBoxChanged(firebase::admob::BannerView* banner_view,
- firebase::admob::BoundingBox box) override {
- ::LogMessage(
- "BannerView BoundingBox has changed to (x: %d, y: %d, width: %d, "
- "height %d).",
- box.x, box.y, box.width, box.height);
- }
-};
-
-// A simple listener that logs changes to an InterstitialAd.
-class LoggingInterstitialAdListener
- : public firebase::admob::InterstitialAd::Listener {
- public:
- LoggingInterstitialAdListener() {}
- void OnPresentationStateChanged(
- firebase::admob::InterstitialAd* interstitial_ad,
- firebase::admob::InterstitialAd::PresentationState state) override {
- ::LogMessage("InterstitialAd PresentationState has changed to %d.", state);
- }
-};
-
-// A simple listener that logs changes to rewarded video state.
-class LoggingRewardedVideoListener
- : public firebase::admob::rewarded_video::Listener {
- public:
- LoggingRewardedVideoListener() {}
- void OnRewarded(firebase::admob::rewarded_video::RewardItem reward) override {
- ::LogMessage("Rewarding user with %f %s.", reward.amount,
- reward.reward_type.c_str());
- }
- void OnPresentationStateChanged(
- firebase::admob::rewarded_video::PresentationState state) override {
- ::LogMessage("Rewarded video PresentationState has changed to %d.", state);
- }
-};
-
-// The AdMob app IDs for the test app.
-#if defined(__ANDROID__)
-// If you change the AdMob app ID for your Android app, make sure to change it
-// in AndroidManifest.xml as well.
-const char* kAdMobAppID = "YOUR_ANDROID_ADMOB_APP_ID";
-#else
-// If you change the AdMob app ID for your iOS app, make sure to change the
-// value for "GADApplicationIdentifier" in your Info.plist as well.
-const char* kAdMobAppID = "YOUR_IOS_ADMOB_APP_ID";
-#endif
-
-// These ad units IDs have been created specifically for testing, and will
-// always return test ads.
-#if defined(__ANDROID__)
-const char* kBannerAdUnit = "ca-app-pub-3940256099942544/6300978111";
-const char* kInterstitialAdUnit = "ca-app-pub-3940256099942544/1033173712";
-const char* kRewardedVideoAdUnit = "ca-app-pub-3940256099942544/5224354917";
-#else
-const char* kBannerAdUnit = "ca-app-pub-3940256099942544/2934735716";
-const char* kInterstitialAdUnit = "ca-app-pub-3940256099942544/4411468910";
-const char* kRewardedVideoAdUnit = "ca-app-pub-3940256099942544/1712485313";
-#endif
-
-// Standard mobile banner size is 320x50.
-static const int kBannerWidth = 320;
-static const int kBannerHeight = 50;
-
-// Sample keywords to use in making the request.
-static const char* kKeywords[] = {"AdMob", "C++", "Fun"};
-
-// Sample test device IDs to use in making the request.
-static const char* kTestDeviceIDs[] = {"2077ef9a63d2b398840261c8221a0c9b",
- "098fe087d987c9a878965454a65654d7"};
-
-// Sample birthday value to use in making the request.
-static const int kBirthdayDay = 10;
-static const int kBirthdayMonth = 11;
-static const int kBirthdayYear = 1976;
-
-static void WaitForFutureCompletion(firebase::FutureBase future) {
- while (!ProcessEvents(1000)) {
- if (future.status() != firebase::kFutureStatusPending) {
- break;
- }
- }
-
- if (future.error() != firebase::admob::kAdMobErrorNone) {
- LogMessage("ERROR: Action failed with error code %d and message \"%s\".",
- future.error(), future.error_message());
- }
-}
-
-// Execute all methods of the C++ admob API.
-extern "C" int common_main(int argc, const char* argv[]) {
- firebase::App* app;
- LogMessage("Initializing the AdMob library.");
-
-#if defined(__ANDROID__)
- app = ::firebase::App::Create(GetJniEnv(), GetActivity());
-#else
- app = ::firebase::App::Create();
-#endif // defined(__ANDROID__)
-
- LogMessage("Created the Firebase App %x.",
- static_cast(reinterpret_cast(app)));
-
- LogMessage("Initializing the AdMob with Firebase API.");
- firebase::admob::Initialize(*app, kAdMobAppID);
-
- firebase::admob::AdRequest request;
- // If the app is aware of the user's gender, it can be added to the targeting
- // information. Otherwise, "unknown" should be used.
- request.gender = firebase::admob::kGenderUnknown;
-
- // This value allows publishers to specify whether they would like the request
- // to be treated as child-directed for purposes of the Children’s Online
- // Privacy Protection Act (COPPA).
- // See http://business.ftc.gov/privacy-and-security/childrens-privacy.
- request.tagged_for_child_directed_treatment =
- firebase::admob::kChildDirectedTreatmentStateTagged;
-
- // The user's birthday, if known. Note that months are indexed from one.
- request.birthday_day = kBirthdayDay;
- request.birthday_month = kBirthdayMonth;
- request.birthday_year = kBirthdayYear;
-
- // Additional keywords to be used in targeting.
- request.keyword_count = sizeof(kKeywords) / sizeof(kKeywords[0]);
- request.keywords = kKeywords;
-
- // "Extra" key value pairs can be added to the request as well. Typically
- // these are used when testing new features.
- static const firebase::admob::KeyValuePair kRequestExtras[] = {
- {"the_name_of_an_extra", "the_value_for_that_extra"}};
- request.extras_count = sizeof(kRequestExtras) / sizeof(kRequestExtras[0]);
- request.extras = kRequestExtras;
-
- // This example uses ad units that are specially configured to return test ads
- // for every request. When using your own ad unit IDs, however, it's important
- // to register the device IDs associated with any devices that will be used to
- // test the app. This ensures that regardless of the ad unit ID, those
- // devices will always receive test ads in compliance with AdMob policy.
- //
- // Device IDs can be obtained by checking the logcat or the Xcode log while
- // debugging. They appear as a long string of hex characters.
- request.test_device_id_count =
- sizeof(kTestDeviceIDs) / sizeof(kTestDeviceIDs[0]);
- request.test_device_ids = kTestDeviceIDs;
-
- // Create an ad size for the BannerView.
- firebase::admob::AdSize banner_ad_size;
- banner_ad_size.ad_size_type = firebase::admob::kAdSizeStandard;
- banner_ad_size.width = kBannerWidth;
- banner_ad_size.height = kBannerHeight;
-
- LogMessage("Creating the BannerView.");
- firebase::admob::BannerView* banner = new firebase::admob::BannerView();
- banner->Initialize(GetWindowContext(), kBannerAdUnit, banner_ad_size);
-
- WaitForFutureCompletion(banner->InitializeLastResult());
-
- // Set the listener.
- LoggingBannerViewListener banner_listener;
- banner->SetListener(&banner_listener);
-
- // Load the banner ad.
- LogMessage("Loading a banner ad.");
- banner->LoadAd(request);
-
- WaitForFutureCompletion(banner->LoadAdLastResult());
-
- // Make the BannerView visible.
- LogMessage("Showing the banner ad.");
- banner->Show();
-
- WaitForFutureCompletion(banner->ShowLastResult());
-
- // Move to each of the six pre-defined positions.
- LogMessage("Moving the banner ad to top-center.");
- banner->MoveTo(firebase::admob::BannerView::kPositionTop);
-
- WaitForFutureCompletion(banner->MoveToLastResult());
-
- LogMessage("Moving the banner ad to top-left.");
- banner->MoveTo(firebase::admob::BannerView::kPositionTopLeft);
-
- WaitForFutureCompletion(banner->MoveToLastResult());
-
- LogMessage("Moving the banner ad to top-right.");
- banner->MoveTo(firebase::admob::BannerView::kPositionTopRight);
-
- WaitForFutureCompletion(banner->MoveToLastResult());
-
- LogMessage("Moving the banner ad to bottom-center.");
- banner->MoveTo(firebase::admob::BannerView::kPositionBottom);
-
- WaitForFutureCompletion(banner->MoveToLastResult());
-
- LogMessage("Moving the banner ad to bottom-left.");
- banner->MoveTo(firebase::admob::BannerView::kPositionBottomLeft);
-
- WaitForFutureCompletion(banner->MoveToLastResult());
-
- LogMessage("Moving the banner ad to bottom-right.");
- banner->MoveTo(firebase::admob::BannerView::kPositionBottomRight);
-
- WaitForFutureCompletion(banner->MoveToLastResult());
-
- // Try some coordinate moves.
- LogMessage("Moving the banner ad to (100, 300).");
- banner->MoveTo(100, 300);
-
- WaitForFutureCompletion(banner->MoveToLastResult());
-
- LogMessage("Moving the banner ad to (100, 400).");
- banner->MoveTo(100, 400);
-
- WaitForFutureCompletion(banner->MoveToLastResult());
-
- // Try hiding and showing the BannerView.
- LogMessage("Hiding the banner ad.");
- banner->Hide();
-
- WaitForFutureCompletion(banner->HideLastResult());
-
- LogMessage("Showing the banner ad.");
- banner->Show();
-
- WaitForFutureCompletion(banner->ShowLastResult());
-
- // A few last moves after showing it again.
- LogMessage("Moving the banner ad to (100, 300).");
- banner->MoveTo(100, 300);
-
- WaitForFutureCompletion(banner->MoveToLastResult());
-
- LogMessage("Moving the banner ad to (100, 400).");
- banner->MoveTo(100, 400);
-
- WaitForFutureCompletion(banner->MoveToLastResult());
-
- LogMessage("Hiding the banner ad now that we're done with it.");
- banner->Hide();
-
- WaitForFutureCompletion(banner->HideLastResult());
-
- // Create and test InterstitialAd.
- LogMessage("Creating the InterstitialAd.");
- firebase::admob::InterstitialAd* interstitial =
- new firebase::admob::InterstitialAd();
- interstitial->Initialize(GetWindowContext(), kInterstitialAdUnit);
-
- WaitForFutureCompletion(interstitial->InitializeLastResult());
-
- // Set the listener.
- LoggingInterstitialAdListener interstitial_listener;
- interstitial->SetListener(&interstitial_listener);
-
- // When the InterstitialAd is initialized, load an ad.
- LogMessage("Loading an interstitial ad.");
- interstitial->LoadAd(request);
-
- WaitForFutureCompletion(interstitial->LoadAdLastResult());
-
- // When the InterstitialAd has loaded an ad, show it.
- LogMessage("Showing the interstitial ad.");
- interstitial->Show();
-
- WaitForFutureCompletion(interstitial->ShowLastResult());
-
- // Wait for the user to close the interstitial.
- while (interstitial->presentation_state() !=
- firebase::admob::InterstitialAd::PresentationState::
- kPresentationStateHidden) {
- ProcessEvents(1000);
- }
-
- // Start up rewarded video ads and associated mediation adapters.
- LogMessage("Initializing rewarded video.");
- namespace rewarded_video = firebase::admob::rewarded_video;
- rewarded_video::Initialize();
-
- WaitForFutureCompletion(rewarded_video::InitializeLastResult());
-
- LogMessage("Setting rewarded video listener.");
- LoggingRewardedVideoListener rewarded_listener;
- rewarded_video::SetListener(&rewarded_listener);
-
- LogMessage("Loading a rewarded video ad.");
- rewarded_video::LoadAd(kRewardedVideoAdUnit, request);
-
- WaitForFutureCompletion(rewarded_video::LoadAdLastResult());
-
- // If an ad has loaded, show it. If the user watches all the way through, the
- // LoggingRewardedVideoListener will log a reward!
- if (rewarded_video::LoadAdLastResult().error() ==
- firebase::admob::kAdMobErrorNone) {
- LogMessage("Showing a rewarded video ad.");
- rewarded_video::Show(GetWindowContext());
-
- WaitForFutureCompletion(rewarded_video::ShowLastResult());
-
- // Normally Pause and Resume would be called in response to the app pausing
- // or losing focus. This is just a test.
- LogMessage("Pausing.");
- rewarded_video::Pause();
-
- WaitForFutureCompletion(rewarded_video::PauseLastResult());
-
- LogMessage("Resuming.");
- rewarded_video::Resume();
-
- WaitForFutureCompletion(rewarded_video::ResumeLastResult());
- }
-
- LogMessage("Done!");
-
- // Wait until the user kills the app.
- while (!ProcessEvents(1000)) {
- }
-
- delete banner;
- delete interstitial;
- rewarded_video::Destroy();
- firebase::admob::Terminate();
- delete app;
-
- return 0;
-}
diff --git a/admob/testapp/src/desktop/desktop_main.cc b/admob/testapp/src/desktop/desktop_main.cc
deleted file mode 100644
index 0220c688..00000000
--- a/admob/testapp/src/desktop/desktop_main.cc
+++ /dev/null
@@ -1,125 +0,0 @@
-// Copyright 2016 Google Inc. All rights reserved.
-//
-// 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.
-
-#include
-#include
-#include
-
-#ifdef _WIN32
-#include
-#define chdir _chdir
-#else
-#include
-#endif // _WIN32
-
-#ifdef _WIN32
-#include
-#endif // _WIN32
-
-#include
-#include
-
-#include "main.h" // NOLINT
-
-// The TO_STRING macro is useful for command line defined strings as the quotes
-// get stripped.
-#define TO_STRING_EXPAND(X) #X
-#define TO_STRING(X) TO_STRING_EXPAND(X)
-
-// Path to the Firebase config file to load.
-#ifdef FIREBASE_CONFIG
-#define FIREBASE_CONFIG_STRING TO_STRING(FIREBASE_CONFIG)
-#else
-#define FIREBASE_CONFIG_STRING ""
-#endif // FIREBASE_CONFIG
-
-extern "C" int common_main(int argc, const char* argv[]);
-
-static bool quit = false;
-
-#ifdef _WIN32
-static BOOL WINAPI SignalHandler(DWORD event) {
- if (!(event == CTRL_C_EVENT || event == CTRL_BREAK_EVENT)) {
- return FALSE;
- }
- quit = true;
- return TRUE;
-}
-#else
-static void SignalHandler(int /* ignored */) { quit = true; }
-#endif // _WIN32
-
-bool ProcessEvents(int msec) {
-#ifdef _WIN32
- Sleep(msec);
-#else
- usleep(msec * 1000);
-#endif // _WIN32
- return quit;
-}
-
-std::string PathForResource() {
- return std::string();
-}
-
-void LogMessage(const char* format, ...) {
- va_list list;
- va_start(list, format);
- vprintf(format, list);
- va_end(list);
- printf("\n");
- fflush(stdout);
-}
-
-WindowContext GetWindowContext() { return nullptr; }
-
-// Change the current working directory to the directory containing the
-// specified file.
-void ChangeToFileDirectory(const char* file_path) {
- std::string path(file_path);
- std::replace(path.begin(), path.end(), '\\', '/');
- auto slash = path.rfind('/');
- if (slash != std::string::npos) {
- std::string directory = path.substr(0, slash);
- if (!directory.empty()) chdir(directory.c_str());
- }
-}
-
-int main(int argc, const char* argv[]) {
- ChangeToFileDirectory(
- FIREBASE_CONFIG_STRING[0] != '\0' ?
- FIREBASE_CONFIG_STRING : argv[0]); // NOLINT
-#ifdef _WIN32
- SetConsoleCtrlHandler((PHANDLER_ROUTINE)SignalHandler, TRUE);
-#else
- signal(SIGINT, SignalHandler);
-#endif // _WIN32
- return common_main(argc, argv);
-}
-
-#if defined(_WIN32)
-// Returns the number of microseconds since the epoch.
-int64_t WinGetCurrentTimeInMicroseconds() {
- FILETIME file_time;
- GetSystemTimeAsFileTime(&file_time);
-
- ULARGE_INTEGER now;
- now.LowPart = file_time.dwLowDateTime;
- now.HighPart = file_time.dwHighDateTime;
-
- // Windows file time is expressed in 100s of nanoseconds.
- // To convert to microseconds, multiply x10.
- return now.QuadPart * 10LL;
-}
-#endif
diff --git a/admob/testapp/src/ios/ios_main.mm b/admob/testapp/src/ios/ios_main.mm
deleted file mode 100644
index 6ccb2de5..00000000
--- a/admob/testapp/src/ios/ios_main.mm
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright 2016 Google Inc. All rights reserved.
-//
-// 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
-
-#include
-
-#include "main.h"
-
-extern "C" int common_main(int argc, const char* argv[]);
-
-@interface AppDelegate : UIResponder
-
-@property(nonatomic, strong) UIWindow *window;
-
-@end
-
-@interface FTAViewController : UIViewController
-
-@end
-
-static int g_exit_status = 0;
-static bool g_shutdown = false;
-static NSCondition *g_shutdown_complete;
-static NSCondition *g_shutdown_signal;
-static UITextView *g_text_view;
-static UIView *g_parent_view;
-
-@implementation FTAViewController
-
-- (void)viewDidLoad {
- [super viewDidLoad];
- g_parent_view = self.view;
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
- const char *argv[] = {FIREBASE_TESTAPP_NAME};
- [g_shutdown_signal lock];
- g_exit_status = common_main(1, argv);
- [g_shutdown_complete signal];
- });
-}
-
-@end
-
-bool ProcessEvents(int msec) {
- [g_shutdown_signal
- waitUntilDate:[NSDate dateWithTimeIntervalSinceNow:static_cast(msec) / 1000.0f]];
- return g_shutdown;
-}
-
-WindowContext GetWindowContext() {
- return g_parent_view;
-}
-
-// Log a message that can be viewed in the console.
-void LogMessage(const char* format, ...) {
- va_list args;
- NSString *formatString = @(format);
-
- va_start(args, format);
- NSString *message = [[NSString alloc] initWithFormat:formatString arguments:args];
- va_end(args);
-
- NSLog(@"%@", message);
- message = [message stringByAppendingString:@"\n"];
-
- dispatch_async(dispatch_get_main_queue(), ^{
- g_text_view.text = [g_text_view.text stringByAppendingString:message];
- });
-}
-
-int main(int argc, char* argv[]) {
- @autoreleasepool {
- UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
- return g_exit_status;
-}
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication*)application
- didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
- g_shutdown_complete = [[NSCondition alloc] init];
- g_shutdown_signal = [[NSCondition alloc] init];
- [g_shutdown_complete lock];
-
- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
- FTAViewController *viewController = [[FTAViewController alloc] init];
- self.window.rootViewController = viewController;
- [self.window makeKeyAndVisible];
-
- g_text_view = [[UITextView alloc] initWithFrame:viewController.view.bounds];
-
- g_text_view.editable = NO;
- g_text_view.scrollEnabled = YES;
- g_text_view.userInteractionEnabled = YES;
-
- [viewController.view addSubview:g_text_view];
-
- return YES;
-}
-
-- (void)applicationWillTerminate:(UIApplication *)application {
- g_shutdown = true;
- [g_shutdown_signal signal];
- [g_shutdown_complete wait];
-}
-
-@end
diff --git a/admob/testapp/src/main.h b/admob/testapp/src/main.h
deleted file mode 100644
index 2eda2c10..00000000
--- a/admob/testapp/src/main.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2016 Google Inc. All rights reserved.
-//
-// 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.
-
-#ifndef FIREBASE_TESTAPP_MAIN_H_ // NOLINT
-#define FIREBASE_TESTAPP_MAIN_H_ // NOLINT
-
-#if defined(__ANDROID__)
-#include
-#include
-#elif defined(__APPLE__)
-extern "C" {
-#include
-} // extern "C"
-#endif // __ANDROID__
-
-// Defined using -DANDROID_MAIN_APP_NAME=some_app_name when compiling this
-// file.
-#ifndef FIREBASE_TESTAPP_NAME
-#define FIREBASE_TESTAPP_NAME "android_main"
-#endif // FIREBASE_TESTAPP_NAME
-
-// Cross platform logging method.
-// Implemented by android/android_main.cc or ios/ios_main.mm.
-extern "C" void LogMessage(const char* format, ...);
-
-// Platform-independent method to flush pending events for the main thread.
-// Returns true when an event requesting program-exit is received.
-bool ProcessEvents(int msec);
-
-// WindowContext represents the handle to the parent window. It's type
-// (and usage) vary based on the OS.
-#if defined(__ANDROID__)
-typedef jobject WindowContext; // A jobject to the Java Activity.
-#elif defined(__APPLE__)
-typedef id WindowContext; // A pointer to an iOS UIView.
-#else
-typedef void* WindowContext; // A void* for any other environments.
-#endif
-
-#if defined(__ANDROID__)
-// Get the JNI environment.
-JNIEnv* GetJniEnv();
-// Get the activity.
-jobject GetActivity();
-#endif // defined(__ANDROID__)
-
-// Returns a variable that describes the window context for the app. On Android
-// this will be a jobject pointing to the Activity. On iOS, it's an id pointing
-// to the root view of the view controller.
-WindowContext GetWindowContext();
-
-#endif // FIREBASE_TESTAPP_MAIN_H_ // NOLINT
diff --git a/admob/testapp/testapp.xcodeproj/project.pbxproj b/admob/testapp/testapp.xcodeproj/project.pbxproj
deleted file mode 100644
index 14a0af7f..00000000
--- a/admob/testapp/testapp.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,312 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 4A7C015A1CEAA2480011C504 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4A7C01591CEAA2480011C504 /* Images.xcassets */; };
- 520BC0391C869159008CFBC3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 520BC0381C869159008CFBC3 /* GoogleService-Info.plist */; };
- 529226D61C85F68000C89379 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 529226D51C85F68000C89379 /* Foundation.framework */; };
- 529226D81C85F68000C89379 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 529226D71C85F68000C89379 /* CoreGraphics.framework */; };
- 529226DA1C85F68000C89379 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 529226D91C85F68000C89379 /* UIKit.framework */; };
- 529227211C85FB6A00C89379 /* common_main.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5292271F1C85FB6A00C89379 /* common_main.cc */; };
- 529227241C85FB7600C89379 /* ios_main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 529227221C85FB7600C89379 /* ios_main.mm */; };
- D66B16871CE46E8900E5638A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D66B16861CE46E8900E5638A /* LaunchScreen.storyboard */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
- 4A7C01591CEAA2480011C504 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = testapp/Images.xcassets; sourceTree = ""; };
- 520BC0381C869159008CFBC3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; };
- 529226D21C85F68000C89379 /* testapp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testapp.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 529226D51C85F68000C89379 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 529226D71C85F68000C89379 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- 529226D91C85F68000C89379 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- 529226EE1C85F68000C89379 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
- 5292271F1C85FB6A00C89379 /* common_main.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = common_main.cc; path = src/common_main.cc; sourceTree = ""; };
- 529227201C85FB6A00C89379 /* main.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = main.h; path = src/main.h; sourceTree = ""; };
- 529227221C85FB7600C89379 /* ios_main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ios_main.mm; path = src/ios/ios_main.mm; sourceTree = ""; };
- 52FD1FF81C85FFA000BC68E3 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = testapp/Info.plist; sourceTree = ""; };
- D66B16861CE46E8900E5638A /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 529226CF1C85F68000C89379 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 529226D81C85F68000C89379 /* CoreGraphics.framework in Frameworks */,
- 529226DA1C85F68000C89379 /* UIKit.framework in Frameworks */,
- 529226D61C85F68000C89379 /* Foundation.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 529226C91C85F68000C89379 = {
- isa = PBXGroup;
- children = (
- 4A7C01591CEAA2480011C504 /* Images.xcassets */,
- D66B16861CE46E8900E5638A /* LaunchScreen.storyboard */,
- 520BC0381C869159008CFBC3 /* GoogleService-Info.plist */,
- 52FD1FF81C85FFA000BC68E3 /* Info.plist */,
- 5292271D1C85FB5500C89379 /* src */,
- 529226D41C85F68000C89379 /* Frameworks */,
- 529226D31C85F68000C89379 /* Products */,
- );
- sourceTree = "";
- };
- 529226D31C85F68000C89379 /* Products */ = {
- isa = PBXGroup;
- children = (
- 529226D21C85F68000C89379 /* testapp.app */,
- );
- name = Products;
- sourceTree = "";
- };
- 529226D41C85F68000C89379 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 529226D51C85F68000C89379 /* Foundation.framework */,
- 529226D71C85F68000C89379 /* CoreGraphics.framework */,
- 529226D91C85F68000C89379 /* UIKit.framework */,
- 529226EE1C85F68000C89379 /* XCTest.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- 5292271D1C85FB5500C89379 /* src */ = {
- isa = PBXGroup;
- children = (
- 5292271F1C85FB6A00C89379 /* common_main.cc */,
- 529227201C85FB6A00C89379 /* main.h */,
- 5292271E1C85FB5B00C89379 /* ios */,
- );
- name = src;
- sourceTree = "";
- };
- 5292271E1C85FB5B00C89379 /* ios */ = {
- isa = PBXGroup;
- children = (
- 529227221C85FB7600C89379 /* ios_main.mm */,
- );
- name = ios;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 529226D11C85F68000C89379 /* testapp */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 529226F91C85F68000C89379 /* Build configuration list for PBXNativeTarget "testapp" */;
- buildPhases = (
- 529226CE1C85F68000C89379 /* Sources */,
- 529226CF1C85F68000C89379 /* Frameworks */,
- 529226D01C85F68000C89379 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = testapp;
- productName = testapp;
- productReference = 529226D21C85F68000C89379 /* testapp.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 529226CA1C85F68000C89379 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0640;
- ORGANIZATIONNAME = Google;
- TargetAttributes = {
- 529226D11C85F68000C89379 = {
- CreatedOnToolsVersion = 6.4;
- };
- };
- };
- buildConfigurationList = 529226CD1C85F68000C89379 /* Build configuration list for PBXProject "testapp" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- );
- mainGroup = 529226C91C85F68000C89379;
- productRefGroup = 529226D31C85F68000C89379 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 529226D11C85F68000C89379 /* testapp */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 529226D01C85F68000C89379 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D66B16871CE46E8900E5638A /* LaunchScreen.storyboard in Resources */,
- 4A7C015A1CEAA2480011C504 /* Images.xcassets in Resources */,
- 520BC0391C869159008CFBC3 /* GoogleService-Info.plist in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 529226CE1C85F68000C89379 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 529227241C85FB7600C89379 /* ios_main.mm in Sources */,
- 529227211C85FB6A00C89379 /* common_main.cc in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 529226F71C85F68000C89379 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
- 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 = 8.4;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Debug;
- };
- 529226F81C85F68000C89379 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- 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 = 8.4;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- 529226FA1C85F68000C89379 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
- "\"$(SRCROOT)/src\"",
- );
- INFOPLIST_FILE = testapp/Info.plist;
- PRODUCT_NAME = "$(TARGET_NAME)";
- WRAPPER_EXTENSION = app;
- };
- name = Debug;
- };
- 529226FB1C85F68000C89379 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- HEADER_SEARCH_PATHS = (
- "$(inherited)",
- /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
- "\"$(SRCROOT)/src\"",
- );
- INFOPLIST_FILE = testapp/Info.plist;
- PRODUCT_NAME = "$(TARGET_NAME)";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 529226CD1C85F68000C89379 /* Build configuration list for PBXProject "testapp" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 529226F71C85F68000C89379 /* Debug */,
- 529226F81C85F68000C89379 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 529226F91C85F68000C89379 /* Build configuration list for PBXNativeTarget "testapp" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 529226FA1C85F68000C89379 /* Debug */,
- 529226FB1C85F68000C89379 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 529226CA1C85F68000C89379 /* Project object */;
-}
diff --git a/admob/testapp/testapp/Images.xcassets/AppIcon.appiconset/Contents.json b/admob/testapp/testapp/Images.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index eeea76c2..00000000
--- a/admob/testapp/testapp/Images.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "images" : [
- {
- "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" : "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"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/admob/testapp/testapp/Images.xcassets/LaunchImage.launchimage/Contents.json b/admob/testapp/testapp/Images.xcassets/LaunchImage.launchimage/Contents.json
deleted file mode 100644
index a0ad363c..00000000
--- a/admob/testapp/testapp/Images.xcassets/LaunchImage.launchimage/Contents.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "images" : [
- {
- "orientation" : "portrait",
- "idiom" : "ipad",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "1x"
- },
- {
- "orientation" : "landscape",
- "idiom" : "ipad",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "1x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "ipad",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- },
- {
- "orientation" : "landscape",
- "idiom" : "ipad",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/admob/testapp/testapp/Info.plist b/admob/testapp/testapp/Info.plist
deleted file mode 100644
index 3f0f944e..00000000
--- a/admob/testapp/testapp/Info.plist
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- GADApplicationIdentifier
- YOUR_IOS_ADMOB_APP_ID
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- com.google.ios.admob.testapp
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleVersion
- 1
- LSRequiresIPhoneOS
-
- UILaunchStoryboardName
- LaunchScreen
-
-
diff --git a/scripts/build_scripts/build_testapps.json b/scripts/build_scripts/build_testapps.json
index 7dc1d078..5b5ef2d1 100644
--- a/scripts/build_scripts/build_testapps.json
+++ b/scripts/build_scripts/build_testapps.json
@@ -1,18 +1,5 @@
{
"apis": [
- {
- "name": "admob",
- "full_name": "FirebaseAdmob",
- "bundle_id": "com.google.ios.admob.testapp",
- "ios_target": "testapp",
- "tvos_target": "",
- "testapp_path": "admob/testapp",
- "frameworks": [
- "firebase_admob.xcframework",
- "firebase.xcframework"
- ],
- "provision": "Google_Development.mobileprovision"
- },
{
"name": "analytics",
"full_name": "FirebaseAnalytics",
diff --git a/scripts/build_scripts/config_reader.py b/scripts/build_scripts/config_reader.py
index a24f5d7a..8979d5c3 100644
--- a/scripts/build_scripts/config_reader.py
+++ b/scripts/build_scripts/config_reader.py
@@ -37,19 +37,6 @@
"firebase.framework"
],
"provision": "Google_Development.mobileprovision"
- },
- {
- "name": "admob",
- "full_name": "FirebaseAdmob",
- "bundle_id": "com.google.ios.admob.testapp",
- "ios_target": "testapp",
- "tvos_target": "",
- "testapp_path": "admob/testapp",
- "frameworks": [
- "firebase_admob.framework",
- "firebase.framework"
- ],
- "provision": "Google_Development.mobileprovision"
}
],
"dev_team": "ABCDEFGHIJK"
diff --git a/scripts/gha-encrypted/admob/GoogleService-Info.plist.gpg b/scripts/gha-encrypted/admob/GoogleService-Info.plist.gpg
deleted file mode 100644
index 7a8dd56b..00000000
Binary files a/scripts/gha-encrypted/admob/GoogleService-Info.plist.gpg and /dev/null differ
diff --git a/scripts/gha-encrypted/admob/google-services.json.gpg b/scripts/gha-encrypted/admob/google-services.json.gpg
deleted file mode 100644
index b62f63cb..00000000
Binary files a/scripts/gha-encrypted/admob/google-services.json.gpg and /dev/null differ