Skip to content

Commit 1931e30

Browse files
authored
Merge pull request sameerasw#111 from sameerasw/main
Rebase
2 parents f6dd034 + e3ac4cb commit 1931e30

8 files changed

Lines changed: 86 additions & 48 deletions

File tree

AirSync.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@
293293
CODE_SIGN_ENTITLEMENTS = "";
294294
CODE_SIGN_STYLE = Automatic;
295295
COMBINE_HIDPI_IMAGES = YES;
296-
CURRENT_PROJECT_VERSION = 8;
296+
CURRENT_PROJECT_VERSION = 10;
297297
DEAD_CODE_STRIPPING = YES;
298298
DEVELOPMENT_TEAM = WCB4HTANA6;
299299
ENABLE_APP_SANDBOX = NO;
@@ -311,7 +311,7 @@
311311
"@executable_path/../Frameworks",
312312
);
313313
MACOSX_DEPLOYMENT_TARGET = 14.6;
314-
MARKETING_VERSION = 2.0.33;
314+
MARKETING_VERSION = 2.1.0;
315315
PRODUCT_BUNDLE_IDENTIFIER = "sameerasw.airsync-mac";
316316
PRODUCT_NAME = "$(TARGET_NAME)";
317317
REGISTER_APP_GROUPS = YES;
@@ -339,7 +339,7 @@
339339
CODE_SIGN_ENTITLEMENTS = "";
340340
CODE_SIGN_STYLE = Automatic;
341341
COMBINE_HIDPI_IMAGES = YES;
342-
CURRENT_PROJECT_VERSION = 8;
342+
CURRENT_PROJECT_VERSION = 10;
343343
DEAD_CODE_STRIPPING = YES;
344344
DEVELOPMENT_TEAM = WCB4HTANA6;
345345
ENABLE_APP_SANDBOX = NO;
@@ -357,7 +357,7 @@
357357
"@executable_path/../Frameworks",
358358
);
359359
MACOSX_DEPLOYMENT_TARGET = 14.6;
360-
MARKETING_VERSION = 2.0.33;
360+
MARKETING_VERSION = 2.1.0;
361361
PRODUCT_BUNDLE_IDENTIFIER = "sameerasw.airsync-mac";
362362
PRODUCT_NAME = "$(TARGET_NAME)";
363363
REGISTER_APP_GROUPS = YES;

CONTRIBUTING.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,36 @@ This ensures that the project remains open for personal use but protected agains
1919
- Respect project structure and coding standards.
2020
- If you're submitting a new feature, consider opening an issue to discuss it first.
2121

22+
## Adding New Icons
23+
24+
### 1. Add Image Assets
25+
1. Add your new icon images to `Assets.xcassets/AppIcons/`
26+
2. Create both an `.imageset` (for UI display) and optionally an `.appiconset` (for actual app icons)
27+
3. Follow the naming convention: `AppIconImage-[variant]`
28+
29+
### 2. Define the Icon
30+
Add to `AppIconExtensions.swift`:
31+
32+
```swift
33+
static let newIcon = AppIcon(
34+
name: "Display Name",
35+
description: "Optional description",
36+
imageName: "AppIconImage-variant", // Asset name
37+
iconName: "AppIconImage-variant" // NSImage name
38+
)
39+
```
40+
41+
### 3. Register the Icon
42+
Add to the `allIcons` array:
43+
44+
```swift
45+
static let allIcons: [AppIcon] = [
46+
.defaultIcon,
47+
.pixelIcon,
48+
.newIcon // Add here
49+
]
50+
```
51+
2252
## Contact
2353

2454
For questions about contributions or licensing, contact: sameerasw.com@gmail.com

README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
1-
# AirSync 2.0 macOS app written in Swift
1+
# AirSync macOS app source code
22

3-
Min : macOS 14.5
4-
5-
[![AirSync demo](https://img.youtube.com/vi/HDv0Hu9z294?si=dgycryP1T8QvPJYa/0.jpg)](https://www.youtube.com/watch?v=HDv0Hu9z294?si=dgycryP1T8QvPJYa)
6-
7-
### 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.
8-
9-
## [Help translating AirSync to your language on crowdin!](https://crwd.in/airsync/612ea64319db322fa1ed070574109c242534446)
3+
> 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.
104
115
<p align="center">
12-
<img src="https://github.com/user-attachments/assets/7c81bd2a-3799-44f2-b63a-350344f68e42" width="30%" />
6+
<img src="https://github.com/user-attachments/assets/1b59fa22-780b-455d-87b1-6bb028c69d37" />
7+
<!-- <img src="https://github.com/user-attachments/assets/7c81bd2a-3799-44f2-b63a-350344f68e42" width="30%" />
138
<img src="https://github.com/user-attachments/assets/58996c84-083f-4464-b0a5-bce069935898" width="30%" />
14-
<img src="https://github.com/user-attachments/assets/3f9d3113-1e16-4071-b1fc-f8f33a24c439" width="30%" />
9+
<img src="https://github.com/user-attachments/assets/3f9d3113-1e16-4071-b1fc-f8f33a24c439" width="30%" /> -->
1510
</p>
1611

12+
[![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)
13+
1714
<p align="center">
18-
<img src="https://github.com/user-attachments/assets/8abdd977-6f8b-4037-b277-9457e65a6255" width="80%" />
15+
<!-- <img src="https://github.com/user-attachments/assets/8abdd977-6f8b-4037-b277-9457e65a6255" width="80%" /> -->
1916
</p>
2017

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

2322
## Contributors <3
2423

@@ -38,8 +37,9 @@ Min : macOS 14.5
3837

3938
- To you, seriously… <3
4039

41-
### Libraries used
40+
## Libraries used
4241

4342
- [dagronf/QRCode](https://github.com/dagronf/QRCode)
4443
- [httpswift/swifter](https://github.com/httpswift/swifter)
4544
- [sparkle-project/Sparkle](https://github.com/sparkle-project/Sparkle)
45+
- [ungive/media-control](https://github.com/ungive/media-control)

airsync-mac/Core/Util/Gumroad.swift

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,6 @@ class Gumroad {
1818
let appState = AppState.shared
1919

2020
func checkLicenseKeyValidity(key: String, save: Bool, isNewRegistration: Bool) async throws -> Bool {
21-
// Tester shortcut (kept)
22-
if key == "i-am-a-tester" {
23-
if save {
24-
AppState.shared.setPlusTemporarily(true)
25-
AppState.shared.licenseDetails = LicenseDetails(
26-
key: key,
27-
email: "tester@example.com",
28-
productName: "Test Mode",
29-
orderNumber: 0,
30-
purchaserID: "tester",
31-
usesCount: 0,
32-
price: 0,
33-
currency: "usd",
34-
saleTimestamp: "",
35-
subscriptionCancelledAt: nil,
36-
subscriptionEndedAt: nil,
37-
subscriptionFailedAt: nil,
38-
refunded: false,
39-
disputed: false,
40-
chargebacked: false
41-
)
42-
}
43-
return true
44-
}
4521

4622
// Select product id based on chosen plan
4723
let selectedPlan = UserDefaults.standard.licensePlanType

airsync-mac/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
</dict>
2626
</dict>
2727
<key>ForceUpdateKey</key>
28-
<string>001</string>
28+
<string>002</string>
2929
<key>SUEnableDownloaderService</key>
3030
<true/>
3131
<key>SUEnableInstallerLauncherService</key>

airsync-mac/Localization/ja.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"apps.tab": "アプリ",
1616
"transfers.tab": "ファイル転送",
1717
"settings.tab": "設定",
18-
"qr.tab": "Scan QR",
18+
"qr.tab": "QRコードをスキャン",
1919
"transfers.empty": "何も転送されていません",
2020
"plus.title": "AirSync+",
2121
"plus.why": "どうしてPlus?",

airsync.build.config

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# AirSync Build Configuration
2+
# Lines starting with # are comments and will be ignored
3+
4+
# === PROJECT CONFIGURATION ===
5+
project_name=AirSync
6+
project_dir=/Users/sameerasandakelum/GIT/airsync-mac
7+
output_dir=/Users/sameerasandakelum/GIT/airsync-mac/updates
8+
skip_confirmation=false
9+
10+
# Define the build steps (comma-separated)
11+
steps=Cleanup updates directory,Build DMG,Notarize DMG,Staple & Validate DMG,Generate Sparkle Appcast
12+
13+
# === PROJECT-SPECIFIC VARIABLES ===
14+
updates_dir=/Users/sameerasandakelum/GIT/airsync-mac/updates
15+
dmg_name=AirSync.dmg
16+
background_image=/Users/sameerasandakelum/GIT/airsync-mac/airsync-bg.jpg
17+
developer_id=Developer ID Application: Sameera Sandakelum (WCB4HTANA6)
18+
team_id=WCB4HTANA6
19+
20+
# === KEYCHAIN REFERENCES ===
21+
# These will be retrieved from keychain automatically
22+
apple_id_keychain_service=AirSyncDevEmail
23+
app_password_keychain_service=AirSyncAppPassword
24+
25+
# === SPARKLE CONFIGURATION ===
26+
# The script will auto-detect Sparkle directory, but you can override it here
27+
# sparkle_dir=/path/to/sparkle/directory
28+
29+
# === DMG CONFIGURATION ===
30+
dmg_window_size=600,400
31+
dmg_icon_size=128
32+
dmg_text_size=16

appcast.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
<channel>
44
<title>AirSync</title>
55
<item>
6-
<title>2.0.30</title>
7-
<pubDate>Sat, 13 Sep 2025 23:27:04 +0530</pubDate>
8-
<sparkle:version>6</sparkle:version>
9-
<sparkle:shortVersionString>2.0.30</sparkle:shortVersionString>
6+
<title>2.0.33</title>
7+
<pubDate>Tue, 23 Sep 2025 18:08:30 +0530</pubDate>
8+
<sparkle:version>8</sparkle:version>
9+
<sparkle:shortVersionString>2.0.33</sparkle:shortVersionString>
1010
<sparkle:minimumSystemVersion>14.6</sparkle:minimumSystemVersion>
11-
<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=="/>
11+
<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=="/>
1212
</item>
1313
</channel>
1414
</rss>

0 commit comments

Comments
 (0)