mirror of
https://github.com/morgan9e/macos-stats
synced 2026-04-14 00:04:15 +09:00
132 lines
3.8 KiB
Makefile
132 lines
3.8 KiB
Makefile
APP = Stats
|
|
BUNDLE_ID = eu.exelban.$(APP)
|
|
|
|
BUILD_PATH = $(PWD)/build
|
|
APP_PATH = "$(BUILD_PATH)/$(APP).app"
|
|
ZIP_PATH = "$(BUILD_PATH)/$(APP).zip"
|
|
|
|
.SILENT: archive notarize sign prepare-dmg prepare-dSYM clean next-version check history disk smc
|
|
.PHONY: build archive notarize sign prepare-dmg prepare-dSYM clean next-version check history open smc
|
|
|
|
build: clean next-version archive notarize sign prepare-dmg prepare-dSYM open
|
|
|
|
# --- MAIN WORLFLOW FUNCTIONS --- #
|
|
|
|
archive: clean
|
|
osascript -e 'display notification "Exporting application archive..." with title "Build the Stats"'
|
|
echo "Exporting application archive..."
|
|
|
|
xcodebuild \
|
|
-scheme $(APP) \
|
|
-destination 'platform=OS X,arch=x86_64' \
|
|
-configuration Release archive \
|
|
-archivePath $(BUILD_PATH)/$(APP).xcarchive
|
|
|
|
echo "Application built, starting the export archive..."
|
|
|
|
xcodebuild -exportArchive \
|
|
-exportOptionsPlist "$(PWD)/exportOptions.plist" \
|
|
-archivePath $(BUILD_PATH)/$(APP).xcarchive \
|
|
-exportPath $(BUILD_PATH)
|
|
|
|
ditto -c -k --keepParent $(APP_PATH) $(ZIP_PATH)
|
|
|
|
echo "Project archived successfully"
|
|
|
|
notarize:
|
|
osascript -e 'display notification "Submitting app for notarization..." with title "Build the Stats"'
|
|
echo "Submitting app for notarization..."
|
|
|
|
xcrun altool --notarize-app \
|
|
--primary-bundle-id $(BUNDLE_ID)\
|
|
-itc_provider $(AC_PROVIDER) \
|
|
-u $(AC_USERNAME) \
|
|
-p @keychain:AC_PASSWORD \
|
|
--file $(ZIP_PATH)
|
|
|
|
echo "Application sent to the notarization center"
|
|
|
|
sleep 30s
|
|
|
|
LAST_REQUEST="test"
|
|
|
|
sign:
|
|
osascript -e 'display notification "Checking if package is approved by Apple..." with title "Build the Stats"'
|
|
echo "Checking if package is approved by Apple..."
|
|
|
|
while true; do \
|
|
if [[ "$$(xcrun altool --notarization-history 0 -itc_provider $(AC_PROVIDER) -u $(AC_USERNAME) -p @keychain:AC_PASSWORD | sed -n '6p')" == *"success"* ]]; then \
|
|
echo "OK" ;\
|
|
break ;\
|
|
fi ;\
|
|
echo "Package was not approved by Apple, recheck in 10s..."; \
|
|
sleep 10s ;\
|
|
done
|
|
|
|
echo "Going to staple an application..."
|
|
|
|
xcrun stapler staple $(APP_PATH)
|
|
spctl -a -t exec -vvv $(APP_PATH)
|
|
|
|
osascript -e 'display notification "Stats successfully stapled" with title "Build the Stats"'
|
|
echo "Stats successfully stapled"
|
|
|
|
prepare-dmg:
|
|
if [ ! -d $(PWD)/create-dmg ]; then \
|
|
git clone https://github.com/andreyvit/create-dmg; \
|
|
fi
|
|
|
|
./create-dmg/create-dmg \
|
|
--volname $(APP) \
|
|
--background "./Stats/Supporting Files/background.png" \
|
|
--window-pos 200 120 \
|
|
--window-size 500 320 \
|
|
--icon-size 80 \
|
|
--icon "Stats.app" 125 175 \
|
|
--hide-extension "Stats.app" \
|
|
--app-drop-link 375 175 \
|
|
$(PWD)/$(APP).dmg \
|
|
$(APP_PATH)
|
|
|
|
rm -rf ./create-dmg
|
|
|
|
prepare-dSYM:
|
|
echo "Zipping dSYMs..."
|
|
cd $(BUILD_PATH)/Stats.xcarchive/dSYMs && zip -r $(PWD)/dSYMs.zip .
|
|
echo "Created zip with dSYMs"
|
|
|
|
# --- HELPERS --- #
|
|
|
|
clean:
|
|
rm -rf $(BUILD_PATH)
|
|
if [ -a $(PWD)/dSYMs.zip ]; then rm $(PWD)/dSYMs.zip; fi;
|
|
if [ -a $(PWD)/Stats.dmg ]; then rm $(PWD)/Stats.dmg; fi;
|
|
|
|
next-version:
|
|
versionNumber=$$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$(PWD)/Stats/Supporting Files/Info.plist") ;\
|
|
echo "Actual version is: $$versionNumber" ;\
|
|
versionNumber=$$((versionNumber + 1)) ;\
|
|
echo "Next version is: $$versionNumber" ;\
|
|
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $$versionNumber" "$(PWD)/Stats/Supporting Files/Info.plist" ;\
|
|
|
|
check:
|
|
xcrun altool \
|
|
--notarization-info 36ba52a7-97bb-43e7-8faf-72bd6e9e1df3 \
|
|
-itc_provider $(AC_PROVIDER) \
|
|
-u $(AC_USERNAME) \
|
|
-p @keychain:AC_PASSWORD
|
|
|
|
history:
|
|
xcrun altool --notarization-history 0 \
|
|
-itc_provider $(AC_PROVIDER) \
|
|
-u $(AC_USERNAME) \
|
|
-p @keychain:AC_PASSWORD
|
|
|
|
open:
|
|
osascript -e 'display notification "Stats signed and ready for distribution" with title "Build the Stats"'
|
|
echo "Opening working folder..."
|
|
open $(PWD)
|
|
|
|
smc:
|
|
$(MAKE) --directory=./smc
|
|
open $(PWD)/smc
|