Files
firebase-ios-sdk/scripts/zip/zip_quickstart_test.sh

63 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright 2022 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.
# Build the quickstart. If we're running on the main repo (not a fork), we
# also run the tests along with the decoded GoogleService-Info.plist files.
set -eo pipefail
set -x
EXIT_STATUS=0
cd "${SAMPLE}"
xcode_version=$(xcodebuild -version | grep Xcode)
xcode_version="${xcode_version/Xcode /}"
xcode_major="${xcode_version/.*/}"
os="$xcode_version"
device_name="iPhone 17 Pro"
# Define project and, if needed, scheme.
PROJECT_NAME="${SAMPLE}Example.xcodeproj"
SCHEME_NAME="${SCHEME}"
if [[ -z "$SCHEME_NAME" ]]; then
SCHEME_NAME="${SAMPLE}Example"
echo "Defaulting scheme name to $SCHEME_NAME"
fi
# Check if the scheme exists before attempting to build.
# The `awk` command prints all lines from "Schemes:" to the end of the output.
if ! xcodebuild -list -project "${PROJECT_NAME}" | awk '/Schemes:/,0' | grep -q "^\s*${SCHEME_NAME}"$; then
echo "Error: Scheme '${SCHEME_NAME}' not found in project '${PROJECT_NAME}'."
echo "Available schemes from '${PROJECT_NAME}':"
xcodebuild -list -project "${PROJECT_NAME}"
exit 65
fi
(
xcodebuild \
-project ${PROJECT_NAME} \
-scheme "${SCHEME_NAME}" \
-destination "platform=iOS Simulator,OS=$os,name=$device_name" "SWIFT_VERSION=5.3" "OTHER_LDFLAGS=\$(OTHER_LDFLAGS) -ObjC" "FRAMEWORK_SEARCH_PATHS= \$(PROJECT_DIR)/Firebase/" HEADER_SEARCH_PATHS='$(inherited) $(PROJECT_DIR)/Firebase' \
build \
) || EXIT_STATUS=$?
exit $EXIT_STATUS