如何在 Xcode 的目标中构建和嵌入另一个应用程序?

And*_*ang 6 macos xcode build

我的项目中有一个应用程序(名为App_Main)。我想在App_Main包中打包另一个小应用程序(我们称之为App_Tiny)。

然后,由于我知道 App_tiny 的路径,我可以在需要时在 App_Main 的运行时以编程方式执行 App_Tiny。

我怎样才能做到这一点?如何指定和构建另一个可执行目标,最重要的是,自动将 App_Tiny 放在 App_Main 的包目录中?

War*_*ton 5

要添加新目标,只需点击项目浏览器左侧窗格中的“新目标”按钮即可。Xcode 将允许您在添加时选择目标类型(应用程序)。

新目标按钮

接下来,您需要添加 FooBarTiny 作为主应用程序 (FooBar) 的构建依赖项。编辑主要目标的方案并将子目标添加为显式依赖项。

在此处输入图片说明

现在当你构建 FooBar 时;如果需要,将构建 FooBarTiny。

接下来,您将 FooBarTiny 添加到“复制捆绑资源”阶段。点击添加按钮并向下滚动树,您可以在 Products 文件夹中找到 FooBarTiny。

在此处输入图片说明

要从您的应用程序中启动 FooBarTiny,您可以使用NSWorkspace.

- (NSRunningApplication *)launchApplicationAtURL:(NSURL *)url options:(NSWorkspaceLaunchOptions)options configuration:(NSDictionary *)configuration error:(NSError **)error可能是一个很好的起点。检查 API 文档以了解其他变体。

应用商店的额外费用

签署您的主应用程序是不够的。任何 Applescripts 和子应用程序 (FooBarTiny) 也必须签名,否则您的应用程序将无法通过验证。这个答案不是关于那个,但是这里有一个关于这个问题很好的博客