Add local Live Activity and Dynamic Island track display
This commit is contained in:
@@ -29,5 +29,24 @@ with zipfile.ZipFile(path) as archive:
|
||||
platforms.append(struct.unpack_from("<I", binary, offset + 8)[0])
|
||||
offset += size
|
||||
assert platforms == [2], "Mach-O is not built for iOS devices"
|
||||
assert info["NSSupportsLiveActivities"] is True
|
||||
extension = prefix + "PlugIns/MusicBridgeWidgets.appex/"
|
||||
widget = plistlib.loads(archive.read(extension + "Info.plist"))
|
||||
assert widget["CFBundleIdentifier"] == info["CFBundleIdentifier"] + ".widgets"
|
||||
assert widget["CFBundleShortVersionString"] == info["CFBundleShortVersionString"]
|
||||
assert widget["CFBundleVersion"] == info["CFBundleVersion"]
|
||||
assert widget["NSExtension"]["NSExtensionPointIdentifier"] == "com.apple.widgetkit-extension"
|
||||
assert widget["CFBundleSupportedPlatforms"] == ["iPhoneOS"]
|
||||
binary = archive.read(extension + widget["CFBundleExecutable"])
|
||||
assert struct.unpack_from("<II", binary) == (0xFEEDFACF, 0x0100000C)
|
||||
offset, platforms = 32, []
|
||||
for _ in range(struct.unpack_from("<I", binary, 16)[0]):
|
||||
command, size = struct.unpack_from("<II", binary, offset)
|
||||
assert size >= 8 and offset + size <= len(binary)
|
||||
if command == 0x32:
|
||||
platforms.append(struct.unpack_from("<I", binary, offset + 8)[0])
|
||||
offset += size
|
||||
assert platforms == [2], "Widget is not built for iOS devices"
|
||||
print(f"PASS: {path.name}: valid IPA, iPhoneOS ARM64, iOS 17+, ru.yukinoki.musicbridge.")
|
||||
print("PASS: embedded WidgetKit extension, matching version, ARM64 iPhoneOS and Live Activities support.")
|
||||
print("Requires local signing with Sideloadly before installation on an iPhone.")
|
||||
|
||||
Reference in New Issue
Block a user