【问题标题】:How to create my own bundle in Xcode, for iPhone application如何在 Xcode 中为 iPhone 应用程序创建我自己的包
【发布时间】:2010-04-05 13:05:29
【问题描述】:

我在为我的应用程序创建捆绑包以及在捆绑包中放置文件时遇到了一些困难。

例如,Facebook 使用其框架为 iPhone 应用程序开发了一个捆绑包。同样,我还想创建一个可以在许多应用程序中重复使用的包。

我的问题是:

  • 我应该遵循哪些步骤来为任何类型的应用程序创建捆绑包?
  • 创建捆绑包时应注意什么?

【问题讨论】:

    标签: iphone objective-c xcode facebook bundle


    【解决方案1】:

    首先,由于您的问题被标记为 iPhone,因此您只能在 iPhone 上的捆绑包中包含代码。所以基本上只能用bundle来打包图片和声音文件等静态数据。

    当您在 XCode 中创建新项目时,可以选择将目标设为捆绑包(在框架和库下),但资产捆绑包只是带有 .bundle 后缀的目录。我用这个小脚本生成我的:

    #!/bin/bash
    echo "Building assets bundle."
    if [ -d ./MyAssets.bundle ]; then
       rm ./MyAssets.bundle/*
    else
       mkdir ./MyAssets.bundle
    fi
    find ./assets -type f -print0 | xargs -0 -J% cp % ./MyAssets.bundle
    

    (我不是 bash 黑客,所以这可能可以通过无数方式改进。欢迎提出建议!)

    这需要一个文件夹层次结构并将其扁平化(我讨厌层次结构)到一个名为 MyAssets.bundle 的目录中。在导入包的项目中,我从单独的构建阶段触发此脚本,以便自动跟踪更改。

    如果你想学习如何创建框架包,它会有点复杂(你必须遵循某些约定并在 plist 中包含信息),但对于 iPhone 包,这几乎就是你需要知道和做的所有事情.

    【讨论】:

    • 是否可以从这个包中加载 xib 文件,因为我还没有找到这样做的方法?
    • 您可以在 [[NSBundle mainBundle] loadNibNamed:@"MyViewController" owner:self options:nil] 和 [aViewController initWithNibName:@"MyViewController" bundle:nil] 中使用适当的包(nil just表示主捆绑包)
    • 但是你不能有一个外部包,对吧?像 NSBundle *bundle = someFunctionToLoadExternalBundle(); [bundle loadNibNamed:@"name" owner:self options:nil];我用谷歌搜索,只发现它无法完成。只是检查你是否发现了一个奇迹般的方法或其他什么,但我知道它可能永远不会发生。
    • 外部捆绑包是什么意思?您当然需要在您的应用程序包中包含该包。然后你可以像这样使用它,例如: UIImage* myImage = [UIImage imageNamed:@"MyBundle.bundle/images/myImage.png"];
    • 一般来说,我建议您花时间阅读 Apple 关于以下主题的大量文档:developer.apple.com/library/ios/#documentation/corefoundation/…
    【解决方案2】:

    你也可以这样做:

    在finder中创建一个文件夹,添加文件,重命名为bundlename.bundle

    拖入 Xcode - 成功!

    访问,使用PathToMainBundle+"/bundlename.bundle"的形式

    来源:https://stackoverflow.com/a/5277452/736384

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 2010-10-12
      相关资源
      最近更新 更多