问题标签 [osx-extensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 在 finder 同步扩展和 XPC 之间进行通信
我正在为 OS X 开发 Finder 同步扩展,并希望使用后台 XPC 服务。
我可以在主应用程序中启动并让它启动 XPC 并正确运行,但是当我尝试从 Finder Sync 访问它时没有任何反应。finder 同步和 XPC 都是它们自己的捆绑包,所以这可能就是原因。我想要的是 finder 同步与 XPC 讨论文件的状态,主应用程序与 finder 同步和 XPC 讨论要观看的文件夹列表。
有没有人有这方面的运气?按需后台服务有更好的方法吗?是否可以在两个 XPC 服务之间进行通信?
ios - 如何将 Crashlytics 与 iOS / OS X 今日视图扩展一起使用?
由于今天的扩展作为一个单独的进程运行,我相信他们不会记录任何开箱即用的崩溃。我假设我们需要分别在小部件上初始化 Crashlytics。例如viewDidLoad
在TodayViewController
.
- 是否有人已经在任何 iOS / OS X 扩展中使用 Crashlytics?如果是这样,您是如何实施的?
- 我还想知道在 Crashlytics 中为扩展创建一个单独的应用程序是否有意义。
objective-c - 如何在 Cocoa 中将 Finder Sync Extensions 与 Xcode 集成
我想像 Dropbox 一样使用 Finder 同步扩展,比如在 Xcode 中使用 Objective C 同步时添加工具栏图标和更新徽章图标。
我在谷歌搜索了很多,但我找不到任何与此相关的示例代码。
我只找到了那个Finder Sync的一个链接。
但我想知道将 Finder Sync Extension 集成为示例或代码的示例过程,以便进一步理解。
感谢您的建议.. !!
objective-c - OS X Finder 同步扩展
我无法创建简单的 Finder 同步扩展。
我创建了一个新的 OS X 项目并添加了 Finder 同步扩展目标,然后我运行了附加到 finder 的扩展。代码似乎正在运行 init 方法,并且正在调用工具栏项方法,但 finder 中没有显示任何内容。
终端在运行时显示此内容
2015-04-20 12:45:52.700 pcssyncextension [3196:62451] 无法从 (NSApplication) 连接 (colorGridView) 出口到 (NSColorPickerGridView):缺少设置器或实例变量 2015-04-20 12:45:52.701 pcssyncextension [3196 :62451] 无法从(NSApplication)连接(查看)出口到(NSColorPickerGridView):缺少设置器或实例变量 2015-04-20 12:45:58.887 pcssyncextension [3196:62451] - [FinderSync init] 从 /Users/ 启动用户/库/开发人员/Xcode/DerivedData/findersynctest-dkyjmfmqzedkquhbhqxejzlzzukn/Build/Products/Debug/findersynctest.app/Contents/PlugIns/pcssyncextension.appex;编译于 12:36:01
除了创建一个空项目并添加 Finder Sync 扩展之外,我还需要做些什么来让它工作吗?
objective-c - FinderSync 扩展 - requestBadgeIdentifierForURL 永远不会被调用
我已经测试了 Xcode 中提供的用于制作 FinderSync 扩展的模板。一切都很好,除了两件事:
a) 当文件夹被监视时,系统永远不会调用 requestBadgeIdentifierForURL 方法,以便不设置标记。这里出了什么问题?我假设当我在 Finder 中移动或滚动受监控的文件夹时应该调用此方法是正确的?顺便说一句,方法 beginObservingDirectoryAtURL 和 endObservingDirectoryAtURL 在此上下文中被正确调用。
b) 运行上述模板时,我在 Xcode 的日志控制台中收到以下消息:
2015-08-25 15:33:00.300 testfifi [855:8134] 无法将 (colorGridView) 出口从 (NSApplication) 连接到 (NSColorPickerGridView):缺少设置器或实例变量 2015-08-25 15:33:00.300 testfifi [855 :8134] 无法从 (NSApplication) 连接 (查看) 出口到 (NSColorPickerGridView):缺少设置器或实例变量 2015-08-25 15:33:00.321 testfifi [855:8134] - [FinderSync init] 从 /Users/ 启动hmaass/Library/Developer/Xcode/DerivedData/testtest-egudnxkifjxirpbrjkohnatmjuro/Build/Products/Debug/testtest.app/Contents/PlugIns/testfifi.appex;编译于 20:38:18
有人可以帮我摆脱这个消息吗?
谢谢!
cocoa - Finder 同步插件和 NSXPCConnection
我有以下情况:
- 有一个主要的非沙盒应用程序;
- 有一个 Finder Sync 插件,捆绑到这个应用程序中。沙盒;
- 这个应用程序中捆绑了一个 XPC 助手。沙盒化。
问题:从主应用程序打开NSXPCConnection
到 XPC 助手工作正常。但是,我无法从 Finder Sync 插件连接到它,也没有收到任何错误信息(只是在尝试打开它后立即回调“连接无效”)。
我做错了什么,还是应该以其他方式完成?例如,通过将 XPC 助手移动到单独的应用程序?一些权利问题?
objective-c - 主机连接来自 pid 的连接无效
我已经创建了 finder 同步扩展,并且在 10.10 OS X 上一切正常,但是在 10.11 上运行时,每个新的 finder 窗口同步扩展- (instancetype)init
方法都会被调用。
启动新窗口后,我正在登录 Xcode 控制台
谁能帮帮我?
macos - 是否可以从以 root 身份运行的进程运行 pluginkit?
我正在尝试pluginkit
从以 root 身份运行的启动守护程序运行(在 OS X 上管理扩展的可执行文件)。
/usr/bin/pluginkit -m -i "<identifier>"
失败,输出为match: Connection invalid
. 这并不出人意料,因为扩展设置是按用户处理的。
不过,我试过用普通用户su
运行pluginkit
,还是不行。
su <username> -l -c "/usr/bin/pluginkit -m -i "<identifier>"
也失败,输出为match: Connection invalid
.
不知何故,pluginkit 运行的环境与普通用户仍然有很大的不同,以至于它不能正常工作。无论如何以root身份运行pluginkit?或者是否有任何其他方式可以作为另一个用户启动进程,从而提供更完整的环境?
我正在使用用 Swift 编写的命令行工具对此进行测试:
main.swift
/Library/LaunchDaemons/com.example.PluginKitTest.plist
macos - 您可以在 Mac App Store 之外*分发 Safari 应用程序扩展吗?
应用程序扩展编程指南这样说:
要交付 OS X 应用程序扩展,建议您将包含的应用程序提交到 App Store,但这不是必需的。
Safari 应用程序扩展捆绑在应用程序中并通过 App Store 分发。
有谁知道,是否可以使用Mac App Store之外的应用程序分发 Safari 应用程序扩展?
谢谢!
objective-c - 如何在容器 macOS 应用程序和我的 Xcode Source Editor Extension 之间共享数据?
我做了一个 Xcode Source Editor 扩展,它存在于一个容器应用程序中,正如 Apple 推荐的那样。容器应用程序处理 UI,因此需要设置来自用户的输入以使我的扩展程序正常工作。
如何获取我在容器应用程序中获得的输入,并使其可供扩展程序在需要时访问?我尝试使用 NSUserDefaults 但它没有按我希望的那样工作。