Files
sing-box-for-apple/Makefile
T
2026-01-05 14:06:57 +08:00

101 lines
4.2 KiB
Makefile

build_all: build_ios build_macos build_tvos
build_ios:
xcodebuild build -scheme SFI -configuration Debug -destination 'generic/platform=iOS' | xcbeautify | grep -A 10 -e "Build Succeeded" -e "BUILD FAILED" -e "❌"
build_macos:
xcodebuild build -scheme SFM -configuration Debug -destination 'generic/platform=macOS' | xcbeautify | grep -A 10 -e "Build Succeeded" -e "BUILD FAILED" -e "❌"
build_tvos:
xcodebuild build -scheme SFT -configuration Debug -destination 'generic/platform=tvOS' | xcbeautify | grep -A 10 -e "Build Succeeded" -e "BUILD FAILED" -e "❌"
release: release_ios release_macos release_tvos
release_ios: archive_ios upload_ios
archive_ios:
rm -rf build/SFI.xcarchive
xcodebuild archive -scheme SFI -configuration Release -destination 'generic/platform=iOS' -archivePath build/SFI.xcarchive -allowProvisioningUpdates | xcbeautify | grep -A 10 -e "Archive Succeeded" -e "ARCHIVE FAILED" -e "❌"
upload_ios:
xcodebuild -exportArchive -archivePath build/SFI.xcarchive -exportOptionsPlist SFI/Upload.plist -allowProvisioningUpdates
release_macos: archive_macos upload_macos
archive_macos:
rm -rf build/SFM.xcarchive
xcodebuild archive -scheme SFM -configuration Release -archivePath build/SFM.xcarchive -allowProvisioningUpdates | xcbeautify | grep -A 10 -e "Archive Succeeded" -e "ARCHIVE FAILED" -e "❌"
upload_macos:
xcodebuild -exportArchive -archivePath build/SFM.xcarchive -exportOptionsPlist SFI/Upload.plist -allowProvisioningUpdates
release_tvos: archive_tvos upload_tvos
archive_tvos:
rm -rf build/SFT.xcarchive
xcodebuild archive -scheme SFT -configuration Release -archivePath build/SFT.xcarchive -allowProvisioningUpdates | xcbeautify | grep -A 10 -e "Archive Succeeded" -e "ARCHIVE FAILED" -e "❌"
upload_tvos:
xcodebuild -exportArchive -archivePath build/SFT.xcarchive -exportOptionsPlist SFI/Upload.plist -allowProvisioningUpdates
release_macos_standalone: build_macos_dmg notarize_macos_dmg
build_macos_standalone:
rm -rf build/SFM.System-arm64.xcarchive build/SFM.System-x86_64.xcarchive
xcodebuild archive -scheme SFM.System -configuration Release -archivePath build/SFM.System-arm64.xcarchive ARCHS=arm64 -allowProvisioningUpdates | xcbeautify | grep -A 10 -e "Archive Succeeded" -e "ARCHIVE FAILED" -e "❌"
xcodebuild archive -scheme SFM.System -configuration Release -archivePath build/SFM.System-x86_64.xcarchive ARCHS=x86_64 -allowProvisioningUpdates | xcbeautify | grep -A 10 -e "Archive Succeeded" -e "ARCHIVE FAILED" -e "❌"
build_macos_dmg: build_macos_standalone
rm -rf build/SFM.System-arm64 build/SFM.System-x86_64
xcodebuild -exportArchive -archivePath build/SFM.System-arm64.xcarchive -exportOptionsPlist SFM.System/Export.plist -exportPath build/SFM.System-arm64 -allowProvisioningUpdates
xcodebuild -exportArchive -archivePath build/SFM.System-x86_64.xcarchive -exportOptionsPlist SFM.System/Export.plist -exportPath build/SFM.System-x86_64 -allowProvisioningUpdates
rm -rf build/SFM-arm64.dmg build/SFM-x86_64.dmg
create-dmg \
--volname "sing-box" \
--volicon "build/SFM.System-arm64/SFM.app/Contents/Resources/AppIcon.icns" \
--icon "SFM.app" 0 0 \
--hide-extension "SFM.app" \
--app-drop-link 0 0 \
--skip-jenkins \
"build/SFM-arm64.dmg" "build/SFM.System-arm64/SFM.app"
create-dmg \
--volname "sing-box" \
--volicon "build/SFM.System-x86_64/SFM.app/Contents/Resources/AppIcon.icns" \
--icon "SFM.app" 0 0 \
--hide-extension "SFM.app" \
--app-drop-link 0 0 \
--skip-jenkins \
"build/SFM-x86_64.dmg" "build/SFM.System-x86_64/SFM.app"
notarize_macos_dmg:
xcrun notarytool submit "build/SFM-arm64.dmg" --wait --keychain-profile "notarytool-password"
xcrun notarytool submit "build/SFM-x86_64.dmg" --wait --keychain-profile "notarytool-password"
xcrun stapler staple "build/SFM-arm64.dmg"
xcrun stapler staple "build/SFM-x86_64.dmg"
fmt:
swiftformat .
fmt_install:
brew install swiftformat
lint:
swiftlint
lint_install:
brew install swiftlint
dmg_install:
brew install create-dmg
clean:
rm -rf build/SFI.xcarchive
rm -rf build/SFM.xcarchive
rm -rf build/SFT.xcarchive
rm -rf build/SFM.System-arm64.xcarchive
rm -rf build/SFM.System-x86_64.xcarchive
rm -rf build/SFM.System-arm64
rm -rf build/SFM.System-x86_64
rm -rf build/SFM-arm64.dmg
rm -rf build/SFM-x86_64.dmg