54 lines
2.3 KiB
Bash
Executable File
54 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Baut BVGNearby + Widget, signiert mit ldid (AppSync) und installiert aufs iPhone.
|
|
# ./deploy.sh normal
|
|
# NO_WIDGET=1 ./deploy.sh ohne Widget/App Group (falls das Widget Probleme macht)
|
|
set -e
|
|
cd "$(dirname "$0")"
|
|
|
|
python3 BVGNearby/check_methods.py BVGNearby
|
|
|
|
# 1) App bauen
|
|
xcodebuild -project BVGNearby.xcodeproj -scheme BVGNearby -configuration Debug \
|
|
-destination 'generic/platform=iOS' -derivedDataPath build \
|
|
CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO INFOPLIST_KEY_UIMainStoryboardFile= \
|
|
-quiet build
|
|
|
|
APP=build/Build/Products/Debug-iphoneos/BVGNearby.app
|
|
PB=/usr/libexec/PlistBuddy
|
|
plutil -remove UIMainStoryboardFile "$APP/Info.plist" 2>/dev/null || true
|
|
|
|
# URL-Schema bvgnearby:// (Widget oeffnet damit Haltestellen in der App)
|
|
$PB -c "Delete :CFBundleURLTypes" "$APP/Info.plist" 2>/dev/null || true
|
|
$PB -c "Add :CFBundleURLTypes array" \
|
|
-c "Add :CFBundleURLTypes:0 dict" \
|
|
-c "Add :CFBundleURLTypes:0:CFBundleURLName string com.serverlele.BVGNearby" \
|
|
-c "Add :CFBundleURLTypes:0:CFBundleURLSchemes array" \
|
|
-c "Add :CFBundleURLTypes:0:CFBundleURLSchemes:0 string bvgnearby" "$APP/Info.plist"
|
|
|
|
# 2) Widget bauen (ohne Xcode-Target, direkt mit clang)
|
|
rm -rf "$APP/PlugIns"
|
|
if [ -z "$NO_WIDGET" ]; then
|
|
APPEX="$APP/PlugIns/BVGWidget.appex"
|
|
mkdir -p "$APPEX"
|
|
xcrun -sdk iphoneos clang -arch armv7 -arch arm64 -miphoneos-version-min=9.0 \
|
|
-fobjc-arc -fmodules -fapplication-extension -e _NSExtensionMain \
|
|
-framework Foundation -framework UIKit -framework NotificationCenter -framework CoreLocation \
|
|
Widget/TodayViewController.m -o "$APPEX/BVGWidget"
|
|
cp Widget/Info.plist "$APPEX/Info.plist"
|
|
# Versionsnummern muessen zur App passen
|
|
V=$($PB -c "Print CFBundleShortVersionString" "$APP/Info.plist")
|
|
B=$($PB -c "Print CFBundleVersion" "$APP/Info.plist")
|
|
$PB -c "Set :CFBundleShortVersionString $V" -c "Set :CFBundleVersion $B" "$APPEX/Info.plist"
|
|
plutil -convert binary1 "$APPEX/Info.plist"
|
|
ldid -SWidget/widget.entitlements "$APPEX/BVGWidget"
|
|
ldid -SWidget/app.entitlements "$APP/BVGNearby"
|
|
else
|
|
ldid -S "$APP/BVGNearby"
|
|
fi
|
|
|
|
# 3) Paket bauen und installieren
|
|
rm -rf build/Payload build/BVGNearby.ipa
|
|
mkdir build/Payload && cp -r "$APP" build/Payload/
|
|
(cd build && zip -qr BVGNearby.ipa Payload)
|
|
ideviceinstaller install build/BVGNearby.ipa
|