SMLoginItemSetEnabled - 从应用程序沙盒登录开始 - Xcode 6.3(插图)

2024-04-21

当应用程序沙箱化时,如何使应用程序具有登录时启动功能?


感谢 CORY BOHON,他创建了以下教程:

http://martiancraft.com/blog/2015/01/login-items/ http://martiancraft.com/blog/2015/01/login-items/

我将总结我已完成的步骤:

  1. 添加 StartAtLogin 项目

  2. 将 StartAtLoginHelper 导入 StartAtLogin 项目

  3. 在 StartAtLogin 构建阶段,添加复制文件为 StartAtLoginHelper,配置如下:

    3.1.目的地:包装

    3.2.子路径:Contents/Library/LoginItems

  4. 在 StartAtLoginHelper 中,选择 info.plist,添加行“Application is back only”= YES

  5. 在 StartAtLoginHelper 构建设置中,更改 Skip Install in Release = YES

  6. 在 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;

  1. 在StartAtLogin中,实现函数调用助手应用程序

    SMLoginItemSetEnabled((__bridge CFStringRef)@"com.giauhuynh.StartAtLoginHelper", sender.state == NSOnState);

  2. 代码登录+启用App Sandbox

  3. 存档 + 将应用程序复制到应用程序文件夹并运行

和我的项目:

http://s000.tinyupload.com/?file_id=03236580059305049920 http://s000.tinyupload.com/?file_id=03236580059305049920

下面是完整的步骤(有插图)

I. 设置主应用程序

I.1. Add main app with name: StartAtLogin enter image description here

I.2.添加帮助应用程序

I.2.1 Add a Target enter image description here

I.2.2 Choose Cocoa Application enter image description here

I.2.3 Name: StartAtLoginHelper enter image description here

I.2.4 Add completely enter image description here

I.3。将帮助应用程序添加到主应用程序:“Contents/Library/LoginItems”

I.3.1 Choose Main App’s Build Phases enter image description here

I.3.2 Add a new build phase enter image description here

I.3.3 Select New Copy Files Phase enter image description here

I.3.4 Copy Files section is still blank enter image description here

I.3.5 Edit Destination, Subpath & add Helper app enter image description here

I.4。写入 SMLoginItemSetEnabled

I.4.1 Select main app’s MainMenu.xib enter image description here

I.4.2 Add checkbox with name “Start at Login” enter image description here

I.4.3 Set action enter image description here

I.4.4 Select main app’s Build Phases enter image description here

I.4.5 Import ServiceManagement.framework enter image description here

I.4.6 Implement SMLoginItemSetEnabled code enter image description here

二.设置助手应用程序

II.1.应用程序是后台=是

II.1.1 Select helper app’s Info enter image description here

II.1.2 Add row enter image description here

II.1.3 Add “Application is background only”, then set value is “YES” enter image description here

II.2.在发行版中跳过安装 = YES

II.2.1 Select helper app’s Build Settings, input word “skip” in search field enter image description here

II.2.2 Expand Skip Install section enter image description here

II.2.3 Set “Release” row is “YES” enter image description here

II.3.移除窗口

II.3.1 Select helper app’s MainMenu.xib enter image description here

II.3.2 Remove StartAtLoginHelper’s window in xib file enter image description here

II.4.编写帮助代码

II.4.1 Select helper app’s ApplicationDelegate.m enter image description here

II.4.2 Implement helper code enter image description here

三.构建和测试

三.1.代码登录 + 主应用程序和辅助应用程序的应用程序沙箱

III.1.1 代码登录主应用

III.1.1.1 Before Code Sign In enter image description here

III.1.1.2 After Code Sign In enter image description here

III.1.2 启用应用沙盒主应用

III.1.2.1 Before Enable App Sandbox enter image description here

III.1.2.2 After Enable App Sandbox enter image description here

III.1.3 代码登录主应用

III.1.3.1 Before Code Sign In enter image description here

III.1.3.2 After Code Sign In enter image description here

III.1.4 启用应用沙盒主应用

III.1.4.1 Before Enable App Sandbox enter image description here

III.1.4.2 After Enable App Sandbox enter image description here

三.2.存档 + 将应用程序复制到应用程序文件夹。

III.2.1 存档

III.2.1.1 Select Product/ Archive enter image description here

III.2.1.2 Waiting Xcode archiving enter image description here

III.2.1.3 Select Export Button enter image description here

III.2.1.4 Select Export as a Mac Application enter image description here

III.2.1.5 Choose Desktop to Save enter image description here

III.2.1.6 StartAtLogin app on Desktop enter image description here

III.2.2 将应用程序复制到Applications文件夹

III.2.2.1 Copy StartAtLogin app enter image description here

III.2.2.2 Copy StartAtLogin app to Applications folder enter image description here

III.2.3 打开应用程序

III.2.3.1 Open StartAtLogin app enter image description here

III.2.3.2 StartAtLogin app’s UI when started enter image description here

III.2.3.3 Check Start at Login checkbox enter image description here

III.2.3.4 Log Out (or Shut Down, Restart are OK) enter image description here

III.2.3.5 Uncheck Reopen windows when logging back in, then Log Out enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SMLoginItemSetEnabled - 从应用程序沙盒登录开始 - Xcode 6.3(插图) 的相关文章

随机推荐

  • Android 删除接近警报

    我正在开发处理接近警报的应用程序 我可以添加接近警报 但无法删除这些接近警报 我已经在手机和虚拟设备上尝试过我的代码 但无法删除它们 这是我的代码 将位置保存到数据库并添加接近警报的活动 saveButton setOnClickListe
  • 如何处理同时碰撞以使处理顺序无关紧要?

    假设有3个球同时碰撞 我发现解决冲突的顺序会对最终结果产生影响 这当然没有意义 为了解释和简单起见 考虑 1D 中的 3 个球 质量相同 弹性碰撞 顶部的数字是速度 箭头是方向 假设它们当前都互相接触 即发生碰撞 gt 2 gt 1 lt
  • Pydev 中的 Django 会产生多个进程?

    我在 Eclipse 中的 PyDev 中设置了我的项目 每当我调试我的项目时 一切都很顺利 但是一旦我尝试重新启动 Django 服务器 它就会生成一个额外的 runserver 进程 阻塞我用于服务器的端口 8000 有没有解决方法可以
  • Nginx 位置“不等于”正则表达式

    我该如何设置locationNginx 中的条件是否响应任何不等于列出的位置 I tried location dir1 file2 php rewrite http example com 1 permanent 但它不会触发重定向 它只
  • Rails:如何为 ruby​​ 模块编写测试?

    我想知道如何为混合到几个类中的模块编写单元测试 但不太知道如何去做 我是否通过在包含它们的类的测试文件之一中编写测试来测试实例方法 似乎不正确 或者您可以以某种方式将所包含方法的测试保留在特定于模块的单独文件中吗 同样的问题也适用于类方法
  • VBO - 没有指数化的指数化

    我正在尝试将 VBO 与元素数组缓冲区一起用于我的三角形 如下所示 glBindBuffer GL ARRAY BUFFER g Buffer 0 glVertexPointer 3 GL FLOAT 0 BUFFER OFFSET 0 g
  • 如何使用 python-decorator 包来装饰类方法?

    我有一个装饰器 我想用它来装饰类方法 在下面的示例中 mydec 装饰器本身可以正常工作 但是在使用 help 或 pydoc 时它不会保留函数签名 为了解决这个问题 我研究了使用 decorator python decorator 包
  • GZipStream:为什么我们在压缩后转换为base 64?

    我只是在查看用于压缩字符串的代码示例 我发现使用 GZipStream 类就足够了 但我不明白为什么我们必须将其转换为 Base 64 字符串 如示例所示 using System IO Compression using System T
  • 无法在 Java 中使用 List 类进行向下转换 [重复]

    这个问题在这里已经有答案了 我一直在寻找这个问题的答案 但没有成功 我的问题是为什么不能使用泛型进行向下转型 我有一个名为 Job 的类 并扩展了一个名为 Model 的类 Job extends Model 现在 我从生成模型列表的可重用
  • 手动生成 .appxsym 和 .appxupload 用于 Windows 应用商店应用程序崩溃分析是否安全?

    我们有一个带有手动打包过程的应用程序 MakeAppx exe 我们希望将此应用程序发布到商店 包括公共符号文件 以便我可以下载 cab 进程转储文件进行崩溃分析 如这里描述的 http msdn microsoft com en us l
  • Bower:安装 2 个版本的 jQuery

    我将如何安装 2 个版本的 jQuery使用凉亭 我想要 v2 0 以及 1 9 1 来支持浏览器回退 我遇到的问题是如果你跑bower install jquery 1 9 1 jquery 2 0 0第一个版本被第二个版本覆盖 因为它们
  • 在 UIImage imageNamed 中使用外部图像

    我正在从网上下载两张图片 Apple png 和 电子邮件受保护 cdn cgi l email protection 我想用 UIImage imageNamed Apple png 因此它可以使用内置功能来检测是否应该显示 Apple
  • 使用 oAuth 或其他方式实施访问

    我正在尝试想办法向其他第三方网站开放网站及其部分数据库 类似于 Twitter 让网络应用程序连接到其数据库以检索数据并可能存储数据的方式 我最初的研究让我想到了 oAuth 或者是 openID 我需要做的是让第三方网站登录网站上的用户帐
  • 在 MATLAB 中将数组拆分为多个部分

    我想将数组分成相等的部分 如下所示 a 1 2 3 4 5 6 7 8 9 10 n 2 b split a n b 1 2 3 4 5 6 7 8 9 10 哪个函数可以做到这一点 尝试这个 a 1 2 3 4 5 6 reshape a
  • 想要为 Android Activity 提供半透明背景?

    我希望某个活动有一个半透明的背景 以便可以在该活动下方看到之前的活动 类似于在后台播放的视频上方弹出的半透明菜单 这可能吗 你能告诉我怎么做吗 注意 我无法使用 Android 的默认半透明主题 因为我正在为我的应用程序使用我自己的自定义背
  • 指向数组元素

    我想要实现的目标是说我有一个数组 我希望能够通过指向它来修改整个代码中的特定数组元素 例如在 C 中我可以这样做 int main int arr 5 1 2 3 4 5 int c arr 3 cout lt lt arr 3 lt
  • Xcode 12 和 OSLog (os.log):包装 OSLogMessage 导致编译错误:参数必须是字符串插值

    在 Xcode 12 iOS 14 中 OSLog 获得了对字符串插值的支持 耶 但仍然无法附加挂钩以轻松登录到其他渠道 例如 Crashlytics 所以我想我只需制作一个简单的包装器并传递参数即可 然而 关于字符串插值似乎发生了一些神奇
  • “无法开始调试”-VS2010 ASP.NET MVC 2

    我只能使用 VS2010 和 ASP NET MVC2 启动一次调试会话 当我结束第一个会话并尝试启动另一个会话时 我可以看到 无法开始调试 没有其他消息 我使用 Visual Studio Development Server 而不是 I
  • 删除单链表中的节点

    如何删除只有一个指针指向要删除节点的单链表中的节点 起始和结束指针未知 可用信息是指向应删除节点的指针 您可以在不获取前一个节点的情况下删除节点 方法是让它模仿以下节点并删除该节点 void delete Node n if is sent
  • SMLoginItemSetEnabled - 从应用程序沙盒登录开始 - Xcode 6.3(插图)

    当应用程序沙箱化时 如何使应用程序具有登录时启动功能 感谢 CORY BOHON 他创建了以下教程 http martiancraft com blog 2015 01 login items http martiancraft com b