如何在Xcode中为iPhone应用程序创建我自己的包

如何在Xcode中为iPhone应用程序创建我自己的包,iphone,objective-c,xcode,facebook,bundle,Iphone,Objective C,Xcode,Facebook,Bundle,我在为我的应用程序创建捆绑包以及将文件放入捆绑包时遇到了一些困难 例如,他使用自己的框架为iPhone应用程序开发了一个捆绑包。同样,我还想创建一个捆绑包,它可以被许多应用程序重用 我的问题是: 我应该按照什么步骤为任何类型的应用程序创建捆绑包 创建捆绑包时应注意什么 首先,由于您的问题被标记为iPhone,因此您只能在iPhone的捆绑包中包含代码。因此,基本上,您只能使用捆绑包打包图片、声音文件和其他静态数据 在XCode中创建新项目时,有一个选项可以将目标设置为bundle(在Frame

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

例如,他使用自己的框架为iPhone应用程序开发了一个捆绑包。同样,我还想创建一个捆绑包,它可以被许多应用程序重用

我的问题是:

  • 我应该按照什么步骤为任何类型的应用程序创建捆绑包
  • 创建捆绑包时应注意什么

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

在XCode中创建新项目时,有一个选项可以将目标设置为bundle(在Framework&Library下),但资产bundle只是一个带有.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的目录中。在导入捆绑包的项目中,我从单独的构建阶段触发此脚本,以便自动跟踪更改

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

您也可以这样做:

在finder中创建文件夹,向其中添加文件,将其重命名为bundlename.bundle

拖到Xcode中-成功

要访问,请使用PathToMinBundle+“/bundlename.bundle”的形式


来源:

由于我还没有找到加载xib文件的方法,是否可以从此捆绑包加载xib文件?您可以在[[NSBundle mainBundle]loadNibNamed:@“MyViewController”所有者:self选项:nil]和[aViewController initWithNibName:@“MyViewController”捆绑包:nil]中使用相应的捆绑包(nil只是指主捆绑包)但是你不能有一个外部包,对吗?像NSBundle*bundle=someFunctionToLoadExternalBundle();[bundle loadNibNamed:@“name”所有者:自选项:nil];我在谷歌上搜索了一下,结果发现这是不可能的。只是看看你是否发现了一种奇迹般的方法,但我知道这可能永远不会发生。你说的外部捆绑是什么意思?当然,您需要在应用程序包中包含该包。然后您可以像这样使用它,例如:UIImage*myImage=[UIImage imagename:@“MyBundle.bundle/images/myImage.png”];总的来说,我建议您花点时间阅读苹果公司关于以下主题的大量文档,而不仅仅是谷歌搜索: