【问题标题】:Resources in custom iOS frameworks自定义 iOS 框架中的资源
【发布时间】:2015-04-04 00:01:15
【问题描述】:

我在 Xcode 6 (FWTest) 中制作了一个空的单视图应用程序,并添加了一个 Cocoa Touch Framework (FWTestKit) 作为目标,并要求它嵌入到 FWTest 中。然后我在框架中添加一个图像(photo.png),当我构建和归档我的应用程序时,我希望它在 Frameworks/FWTestKit.framework/Versions/A/Resources/photo.png 中。但是,我在 Frameworks/FWTestKit.framework/photo.png

中找到它

我怎样才能让它至少在资源文件夹中?最好是版本化文件夹,以便我可以发布不同版本的框架?

当我将此框架添加到另一个应用程序时,我是否需要做一些特别的事情来确保资源与其捆绑在一起,这样当我从我的框架中引用资源时,我可以确定它是可用的在其他应用中使用时也可以吗?

干杯

尼克

【问题讨论】:

  • 源代码在这里,很好的衡量标准:dropbox.com/s/v741euhuh2llyzm/FWTest.zip?dl=0
  • 从命令行执行 xcodebuild 时,令人困惑的一行是:“CopyPNGFile build/Release-iphoneos/FWTestKit.framework/photo.png FWTestKit/photo.png”
  • 你应该重新考虑你的架构,这样你就不需要关心 photo.png 在磁盘上的路径。这种方法根本无法很好地扩展。
  • 我通过 NSBundle.resourcePath() 获得路径,所以那里没有架构问题。我只是希望我的框架目录结构看起来像一个框架应该看起来,而不仅仅是在框架根文件夹中混杂在一起

标签: ios cocoa-touch ios8 frameworks resources


【解决方案1】:

您应该将您的 photo.png 添加到单独的文件夹中(我们称之为“gica”)。然后将文件夹拖到项目中,如果需要,选中复制项目并创建文件夹引用。然后(很重要)在构建阶段,在 Copy Bundle Resources 中再次拖动 photo.png,如果需要,保留 Copy items 并创建文件夹引用。编译后,您现在应该拥有所需的文件夹结构 [它保留 gica/photo.png].

【讨论】:

    【解决方案2】:

    我认为您需要修改有关版本控制的体系结构。无论如何,如果您仍然需要将图像放在文件夹中。尝试创建一个运行脚本。

    在您的构建阶段,而不是将您的图像添加到复制包资源阶段。您可以创建一个 shell 脚本来将您的图像复制到所需的文件夹。请注意构建阶段按照它们放置的顺序运行。我的观点是您可以通过自己的 shell 脚本自定义 xCode 构建过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      相关资源
      最近更新 更多