我已经创建了一个安装程序,它使用Packages
了一个附加插件,该插件有 2 个文本字段,其值在继续安装向导的下一步时被打印。
这是代码:
MyInstallerPage.h
#import <InstallerPlugins/InstallerPlugins.h>
@interface MyInstallerPane : InstallerPane <NSTextFieldDelegate>
@end
MyInstallerPane.m
#import "MyInstallerPane.h"
@interface MyInstallerPane() {
}
@property (weak) IBOutlet NSTextField *firstNameTextField;
@property (weak) IBOutlet NSTextField *lastNameTextField;
@end
@implementation MyInstallerPane
- (NSString *)title
{
return [[NSBundle bundleForClass:[self class]] localizedStringForKey:@"PaneTitle" value:nil table:nil];
}
- (void)didEnterPane:(InstallerSectionDirection)dir {
self.firstNameTextField.delegate = self;
self.lastNameTextField.delegate = self;
}
- (void)controlTextDidEndEditing:(NSNotification *)obj {
NSLog(@"First name: %@", self.firstNameTextField.stringValue);
NSLog(@"Last name : %@",
self.lastNameTextField.stringValue);
}
@end
我想知道在使用命令从命令行运行安装程序时如何设置这些文本字段/usr/sbin/installer -pkg ./MyPackage.pkg -target /
在 UI 模式下,当使用命令运行我的包时open myPackage.pkg
,我会得到插件窗口,而我只需要在适当的文本字段中输入这些值。
此问题的一种解决方法是使用执行以下步骤的附加脚本,而不是直接从命令行运行安装程序。
获取这些值(名字+姓氏)作为输入参数并将它们写入特殊文件。
运行安装程序命令
installer -pkg...
。从安装程序中。该插件将检查 textBoxes 是否为空(在非 ui 安装的情况下是正确的。在这种情况下,它将在特殊文件中查找这些值。