感谢 CORY BOHON,他创建了以下教程:
http://martiancraft.com/blog/2015/01/login-items/ http://martiancraft.com/blog/2015/01/login-items/
我将总结我已完成的步骤:
添加 StartAtLogin 项目
将 StartAtLoginHelper 导入 StartAtLogin 项目
-
在 StartAtLogin 构建阶段,添加复制文件为 StartAtLoginHelper,配置如下:
3.1.目的地:包装
3.2.子路径:Contents/Library/LoginItems
在 StartAtLoginHelper 中,选择 info.plist,添加行“Application is back only”= YES
在 StartAtLoginHelper 构建设置中,更改 Skip Install in Release = YES
-
在 StartAtLoginHelper 中,实现帮助程序代码
NSArray *pathComponents = [[[NSBundle mainBundle] bundlePath] pathComponents];
pathComponents = [pathComponents subarrayWithRange:NSMakeRange(0, [pathComponents count] - 4)];
NSString *path = [NSString pathWithComponents:pathComponents];
[[NSWorkspace 共享工作空间] launchApplication:路径];
[NSApp 终止:nil];
NSArray *a = nil;
-
在StartAtLogin中,实现函数调用助手应用程序
SMLoginItemSetEnabled((__bridge CFStringRef)@"com.giauhuynh.StartAtLoginHelper", sender.state == NSOnState);
代码登录+启用App Sandbox
存档 + 将应用程序复制到应用程序文件夹并运行
和我的项目:
http://s000.tinyupload.com/?file_id=03236580059305049920 http://s000.tinyupload.com/?file_id=03236580059305049920
下面是完整的步骤(有插图)
I. 设置主应用程序
I.1. Add main app with name: StartAtLogin
I.2.添加帮助应用程序
I.2.1 Add a Target
I.2.2 Choose Cocoa Application
I.2.3 Name: StartAtLoginHelper
I.2.4 Add completely
I.3。将帮助应用程序添加到主应用程序:“Contents/Library/LoginItems”
I.3.1 Choose Main App’s Build Phases
I.3.2 Add a new build phase
I.3.3 Select New Copy Files Phase
I.3.4 Copy Files section is still blank
I.3.5 Edit Destination, Subpath & add Helper app
I.4。写入 SMLoginItemSetEnabled
I.4.1 Select main app’s MainMenu.xib
I.4.2 Add checkbox with name “Start at Login”
I.4.3 Set action
I.4.4 Select main app’s Build Phases
I.4.5 Import ServiceManagement.framework
I.4.6 Implement SMLoginItemSetEnabled code
二.设置助手应用程序
II.1.应用程序是后台=是
II.1.1 Select helper app’s Info
II.1.2 Add row
II.1.3 Add “Application is background only”, then set value is “YES”
II.2.在发行版中跳过安装 = YES
II.2.1 Select helper app’s Build Settings, input word “skip” in search
field
II.2.2 Expand Skip Install section
II.2.3 Set “Release” row is “YES”
II.3.移除窗口
II.3.1 Select helper app’s MainMenu.xib
II.3.2 Remove StartAtLoginHelper’s window in xib file
II.4.编写帮助代码
II.4.1 Select helper app’s ApplicationDelegate.m
II.4.2 Implement helper code
三.构建和测试
三.1.代码登录 + 主应用程序和辅助应用程序的应用程序沙箱
III.1.1 代码登录主应用
III.1.1.1 Before Code Sign In
III.1.1.2 After Code Sign In
III.1.2 启用应用沙盒主应用
III.1.2.1 Before Enable App Sandbox
III.1.2.2 After Enable App Sandbox
III.1.3 代码登录主应用
III.1.3.1 Before Code Sign In
III.1.3.2 After Code Sign In
III.1.4 启用应用沙盒主应用
III.1.4.1 Before Enable App Sandbox
III.1.4.2 After Enable App Sandbox
三.2.存档 + 将应用程序复制到应用程序文件夹。
III.2.1 存档
III.2.1.1 Select Product/ Archive
III.2.1.2 Waiting Xcode archiving
III.2.1.3 Select Export Button
III.2.1.4 Select Export as a Mac Application
III.2.1.5 Choose Desktop to Save
III.2.1.6 StartAtLogin app on Desktop
III.2.2 将应用程序复制到Applications文件夹
III.2.2.1 Copy StartAtLogin app
III.2.2.2 Copy StartAtLogin app to Applications folder
III.2.3 打开应用程序
III.2.3.1 Open StartAtLogin app
III.2.3.2 StartAtLogin app’s UI when started
III.2.3.3 Check Start at Login checkbox
III.2.3.4 Log Out (or Shut Down, Restart are OK)
III.2.3.5 Uncheck Reopen windows when logging back in, then Log Out