mirror of
https://github.com/material-components/material-components-ios.git
synced 2026-01-15 01:02:22 +08:00
To make it clearer which `scripts` files are executable and which only provide libraries of functions, the two library scripts are being moved to a separate directory.
59 lines
1.9 KiB
Bash
Executable File
59 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright 2018-present The Material Components for iOS Authors. 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.
|
|
|
|
version_as_number() {
|
|
padded_version="${1%.}" # Strip any trailing dots
|
|
# Pad with .0 until we get a M.m.p version string.
|
|
while [ $(grep -o "\." <<< "$padded_version" | wc -l) -lt "2" ]; do
|
|
padded_version=${padded_version}.0
|
|
done
|
|
echo "${padded_version//.}"
|
|
}
|
|
|
|
# xcode-select's the provided xcode version.
|
|
# Usage example:
|
|
# select_xcode 9.2.0
|
|
select_xcode() {
|
|
desired_version="$1"
|
|
if [ -z "$desired_version" ]; then
|
|
return # No Xcode version to select.
|
|
fi
|
|
|
|
xcodes=$(ls /Applications/ | grep "Xcode")
|
|
for xcode_path in $xcodes; do
|
|
xcode_version=$(cat /Applications/$xcode_path/Contents/version.plist \
|
|
| grep "CFBundleShortVersionString" -A1 \
|
|
| grep string \
|
|
| cut -d'>' -f2 \
|
|
| cut -d'<' -f1)
|
|
xcode_version_as_number="$(version_as_number $xcode_version)"
|
|
|
|
if [ "$xcode_version_as_number" -ne "$(version_as_number $desired_version)" ]; then
|
|
continue
|
|
fi
|
|
|
|
sudo xcode-select --switch /Applications/$xcode_path/Contents/Developer
|
|
xcodebuild -version
|
|
|
|
# Resolves the following crash when switching Xcode versions:
|
|
# "Failed to locate a valid instance of CoreSimulatorService in the bootstrap"
|
|
launchctl remove com.apple.CoreSimulator.CoreSimulatorService || true
|
|
|
|
break
|
|
done
|
|
}
|
|
|