Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions AirSync.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand All @@ -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;
Expand Down
30 changes: 30 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -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.

<p align="center">
<img src="https://github.com/user-attachments/assets/7c81bd2a-3799-44f2-b63a-350344f68e42" width="30%" />
<img src="https://github.com/user-attachments/assets/1b59fa22-780b-455d-87b1-6bb028c69d37" />
<!-- <img src="https://github.com/user-attachments/assets/7c81bd2a-3799-44f2-b63a-350344f68e42" width="30%" />
<img src="https://github.com/user-attachments/assets/58996c84-083f-4464-b0a5-bce069935898" width="30%" />
<img src="https://github.com/user-attachments/assets/3f9d3113-1e16-4071-b1fc-f8f33a24c439" width="30%" />
<img src="https://github.com/user-attachments/assets/3f9d3113-1e16-4071-b1fc-f8f33a24c439" width="30%" /> -->
</p>

[![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)

<p align="center">
<img src="https://github.com/user-attachments/assets/8abdd977-6f8b-4037-b277-9457e65a6255" width="80%" />
<!-- <img src="https://github.com/user-attachments/assets/8abdd977-6f8b-4037-b277-9457e65a6255" width="80%" /> -->
</p>

## [Read Documentation and How-To](https://airsync.notion.site/)
## Requirements
- Min : macOS 14.5
- Opt: scrcpy, adb & media-control brew installs

## Contributors <3

Expand All @@ -38,8 +37,9 @@ 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)
- [sparkle-project/Sparkle](https://github.com/sparkle-project/Sparkle)
- [ungive/media-control](https://github.com/ungive/media-control)
24 changes: 0 additions & 24 deletions airsync-mac/Core/Util/Gumroad.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion airsync-mac/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
</dict>
</dict>
<key>ForceUpdateKey</key>
<string>001</string>
<string>002</string>
<key>SUEnableDownloaderService</key>
<true/>
<key>SUEnableInstallerLauncherService</key>
Expand Down
2 changes: 1 addition & 1 deletion airsync-mac/Localization/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -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?",
Expand Down
32 changes: 32 additions & 0 deletions airsync.build.config
Original file line number Diff line number Diff line change
@@ -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
10 changes: 5 additions & 5 deletions appcast.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
<channel>
<title>AirSync</title>
<item>
<title>2.0.30</title>
<pubDate>Sat, 13 Sep 2025 23:27:04 +0530</pubDate>
<sparkle:version>6</sparkle:version>
<sparkle:shortVersionString>2.0.30</sparkle:shortVersionString>
<title>2.0.33</title>
<pubDate>Tue, 23 Sep 2025 18:08:30 +0530</pubDate>
<sparkle:version>8</sparkle:version>
<sparkle:shortVersionString>2.0.33</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>14.6</sparkle:minimumSystemVersion>
<enclosure url="https://github.com/sameerasw/airsync-mac/releases/download/v2.0.30-BETA/AirSync.dmg" length="6604788" type="application/octet-stream" sparkle:edSignature="UcIekIqalykGjHU9Kv3imHw8IaeUDCjQbX03zxye0t/X6vOq5R7ULei6FEGxDfMr78jUvKH8Ofv4ZR2RBY0FCQ=="/>
<enclosure url="https://github.com/sameerasw/airsync-mac/releases/download/v2.0.33-BETA/AirSync.dmg" length="22636823" type="application/octet-stream" sparkle:edSignature="yblEGKg6JqfjP4v1dLhju4rwuqKgcx5T6/NNHl5ry8i5v3lDlxuSpEzqqOPYMrDmvjndYSR2GSaFrkE30xxSCw=="/>
</item>
</channel>
</rss>