【问题标题】:How to build and embed another application inside my target in Xcode?如何在 Xcode 的目标中构建和嵌入另一个应用程序?
【发布时间】:2014-01-12 13:21:25
【问题描述】:

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

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

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

【问题讨论】:

    标签: xcode macos build


    【解决方案1】:

    要添加新目标,只需点击项目浏览器左侧窗格中的“新目标”按钮即可。 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) 都必须进行签名,否则您的应用程序将无法通过验证。这个答案与此无关,但这里有一个good blog on the issue

    【讨论】:

    • 我无法独立指定“主界面”。如果我改变了 FooBarTiny 的主界面,FooBar 的“主界面”也会改变。这使得其中一个应用程序无法运行。
    • 不太清楚你在说什么,但可能意味着你试图在两个目标中使用相同的文件。选择文件,然后按 Cmd-alt-1 调出目标浏览器。它可能会在 "Target Membership" 下为您的两个目标打勾。复制文件并为每个目标使用唯一的文件
    • 请参考this image。这标识了应用程序的主菜单,对吧?所以,如果有多个目标,当我改变其中一个目标的主菜单笔尖设置时,其他目标的设置也会改变。
    • 是的。参考之前的评论。您可能对两个目标都使用 MainMenu。不要。
    • 啊,“目标会员”!谢谢!
    猜你喜欢
    • 2015-07-22
    • 2015-02-12
    • 1970-01-01
    • 2015-12-15
    • 2019-03-07
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多