自定义iOS框架中的资源

5
我在Xcode 6中创建了一个空的单视图应用程序(FWTest),并添加了一个Cocoa Touch Framework(FWTestKit)作为目标,并要求它嵌入到FWTest中。然后,我向框架中添加了一张图片(photo.png),我希望在构建和存档我的应用程序时,它位于Frameworks / FWTestKit.framework / Versions / A / Resources / photo.png中。但是,我发现它在Frameworks / FWTestKit.framework / photo.png中。
如何使它至少位于资源文件夹中?最好是一个有版本号的文件夹,这样我就可以发布不同版本的框架?
当我将此框架添加到另一个应用程序中时,我需要做特殊处理以确保资源与其捆绑在一起,以便当我从框架内部引用资源时,我可以确信它也可用于在另一个应用程序中使用?
干杯,
Nik

源代码在这里,为了确保准确性:https://www.dropbox.com/s/v741euhuh2llyzm/FWTest.zip?dl=0 - niklassaers
当使用命令行执行xcodebuild时,令人困惑的一行是:"CopyPNGFile build/Release-iphoneos/FWTestKit.framework/photo.png FWTestKit/photo.png"。 - niklassaers
你应该重新考虑你的架构,这样你就不需要关心磁盘上photo.png的路径。那种方法根本无法很好地扩展。 - Nick
我通过 NSBundle.resourcePath() 获取路径,因此在架构上没有问题。我只是希望我的框架目录结构看起来像一个真正的框架,而不是仅仅混杂在框架根文件夹中。 - niklassaers
2个回答

5

step1 如果您需要的结构是]![step2您应该将您的photo.png添加到一个单独的文件夹中(我们称之为“gica”)。然后将文件夹拖入项目中,检查是否需要复制项目并创建文件夹引用。接下来(重要的是),在构建阶段中,再次将photo.png拖到“复制束资源”中,保持“复制项目”,并创建文件夹引用。编译完成后,您现在应该拥有所需的文件夹结构[它保留了gica/photo.png]。输入图像描述


0

我认为你需要重新审视版本控制的架构。无论如何,如果你仍然需要将图像放在文件夹中,请尝试创建一个运行脚本。

在你的构建阶段中,不要将图片添加到复制捆绑资源阶段中。你可以创建一个 shell 脚本来将你的图片复制到所需的文件夹中。请注意,构建阶段按照它们的顺序运行。我的意思是,你可以通过自己的 shell 脚本定制 xCode 构建过程。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接