-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpackage_release.sh
More file actions
executable file
·65 lines (53 loc) · 1.82 KB
/
Copy pathpackage_release.sh
File metadata and controls
executable file
·65 lines (53 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/zsh
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
APP_NAME="iOS模拟器管理.app"
APP_PATH="$ROOT_DIR/build/$APP_NAME"
ZIP_PATH="$ROOT_DIR/assets/newVersion/iOS模拟器管理.zip"
INSTALL_APP_PATH="/Applications/iOS模拟器管理.app"
PACKAGE_DIR="$(mktemp -d /tmp/iOSSimulatorManagerPackage.XXXXXX)"
ARCHIVE_PATH="$PACKAGE_DIR/iOSSimulatorManager.xcarchive"
ARCHIVED_APP_PATH="$ARCHIVE_PATH/Products/Applications/$APP_NAME"
cleanup() {
rm -rf "$PACKAGE_DIR"
}
trap cleanup EXIT
cd "$ROOT_DIR"
xcodebuild \
-project iOSSimulatorManager.xcodeproj \
-scheme iOSSimulatorManager \
-configuration Release \
-destination "generic/platform=macOS" \
-archivePath "$ARCHIVE_PATH" \
archive
if [[ ! -d "$ARCHIVED_APP_PATH" ]]; then
echo "Archived app not found: $ARCHIVED_APP_PATH" >&2
exit 1
fi
codesign --verify --deep --strict "$ARCHIVED_APP_PATH"
mkdir -p "${APP_PATH:h}" "${ZIP_PATH:h}"
REPO_APP_TEMP="${APP_PATH}.tmp.$$"
rm -rf "$REPO_APP_TEMP"
ditto "$ARCHIVED_APP_PATH" "$REPO_APP_TEMP"
rm -rf "$APP_PATH"
mv "$REPO_APP_TEMP" "$APP_PATH"
ZIP_TEMP="$PACKAGE_DIR/iOS模拟器管理.zip"
ditto -c -k --sequesterRsrc --keepParent "$ARCHIVED_APP_PATH" "$ZIP_TEMP"
mv -f "$ZIP_TEMP" "$ZIP_PATH"
INSTALL_APP_TEMP="${INSTALL_APP_PATH}.tmp.$$"
if [[ -w "/Applications" ]]; then
rm -rf "$INSTALL_APP_TEMP"
ditto "$ARCHIVED_APP_PATH" "$INSTALL_APP_TEMP"
rm -rf "$INSTALL_APP_PATH"
mv "$INSTALL_APP_TEMP" "$INSTALL_APP_PATH"
else
sudo rm -rf "$INSTALL_APP_TEMP"
sudo ditto "$ARCHIVED_APP_PATH" "$INSTALL_APP_TEMP"
sudo rm -rf "$INSTALL_APP_PATH"
sudo mv "$INSTALL_APP_TEMP" "$INSTALL_APP_PATH"
fi
codesign --verify --deep --strict "$APP_PATH"
codesign --verify --deep --strict "$INSTALL_APP_PATH"
echo "Repository app: $APP_PATH"
echo "Repository zip: $ZIP_PATH"
echo "Installed app: $INSTALL_APP_PATH"