【发布时间】:2011-06-29 11:52:35
【问题描述】:
只是想知道是否有人成功提交了应用程序或知道 Mac App Store 中存在使用 launchd 的应用程序。
谢谢。
【问题讨论】:
标签: launchd mac-app-store launchdagent
只是想知道是否有人成功提交了应用程序或知道 Mac App Store 中存在使用 launchd 的应用程序。
谢谢。
【问题讨论】:
标签: launchd mac-app-store launchdagent
它确实存在于 iOS 中 - 我已经看到 com.apple.launchd 在控制台/日志中滚动过去(通常是当我破坏某些东西时!)。
留意原生应用 (UIKitApplication) 的启动时间,例如 com.apple.mobilemail 和 com.apple.mobilephone。
虽然我不知道能够在本地领域之外使用它,但我没有看到任何记录在案的 API。我一直认为,当涉及到 iOS 而不是 OSX 时,对于我们这些凡人来说,这简直是越界了。
【讨论】:
是否有任何方式直接向苹果询问此类问题?提交虚拟应用程序 - 万一它会被拒绝 - 不是了解应用商店中是否允许启动的好方法。他们(苹果)可能会因为你的应用没用或蹩脚而拒绝你的应用,哈哈!官方指南不全面,尤其是在技术限制方面 - 我一辈子都找不到与 App Store“人”交谈的官方渠道。在过去 5 年大肆宣传推出 像破解 之后,如果 Apple 确实对利用其功能的应用程序制定了全面政策......尽管它很怪异......非常好,而且IMO,几乎每一个“做”任何有用的软件都需要。哼。
跟进..虽然不是这个具体问题的答案,it shines light on the subject...
"它是launchd,立即负责捕获出口 MAS 应用程序的状态,这就是为什么 store_helper 和 storeagent 当您使用“open foo.app”时启动,但在调用二进制文件时不会启动 直接。
似乎有一个私有的 launchd API(参见 launch_priv.h in launchd source) ‘spawn_via_launchd’,允许调用进程 请求启动以产生一个进程。此 API 允许有关 通过“观察者端口”创建进程。查看launchd的差异 在 10.6.5 和 10.6.6 之间,您可以看到 Apple 在其代码中修复了一个错误 确保 launchd 捕获了正确的退出状态,并且 然后通过该观察者端口转发到原始进程。
似乎发生的情况是,当应用程序通过以下方式启动时 LaunchServices, LaunchApplicationViaLaunchD 调用‘spawn_via_launchd’, 并通过观察者端口 NotifyServerSideAboutLaunchedApplication。我认为这然后通过 到 coreservicesd 的观察者端口。我猜 coreservicesd 是 检查退出代码的那个,但我不能确定。”
【讨论】: