From c91e07c8d5e80a599ea09136c3ff41d75667e44c Mon Sep 17 00:00:00 2001 From: Sameera Sandakelum Date: Wed, 17 Sep 2025 19:07:16 +0530 Subject: [PATCH 01/11] Update appcast.xml for version 2.0.31 --- appcast.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/appcast.xml b/appcast.xml index 2924e4ec..7ef37be5 100644 --- a/appcast.xml +++ b/appcast.xml @@ -3,12 +3,12 @@ AirSync - 2.0.30 - Sat, 13 Sep 2025 23:27:04 +0530 - 6 - 2.0.30 + 2.0.31 + Wed, 17 Sep 2025 19:02:44 +0530 + 7 + 2.0.31 14.6 - + From f7333ca7536c72992d01472cc6b552a632249071 Mon Sep 17 00:00:00 2001 From: Sameera Sandakelum Date: Thu, 18 Sep 2025 12:46:15 +0530 Subject: [PATCH 02/11] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 559d53d1..8e9b4b93 100644 --- a/README.md +++ b/README.md @@ -43,3 +43,4 @@ Min : macOS 14.5 - [dagronf/QRCode](https://github.com/dagronf/QRCode) - [httpswift/swifter](https://github.com/httpswift/swifter) - [sparkle-project/Sparkle](https://github.com/sparkle-project/Sparkle) +- [ungive/media-control](https://github.com/ungive/media-control) From 17c67f5aa964689215d3534d8f84387ba7267d29 Mon Sep 17 00:00:00 2001 From: Sameera Sandakelum Date: Fri, 19 Sep 2025 01:30:26 +0530 Subject: [PATCH 03/11] Revise README for beta testing and requirements --- README.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 8e9b4b93..1891bb92 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,23 @@ -# AirSync 2.0 macOS app written in Swift + # AirSync macOS app source code -Min : macOS 14.5 - -[![AirSync demo](https://img.youtube.com/vi/HDv0Hu9z294?si=dgycryP1T8QvPJYa/0.jpg)](https://www.youtube.com/watch?v=HDv0Hu9z294?si=dgycryP1T8QvPJYa) - -### During beta testing, You can use the code `i-am-a-tester` to try out and test AirSync+ features. Also these + features are subject to change and currently they are limited because to test if the workflow works. - -## [Help translating AirSync to your language on crowdin!](https://crwd.in/airsync/612ea64319db322fa1ed070574109c242534446) +> During beta testing, You can use the code `i-am-a-tester` to try out and test AirSync+ features. Also these + features are subject to change and currently they are limited because to test if the workflow works.

- + +

+[![AirSync demo](https://img.youtube.com/vi/HDv0Hu9z294?si=dgycryP1T8QvPJYa/0.jpg)](https://www.youtube.com/watch?v=HDv0Hu9z294?si=dgycryP1T8QvPJYa) | [Read Documentation and How-To](https://airsync.notion.site/) | [Help translating AirSync to your language on crowdin!](https://crwd.in/airsync/612ea64319db322fa1ed070574109c242534446) +

- +

-## [Read Documentation and How-To](https://airsync.notion.site/) +## Requirements +- Min : macOS 14.5 +- Opt: scrcpy, adb & media-control brew installs ## Contributors <3 @@ -38,7 +37,7 @@ Min : macOS 14.5 - To you, seriously… <3 -### Libraries used +## Libraries used - [dagronf/QRCode](https://github.com/dagronf/QRCode) - [httpswift/swifter](https://github.com/httpswift/swifter) From 5fe00a906d02719190b8aa85626541e775cc2bcc Mon Sep 17 00:00:00 2001 From: Sameera Sandakelum Date: Fri, 19 Sep 2025 19:48:12 +0530 Subject: [PATCH 04/11] Update CONTRIBUTING.md with icon addition instructions --- CONTRIBUTING.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9b904077..42e919d5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,6 +19,36 @@ This ensures that the project remains open for personal use but protected agains - Respect project structure and coding standards. - If you're submitting a new feature, consider opening an issue to discuss it first. +## Adding New Icons + +### 1. Add Image Assets +1. Add your new icon images to `Assets.xcassets/AppIcons/` +2. Create both an `.imageset` (for UI display) and optionally an `.appiconset` (for actual app icons) +3. Follow the naming convention: `AppIconImage-[variant]` + +### 2. Define the Icon +Add to `AppIconExtensions.swift`: + +```swift +static let newIcon = AppIcon( + name: "Display Name", + description: "Optional description", + imageName: "AppIconImage-variant", // Asset name + iconName: "AppIconImage-variant" // NSImage name +) +``` + +### 3. Register the Icon +Add to the `allIcons` array: + +```swift +static let allIcons: [AppIcon] = [ + .defaultIcon, + .pixelIcon, + .newIcon // Add here +] +``` + ## Contact For questions about contributions or licensing, contact: sameerasw.com@gmail.com From 869eba68a2557cef0c146abcb93b76b550efbc68 Mon Sep 17 00:00:00 2001 From: Sameera Sandakelum Date: Sat, 20 Sep 2025 01:16:20 +0530 Subject: [PATCH 05/11] Update appcast.xml --- appcast.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/appcast.xml b/appcast.xml index 7ef37be5..0a4b0814 100644 --- a/appcast.xml +++ b/appcast.xml @@ -3,12 +3,12 @@ AirSync - 2.0.31 - Wed, 17 Sep 2025 19:02:44 +0530 - 7 - 2.0.31 + 2.0.32 + Sat, 20 Sep 2025 01:02:22 +0530 + 8 + 2.0.32 14.6 - + From 937add6e324a17443aebcb9f9e0df3d7a3b7538a Mon Sep 17 00:00:00 2001 From: Sameera Sandakelum Date: Mon, 22 Sep 2025 17:10:57 +0530 Subject: [PATCH 06/11] New translations en.json (Japanese) --- airsync-mac/Localization/ja.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airsync-mac/Localization/ja.json b/airsync-mac/Localization/ja.json index 1bb9e37c..ad5233f1 100644 --- a/airsync-mac/Localization/ja.json +++ b/airsync-mac/Localization/ja.json @@ -15,7 +15,7 @@ "apps.tab": "アプリ", "transfers.tab": "ファイル転送", "settings.tab": "設定", - "qr.tab": "Scan QR", + "qr.tab": "QRコードをスキャン", "transfers.empty": "何も転送されていません", "plus.title": "AirSync+", "plus.why": "どうしてPlus?", From e140675ab2d9bac95091489f1f593dca0d2b6a6a Mon Sep 17 00:00:00 2001 From: Sameera Sandakelum Date: Tue, 23 Sep 2025 20:53:03 +0530 Subject: [PATCH 07/11] Update appcast.xml --- appcast.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/appcast.xml b/appcast.xml index 0a4b0814..9dad7e09 100644 --- a/appcast.xml +++ b/appcast.xml @@ -3,12 +3,12 @@ AirSync - 2.0.32 - Sat, 20 Sep 2025 01:02:22 +0530 + 2.0.33 + Tue, 23 Sep 2025 18:08:30 +0530 8 - 2.0.32 + 2.0.33 14.6 - + From f32bf3e893ebed9a74cc40a20cc8092ae3f0cdd9 Mon Sep 17 00:00:00 2001 From: sameerasw Date: Wed, 24 Sep 2025 12:32:57 +0530 Subject: [PATCH 08/11] Added build config --- airsync.build.config | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 airsync.build.config diff --git a/airsync.build.config b/airsync.build.config new file mode 100644 index 00000000..19ca9b1c --- /dev/null +++ b/airsync.build.config @@ -0,0 +1,32 @@ +# AirSync Build Configuration +# Lines starting with # are comments and will be ignored + +# === PROJECT CONFIGURATION === +project_name=AirSync +project_dir=/Users/sameerasandakelum/GIT/airsync-mac +output_dir=/Users/sameerasandakelum/GIT/airsync-mac/updates +skip_confirmation=false + +# Define the build steps (comma-separated) +steps=Cleanup updates directory,Build DMG,Notarize DMG,Staple & Validate DMG,Generate Sparkle Appcast + +# === PROJECT-SPECIFIC VARIABLES === +updates_dir=/Users/sameerasandakelum/GIT/airsync-mac/updates +dmg_name=AirSync.dmg +background_image=/Users/sameerasandakelum/GIT/airsync-mac/airsync-bg.jpg +developer_id=Developer ID Application: Sameera Sandakelum (WCB4HTANA6) +team_id=WCB4HTANA6 + +# === KEYCHAIN REFERENCES === +# These will be retrieved from keychain automatically +apple_id_keychain_service=AirSyncDevEmail +app_password_keychain_service=AirSyncAppPassword + +# === SPARKLE CONFIGURATION === +# The script will auto-detect Sparkle directory, but you can override it here +# sparkle_dir=/path/to/sparkle/directory + +# === DMG CONFIGURATION === +dmg_window_size=600,400 +dmg_icon_size=128 +dmg_text_size=16 \ No newline at end of file From e6fefe29d517c0ab18a08e230125d0e9d13b3b52 Mon Sep 17 00:00:00 2001 From: sameerasw Date: Wed, 24 Sep 2025 21:58:49 +0530 Subject: [PATCH 09/11] Removed test license --- airsync-mac/Core/Util/Gumroad.swift | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/airsync-mac/Core/Util/Gumroad.swift b/airsync-mac/Core/Util/Gumroad.swift index ec735d96..ab4e4079 100644 --- a/airsync-mac/Core/Util/Gumroad.swift +++ b/airsync-mac/Core/Util/Gumroad.swift @@ -18,30 +18,6 @@ class Gumroad { let appState = AppState.shared func checkLicenseKeyValidity(key: String, save: Bool, isNewRegistration: Bool) async throws -> Bool { - // Tester shortcut (kept) - if key == "i-am-a-tester" { - if save { - AppState.shared.setPlusTemporarily(true) - AppState.shared.licenseDetails = LicenseDetails( - key: key, - email: "tester@example.com", - productName: "Test Mode", - orderNumber: 0, - purchaserID: "tester", - usesCount: 0, - price: 0, - currency: "usd", - saleTimestamp: "", - subscriptionCancelledAt: nil, - subscriptionEndedAt: nil, - subscriptionFailedAt: nil, - refunded: false, - disputed: false, - chargebacked: false - ) - } - return true - } // Select product id based on chosen plan let selectedPlan = UserDefaults.standard.licensePlanType From 4fe1eba6d0ecf0ba0f4830310ea894fbe0fe7fcd Mon Sep 17 00:00:00 2001 From: sameerasw Date: Wed, 24 Sep 2025 22:39:52 +0530 Subject: [PATCH 10/11] Version uprgade to 2.1.0 --- AirSync.xcodeproj/project.pbxproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/AirSync.xcodeproj/project.pbxproj b/AirSync.xcodeproj/project.pbxproj index e540023b..e8797067 100644 --- a/AirSync.xcodeproj/project.pbxproj +++ b/AirSync.xcodeproj/project.pbxproj @@ -293,7 +293,7 @@ CODE_SIGN_ENTITLEMENTS = ""; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 8; + CURRENT_PROJECT_VERSION = 10; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = WCB4HTANA6; ENABLE_APP_SANDBOX = NO; @@ -311,7 +311,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 14.6; - MARKETING_VERSION = 2.0.33; + MARKETING_VERSION = 2.1.0; PRODUCT_BUNDLE_IDENTIFIER = "sameerasw.airsync-mac"; PRODUCT_NAME = "$(TARGET_NAME)"; REGISTER_APP_GROUPS = YES; @@ -339,7 +339,7 @@ CODE_SIGN_ENTITLEMENTS = ""; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 8; + CURRENT_PROJECT_VERSION = 10; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = WCB4HTANA6; ENABLE_APP_SANDBOX = NO; @@ -357,7 +357,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 14.6; - MARKETING_VERSION = 2.0.33; + MARKETING_VERSION = 2.1.0; PRODUCT_BUNDLE_IDENTIFIER = "sameerasw.airsync-mac"; PRODUCT_NAME = "$(TARGET_NAME)"; REGISTER_APP_GROUPS = YES; From e3ac4cb66220ffe56181f60c3aa45e08069c31f6 Mon Sep 17 00:00:00 2001 From: sameerasw Date: Wed, 24 Sep 2025 22:43:02 +0530 Subject: [PATCH 11/11] Forced update --- airsync-mac/Info.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airsync-mac/Info.plist b/airsync-mac/Info.plist index c9bd1613..cb6bfcb1 100644 --- a/airsync-mac/Info.plist +++ b/airsync-mac/Info.plist @@ -25,7 +25,7 @@ ForceUpdateKey - 001 + 002 SUEnableDownloaderService SUEnableInstallerLauncherService