Signing, Installer, New Workflows
This commit is contained in:
@@ -143,33 +143,31 @@ class UpdateService {
|
||||
final baseUrl = 'https://git.hudsonriggs.systems/LambdaBankingConglomerate/rmtPocketWatcher/releases/download/v$version';
|
||||
|
||||
return [
|
||||
// Windows Full Package
|
||||
ReleaseAsset(
|
||||
name: 'rmtPocketWatcher-windows-x64.exe',
|
||||
downloadUrl: '$baseUrl/rmtPocketWatcher-windows-x64.exe',
|
||||
name: 'rmtPocketWatcher-Windows-v$version.zip',
|
||||
downloadUrl: '$baseUrl/rmtPocketWatcher-Windows-v$version.zip',
|
||||
size: 0, // Unknown size from RSS
|
||||
contentType: 'application/octet-stream',
|
||||
contentType: 'application/zip',
|
||||
),
|
||||
// Windows Portable (single exe)
|
||||
ReleaseAsset(
|
||||
name: 'rmtPocketWatcher-windows-x64.msi',
|
||||
downloadUrl: '$baseUrl/rmtPocketWatcher-windows-x64.msi',
|
||||
name: 'rmtPocketWatcher-Windows-Portable-v$version.zip',
|
||||
downloadUrl: '$baseUrl/rmtPocketWatcher-Windows-Portable-v$version.zip',
|
||||
size: 0,
|
||||
contentType: 'application/octet-stream',
|
||||
contentType: 'application/zip',
|
||||
),
|
||||
// Windows MSIX Installer
|
||||
ReleaseAsset(
|
||||
name: 'rmtPocketWatcher-macos.dmg',
|
||||
downloadUrl: '$baseUrl/rmtPocketWatcher-macos.dmg',
|
||||
name: 'rmtPocketWatcher-v$version.msix',
|
||||
downloadUrl: '$baseUrl/rmtPocketWatcher-v$version.msix',
|
||||
size: 0,
|
||||
contentType: 'application/octet-stream',
|
||||
contentType: 'application/msix',
|
||||
),
|
||||
// Android APK
|
||||
ReleaseAsset(
|
||||
name: 'rmtPocketWatcher-linux.appimage',
|
||||
downloadUrl: '$baseUrl/rmtPocketWatcher-linux.appimage',
|
||||
size: 0,
|
||||
contentType: 'application/octet-stream',
|
||||
),
|
||||
ReleaseAsset(
|
||||
name: 'rmtPocketWatcher-android.apk',
|
||||
downloadUrl: '$baseUrl/rmtPocketWatcher-android.apk',
|
||||
name: 'rmtPocketWatcher-Android-v$version.apk',
|
||||
downloadUrl: '$baseUrl/rmtPocketWatcher-Android-v$version.apk',
|
||||
size: 0,
|
||||
contentType: 'application/vnd.android.package-archive',
|
||||
),
|
||||
@@ -200,36 +198,38 @@ class UpdateInfo {
|
||||
ReleaseAsset? getAssetForCurrentPlatform() {
|
||||
if (kIsWeb) return null;
|
||||
|
||||
String platformPattern;
|
||||
switch (defaultTargetPlatform) {
|
||||
case TargetPlatform.windows:
|
||||
platformPattern = r'windows|win|\.exe$|\.msi$';
|
||||
break;
|
||||
// Prefer portable version for Windows
|
||||
var portable = assets.where((asset) => asset.name.contains('Portable')).firstOrNull;
|
||||
if (portable != null) return portable;
|
||||
|
||||
// Fall back to full Windows package
|
||||
var windows = assets.where((asset) => asset.name.contains('Windows') && asset.name.endsWith('.zip')).firstOrNull;
|
||||
if (windows != null) return windows;
|
||||
|
||||
// Last resort: MSIX installer
|
||||
return assets.where((asset) => asset.name.endsWith('.msix')).firstOrNull;
|
||||
|
||||
case TargetPlatform.macOS:
|
||||
platformPattern = r'macos|mac|darwin|\.dmg$|\.pkg$';
|
||||
break;
|
||||
return assets.where((asset) =>
|
||||
RegExp(r'macOS|macos|mac|darwin|\.dmg$|\.pkg$', caseSensitive: false).hasMatch(asset.name)
|
||||
).firstOrNull;
|
||||
|
||||
case TargetPlatform.linux:
|
||||
platformPattern = r'linux|\.deb$|\.rpm$|\.appimage$';
|
||||
break;
|
||||
return assets.where((asset) =>
|
||||
RegExp(r'Linux|linux|\.deb$|\.rpm$|\.appimage$', caseSensitive: false).hasMatch(asset.name)
|
||||
).firstOrNull;
|
||||
|
||||
case TargetPlatform.android:
|
||||
platformPattern = r'android|\.apk$';
|
||||
break;
|
||||
return assets.where((asset) => asset.name.endsWith('.apk')).firstOrNull;
|
||||
|
||||
case TargetPlatform.iOS:
|
||||
platformPattern = r'ios|\.ipa$';
|
||||
break;
|
||||
return assets.where((asset) => asset.name.endsWith('.ipa')).firstOrNull;
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
||||
final regex = RegExp(platformPattern, caseSensitive: false);
|
||||
|
||||
for (final asset in assets) {
|
||||
if (regex.hasMatch(asset.name)) {
|
||||
return asset;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user