Handle interrupted pairing, artwork retries and revoked access reliably

This commit is contained in:
2026-09-12 21:41:37 +03:00
parent afa771198d
commit c461c26f7f
9 changed files with 411 additions and 46 deletions
+28 -8
View File
@@ -15,6 +15,16 @@
"isa" = "PBXBuildFile";
"fileRef" = "065A9D559DC80AAF876DA757";
};
"763FA6A137E5E94274AC56A3" = {
"isa" = "PBXFileReference";
"lastKnownFileType" = "sourcecode.swift";
"path" = "ConnectionStorage.swift";
"sourceTree" = "<group>";
};
"40D2920E2C996D62B7190BA4" = {
"isa" = "PBXBuildFile";
"fileRef" = "763FA6A137E5E94274AC56A3";
};
"971C0AE92F167DE7AB145086" = {
"isa" = "PBXFileReference";
"lastKnownFileType" = "sourcecode.swift";
@@ -89,7 +99,7 @@
"isa" = "PBXGroup";
"path" = "MusicBridge";
"sourceTree" = "<group>";
"children" = ("065A9D559DC80AAF876DA757", "971C0AE92F167DE7AB145086", "5F6F408829AB46D3B85FB911", "76FB6BFFC478599567424755", "124CF3F5AC075D1D6042DF64", "ADF0CD56882201BD3AC1581B", "9C432A0DA0BEC173839EBF86", "7148B52E915554F67E875C26",);
"children" = ("065A9D559DC80AAF876DA757", "763FA6A137E5E94274AC56A3", "971C0AE92F167DE7AB145086", "5F6F408829AB46D3B85FB911", "76FB6BFFC478599567424755", "124CF3F5AC075D1D6042DF64", "ADF0CD56882201BD3AC1581B", "9C432A0DA0BEC173839EBF86", "7148B52E915554F67E875C26",);
};
"C9F705D432CA45B6056BC572" = {
"isa" = "PBXFileReference";
@@ -111,6 +121,16 @@
"isa" = "PBXBuildFile";
"fileRef" = "ACD0393DCDDDF044F2966340";
};
"464F6C65BC2FAB6BCCC77F46" = {
"isa" = "PBXFileReference";
"lastKnownFileType" = "sourcecode.swift";
"path" = "ResilienceTests.swift";
"sourceTree" = "<group>";
};
"EFDB280E0B23F7E2A246BC89" = {
"isa" = "PBXBuildFile";
"fileRef" = "464F6C65BC2FAB6BCCC77F46";
};
"8BED860F1BD59C500D215E8D" = {
"isa" = "PBXFileReference";
"lastKnownFileType" = "sourcecode.swift";
@@ -125,7 +145,7 @@
"isa" = "PBXGroup";
"path" = "MusicBridgeTests";
"sourceTree" = "<group>";
"children" = ("C9F705D432CA45B6056BC572", "ACD0393DCDDDF044F2966340", "8BED860F1BD59C500D215E8D", "F16D05EC6B29248D2C61ADB1", "4731785CAB9BB914B8834AE6",);
"children" = ("C9F705D432CA45B6056BC572", "ACD0393DCDDDF044F2966340", "464F6C65BC2FAB6BCCC77F46", "8BED860F1BD59C500D215E8D", "F16D05EC6B29248D2C61ADB1", "4731785CAB9BB914B8834AE6",);
};
"F16D05EC6B29248D2C61ADB1" = {
"isa" = "PBXFileReference";
@@ -157,7 +177,7 @@
"72B74C8A2143F64FD53D71E5" = {
"isa" = "PBXSourcesBuildPhase";
"buildActionMask" = 2147483647;
"files" = ("82F1C33CE4F8B8F641FF0461", "16EA630DE1FE9F0A16580C9D", "842E87CD23DCB5BBCA4340F6", "DA06B3B12E52FB69A6A34887", "DEDCCD95A140162B6D654871", "48E2FDCA11A6694953C86E6D", "47693934E8A974162CF08A38", "BE808A0D13A16FE67D32B7FB",);
"files" = ("82F1C33CE4F8B8F641FF0461", "40D2920E2C996D62B7190BA4", "16EA630DE1FE9F0A16580C9D", "842E87CD23DCB5BBCA4340F6", "DA06B3B12E52FB69A6A34887", "DEDCCD95A140162B6D654871", "48E2FDCA11A6694953C86E6D", "47693934E8A974162CF08A38", "BE808A0D13A16FE67D32B7FB",);
"runOnlyForDeploymentPostprocessing" = 0;
};
"734C4650C7A5604092763C32" = {
@@ -186,8 +206,8 @@
"CODE_SIGN_STYLE" = "Automatic";
"GENERATE_INFOPLIST_FILE" = "NO";
"INFOPLIST_FILE" = "MusicBridge/Info.plist";
"CURRENT_PROJECT_VERSION" = "3";
"MARKETING_VERSION" = "0.2.0";
"CURRENT_PROJECT_VERSION" = "4";
"MARKETING_VERSION" = "0.3.0";
"SWIFT_OPTIMIZATION_LEVEL" = "-Onone";
"ENABLE_TESTABILITY" = "YES";
"SWIFT_ACTIVE_COMPILATION_CONDITIONS" = "DEBUG";
@@ -207,8 +227,8 @@
"CODE_SIGN_STYLE" = "Automatic";
"GENERATE_INFOPLIST_FILE" = "NO";
"INFOPLIST_FILE" = "MusicBridge/Info.plist";
"CURRENT_PROJECT_VERSION" = "3";
"MARKETING_VERSION" = "0.2.0";
"CURRENT_PROJECT_VERSION" = "4";
"MARKETING_VERSION" = "0.3.0";
"SWIFT_OPTIMIZATION_LEVEL" = "-O";
};
};
@@ -239,7 +259,7 @@
"AB453A3F0E1490D48374A69A" = {
"isa" = "PBXSourcesBuildPhase";
"buildActionMask" = 2147483647;
"files" = ("1DD7BB0437E9F53586831F22", "17E248E58CB43C680B48DD51", "DC1A5B0B94F4C98F1CA36676",);
"files" = ("1DD7BB0437E9F53586831F22", "17E248E58CB43C680B48DD51", "EFDB280E0B23F7E2A246BC89", "DC1A5B0B94F4C98F1CA36676",);
"runOnlyForDeploymentPostprocessing" = 0;
};
"9AA2A4C344B5C474AF5D336C" = {