Add signed iOS release workflow
Build and test / test (macos-latest) (push) Canceled after 0s
Build and test / test (ubuntu-24.04) (push) Canceled after 0s
Build and test / test (windows-latest) (push) Canceled after 0s
Build and test / apple-client (push) Canceled after 0s

This commit is contained in:
2026-09-21 04:05:40 +02:00
parent cf808483e0
commit 35617e9708
9 changed files with 308 additions and 8 deletions
@@ -53,6 +53,34 @@ public class PublishServerScriptTests
Assert.DoesNotContain("<TreatWarningsAsErrors>false</TreatWarningsAsErrors>", project);
}
[Fact]
public async Task IosBroadcastExtensionPreservesSharedAppGroupAndSupportsDistributionSigning()
{
string root = FindRoot();
string entitlements = await File.ReadAllTextAsync(Path.Combine(
root, "native", "apple", "broadcast", "VoiceCatBroadcast.entitlements"));
string script = await File.ReadAllTextAsync(Path.Combine(
root, "clients", "apple", "VoiceCat.iOS", "build-broadcast-extension.sh"));
Assert.Contains("com.apple.security.application-groups", entitlements);
Assert.Contains("group.me.iamtalon.voicecat", entitlements);
Assert.Contains("CODE_SIGN_STYLE=Manual", script);
Assert.Contains("PROVISIONING_PROFILE_SPECIFIER=\"$VOICECAT_BROADCAST_CODESIGN_PROVISION\"", script);
Assert.Contains("CURRENT_PROJECT_VERSION=\"$VOICECAT_BUILD_NUMBER\"", script);
Assert.Contains("MARKETING_VERSION=\"${VOICECAT_DISPLAY_VERSION:-0.0.1}\"", script);
string deviceScript = await File.ReadAllTextAsync(Path.Combine(
root, "clients", "apple", "build-ios-device.sh"));
Assert.Contains("-p:ApplicationVersion=\"$VOICECAT_BUILD_NUMBER\"", deviceScript);
string appManifest = await File.ReadAllTextAsync(Path.Combine(
root, "clients", "apple", "VoiceCat.iOS", "Info.plist"));
string extensionManifest = await File.ReadAllTextAsync(Path.Combine(
root, "native", "apple", "broadcast", "Info.plist"));
Assert.DoesNotContain("<key>CFBundleVersion</key>", appManifest);
Assert.Contains("<string>$(CURRENT_PROJECT_VERSION)</string>", extensionManifest);
}
[Fact]
public async Task DefaultPublishTargetsWindowsAndLinuxWhileRuntimeCanSelectOne()
{