【问题标题】:How to include everything on the final app如何在最终应用中包含所有内容
【发布时间】:2013-04-18 23:08:24
【问题描述】:

我有一个项目正在使用我创建的 2 个静态库,我们称它们为 libraryA 和 libraryB 以及一个 Bundle。

主项目使用 libraryA、libraryB 和 bundle,libraryA 也调用 libraryB 和 bundle。

每个静态库、包和主项目都是通过在 Xcode 中启动一个新项目来创建的。最后一个要创建的项目是 MyProject.xcodeproj。创建该项目后,我将 libraryA.xcodeproj、libraryB.xcodeproj 和 myBundle.xcodeproj 拖到其中并以如下内容结束:

一切都很好地编译和运行,但在 MyProject.app 中检查,我发现它不包含 myBundle 中的资源文件。是的,myBundle.bundle 处于 MyProject 的“复制包资源”阶段以及目标依赖项。

顺便说一句,请解释我应该如何为这个项目的所有部分设置构建阶段的“目标依赖项”、“将二进制文件与库链接”和“复制捆绑资源”部分,以便最终的应用程序包含所有内容。

谢谢。

【问题讨论】:

    标签: iphone ios ipad cocoa-touch cocoa


    【解决方案1】:

    Target Dependencies 仅表示在当前目标构建之前将首先执行哪些其他目标。如果您想在编译主项目之前对库和捆绑包进行更改,请确保包含这些目标中的每一个。如果您从依赖项中删除它们,项目仍然可以正常构建,当您想要添加更改时,您只需要手动构建库的项目。

    与二进制库的链接应该同时显示 libraryA 和 B。它将引用该库的最新构建版本,因此结合目标依赖项,您的 MyProject 应用程序将包含对您的库的所有最新更改。

    如果您的 MyProject 应用程序运行良好,则说明您所做的一切都是正确的。如果您可以引用静态库中的类而不会出现链接器错误,则说明这些类已正确链接。如果来自 myBundle 的资源显示在应用程序的 UI 中,那么它也被正确复制。

    如果您缺少捆绑包中的文件,请查看您的 MyBundle 项目并确保其 Copy Bundle Resources 部分显示您想要包含的文件。

    【讨论】:

    • MyBundle.bundle 包含所有资源,但 MyProject.app 是类似于将提交给苹果的最终应用程序不包含。至少我没有看到其中的任何捆绑图像。
    • 删除依赖/复制资源并再次添加后,它们现在已包含在应用程序中。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    相关资源
    最近更新 更多