Prepare 1.2.0 classical artwork, free launcher with three-second exit and open-source licensing

这个提交包含在:
dayu 于 2026-10-22 01:32:01 +08:00 提交
1 父节点 906f770805
当前提交 696d5f39b3
14 个文件已更改
+141 -30

没有与搜索条件相匹配的文件

@@ -82,6 +82,7 @@
"/Localized: Wrapper Application/MainMenu.xib",
Plugin/Info.plist,
"Wrapper Application/AppDelegate.m",
"Wrapper Application/Resources/LauncherInfo.png",
"Wrapper Application/Info.plist",
"Wrapper Application/main.m",
);
@@ -355,6 +356,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "beatygril/Wrapper Application/SandboxEntitlements.entitlements";
OTHER_LDFLAGS = ("$(inherited)", "-framework", CoreServices, );
CODE_SIGN_IDENTITY = "Developer ID Application";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = NO;
CODE_SIGN_STYLE = Manual;
@@ -372,6 +374,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "beatygril/Wrapper Application/SandboxEntitlements.entitlements";
OTHER_LDFLAGS = ("$(inherited)", "-framework", CoreServices, );
CODE_SIGN_IDENTITY = "Developer ID Application";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = NO;
CODE_SIGN_STYLE = Manual;
+4 -4
查看文件
@@ -17,9 +17,9 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>1.1.2</string>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>13</string>
<string>14</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>PlugInKit</key>
@@ -72,7 +72,7 @@
<key>uuid</key>
<string>FB14B0E6-59B2-4836-916F-CD0C559E9241</string>
<key>version</key>
<string>1.1.2</string>
<string>1.2.0</string>
</dict>
<dict>
<key>className</key>
@@ -84,7 +84,7 @@
<key>uuid</key>
<string>E0E432C8-3D71-4ABA-B006-E7F519E06C87</string>
<key>version</key>
<string>1.1.2</string>
<string>1.2.0</string>
<key>protocolNames</key>
<array>
<string>FxOnScreenControl</string>
@@ -1,34 +1,45 @@
#import "AppDelegate.h"
#import <CoreServices/CoreServices.h>
@interface AppDelegate ()
@property (weak) IBOutlet NSWindow *window;
@property (strong) NSTimer *exitTimer;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
self.window.title=@"大鱼人像美化";
[self.window setContentSize:NSMakeSize(600,360)];
NSView *content=[NSView new];self.window.contentView=content;
NSStackView *stack=[NSStackView new];stack.orientation=NSUserInterfaceLayoutOrientationVertical;
stack.alignment=NSLayoutAttributeLeading;stack.spacing=16;stack.translatesAutoresizingMaskIntoConstraints=NO;
[content addSubview:stack];
[NSLayoutConstraint activateConstraints:@[[stack.leadingAnchor constraintEqualToAnchor:content.leadingAnchor constant:32],[stack.trailingAnchor constraintEqualToAnchor:content.trailingAnchor constant:-32],[stack.topAnchor constraintEqualToAnchor:content.topAnchor constant:30]]];
NSTextField *title=[NSTextField labelWithString:@"大鱼人像美化"];
title.font=[NSFont systemFontOfSize:28 weight:NSFontWeightSemibold];[stack addArrangedSubview:title];
NSTextField *subtitle=[NSTextField labelWithString:@"beatygril · FxPlug 4"];
subtitle.textColor=NSColor.secondaryLabelColor;[stack addArrangedSubview:subtitle];
NSTextField *description=[NSTextField wrappingLabelWithString:@"在 Motion 的滤镜资源库中选择「大鱼 → 大鱼人像美化」。Final Cut Pro 的效果浏览器中也可使用配套效果。\n\n美化会随画面人脸自动更新,无需先点分析。脸型默认跟随主要人脸,多人模式可处理多张脸。启用「只处理选中人脸」后,可点击画面更换目标。向前/向后分析为可选功能,结果可随工程保存。"];
description.font=[NSFont systemFontOfSize:13];[stack addArrangedSubview:description];
NSStackView *buttons=[NSStackView new];buttons.orientation=NSUserInterfaceLayoutOrientationHorizontal;buttons.spacing=12;
[buttons addArrangedSubview:[NSButton buttonWithTitle:@"打开 Motion" target:self action:@selector(openMotion:)]];
[buttons addArrangedSubview:[NSButton buttonWithTitle:@"打开 Final Cut Pro" target:self action:@selector(openFinalCut:)]];
[stack addArrangedSubview:buttons];
NSTextField *note=[NSTextField wrappingLabelWithString:@"建议先调高中频磨皮,再按需调节肤色与脸型。肤色风格为本插件独立调色预设。"];
note.textColor=NSColor.secondaryLabelColor;note.font=[NSFont systemFontOfSize:11];[stack addArrangedSubview:note];
self.window.title = @"大鱼人像美化 · 免费开源";
[self.window setContentSize:NSMakeSize(800, 450)];
self.window.styleMask &= ~NSWindowStyleMaskResizable;
self.window.backgroundColor = [NSColor colorWithRed:0.94 green:0.92 blue:0.85 alpha:1];
NSImageView *card = [[NSImageView alloc] initWithFrame:NSMakeRect(0, 0, 800, 450)];
card.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
card.imageScaling = NSImageScaleProportionallyUpOrDown;
NSURL *artwork = [NSBundle.mainBundle URLForResource:@"LauncherInfo" withExtension:@"png"];
card.image = [[NSImage alloc] initWithContentsOfURL:artwork];
card.accessibilityLabel = @"大鱼人像美化,免费开源,自动注册,无需激活码。主程序启动三秒后自动退出;Final Cut Pro 和 Motion 中的滤镜继续独立运行。";
self.window.contentView = card;
if (!card.image) {
NSTextField *fallback = [NSTextField wrappingLabelWithString:card.accessibilityLabel];
fallback.frame = NSMakeRect(48, 160, 704, 130);
fallback.font = [NSFont systemFontOfSize:24 weight:NSFontWeightSemibold];
[card addSubview:fallback];
}
[self.window center];
[self.window makeKeyAndOrderFront:nil];
[NSApp activateIgnoringOtherApps:YES];
// Only this launcher exits. The FxPlug service has its own process/lifetime.
self.exitTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 repeats:NO block:^(NSTimer *timer) {
[NSApp terminate:nil];
}];
// Re-register our own bundle. There is no paid activation or account step.
NSURL *bundleURL = NSBundle.mainBundle.bundleURL;
dispatch_async(dispatch_get_global_queue(QOS_CLASS_UTILITY, 0), ^{
OSStatus status = LSRegisterURL((__bridge CFURLRef)bundleURL, true);
if (status != noErr) NSLog(@"LaunchServices registration status: %d", (int)status);
});
}
- (void)openMotion:(id)sender {[self openApplication:@"com.apple.motionapp"];}
- (void)openFinalCut:(id)sender {[self openApplication:@"com.apple.FinalCut"];}
- (void)openApplication:(NSString *)identifier {
NSURL *url=[NSWorkspace.sharedWorkspace URLForApplicationWithBundleIdentifier:identifier];
if(url) [NSWorkspace.sharedWorkspace openApplicationAtURL:url configuration:NSWorkspaceOpenConfiguration.configuration completionHandler:nil];
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender {
return YES;
}
@end
@@ -17,9 +17,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.1.2</string>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>13</string>
<string>14</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>NSHumanReadableCopyright</key>
二进制文件未显示。

之后

宽度:  |  高度:  |  大小: 2.9 MiB