neo*_*eye 1 xcode nsbundle ios run-script
我正在寻求有关如何在项目中的 4 个目标之间共享资产的建议:A.app、B.app、C.app、D.app
在“运行脚本”阶段,将文件从 Assets.bundle 复制到 *.app 目标中,如下所示:
cd "${BUILT_PRODUCTS_DIR}" ls Assets.bundle | sed '/Info.plist/d' | sed '/Info.plist/d' | xargs -t -I {} cp -r Assets.bundle/{} "${CONTENTS_FOLDER_PATH}/"
但是,当我运行该应用程序时,用户界面看起来不正确。.xib 已加载,但未加载任何图像!图像文件和 nib 文件似乎已正确复制到 .app 文件夹中。我的假设是,编译后的 .nib 文件假定它位于 Assets.bundle 文件夹内,从而解释了为什么它在位于 Assets.bundle 文件夹外时不起作用。
我在这种方法中遗漏了什么吗?
创建一个由 {A,B,C,D}.app 目标#imported 的 Assets.xcconfig 文件。
将“复制捆绑资源”从 A.app 目标镜像到 {B,C,D}.app 目标
使用 ruby 脚本,我可以更新“project.pbxproj”文件。
在 {A,B,C,D}.app 目标上手动维护“复制捆绑资源”。
编辑:我想放弃这种“目标会员”方法,因为这是一个大项目,很多人都在贡献。
在这个项目中,我有 >1000 个图像文件和 >150 个 .xib 文件。有许多遗留代码使用硬编码路径查找。返工需要时间。我已经在小项目上做了这个改变。这是一个非常优雅的解决方案。然而,如此规模的返工将需要大量时间。
为什么不直接使用 XCode 的集成处理呢?选择一个资产,在右侧实用程序面板的“目标成员资格”部分中选择应包含该资产的目标。我用它来在免费和付费版本之间切换 xib、图形等,至少对此非常有效。
忘记提及:如果您包含同名文件的变体,为了更轻松地将它们放在文件夹或捆绑包中,以便可以将它们分开。然后使用捆绑包/文件夹名称向目标添加定义,以便您可以从任何路径自动加载它们。
| 归档时间: |
|
| 查看次数: |
3393 次 |
| 最近记录: |