【发布时间】:2010-04-05 13:05:29
【问题描述】:
我在为我的应用程序创建捆绑包以及在捆绑包中放置文件时遇到了一些困难。
例如,Facebook 使用其框架为 iPhone 应用程序开发了一个捆绑包。同样,我还想创建一个可以在许多应用程序中重复使用的包。
我的问题是:
- 我应该遵循哪些步骤来为任何类型的应用程序创建捆绑包?
- 创建捆绑包时应注意什么?
【问题讨论】:
标签: iphone objective-c xcode facebook bundle
我在为我的应用程序创建捆绑包以及在捆绑包中放置文件时遇到了一些困难。
例如,Facebook 使用其框架为 iPhone 应用程序开发了一个捆绑包。同样,我还想创建一个可以在许多应用程序中重复使用的包。
我的问题是:
【问题讨论】:
标签: iphone objective-c xcode facebook bundle
首先,由于您的问题被标记为 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 包,这几乎就是你需要知道和做的所有事情.
【讨论】:
你也可以这样做:
在finder中创建一个文件夹,添加文件,重命名为bundlename.bundle
拖入 Xcode - 成功!
访问,使用PathToMainBundle+"/bundlename.bundle"的形式
【讨论】: