2

我有一个用于 unity3d 的 iOS 插件,里面有一个静态库,这个库使用 .bundle 中的一些图像。但是我不知道如何将我的包包含到 Unity 包中。当我将包放入包并尝试从 Unity3d 编辑器构建项目时,最后我的包没有包含在生成的 XCode 项目中。

所以我有两个问题:

1)有没有办法将它复制到生成的项目中?

2)是否可以从 unity3d 插件(我对 AdSupport.framework 有依赖关系)中指定额外的框架,以包含在生成的项目中。

更新:您可以将您的捆绑包复制到 Assets/WebPlayerTemplates,这样 Unity3d 就不会从那里导入任何内容,该目录也会导出到 unitypackage。最后一步是使用 postbuild 脚本将你的包包含到生成的 Xcode 项目中,我为此使用了 XUPorter

4

3 回答 3

2

Unity 将Assets/Plugins/iOS文件夹中的每个文件复制到 Xcode 项目的 Library 文件夹中。这对于您的 lib 文件和其他东西来说是完美的,但是当涉及到目录结构时它会失败。资源包是目录,因此 Unity 只是复制目录的.meta文件并拒绝复制其中的文件。

解决此问题的方法是手动复制您的包并将它们导入 Xcode(菜单File / Add File to "Unity-iPhone")。之后,您应该始终以附加模式导出您的 iOS 项目(默认情况下 CMD+B 会执行此操作)。有两个缺点:

  • 当您更新到较新版本的 Unity 时,该项目通常会被替换,因此您的捆绑包已经消失。如果您使用 git 进行版本控制,我建议将包添加到存储库,Subversion 用户必须做额外的工作。
  • 每当您的库项目中的包发生更改时,您都必须复制它。如果这种情况经常发生而令人烦恼,您可以在构建过程中设置一个预操作,即编写一个小的 shell 脚本,从 libraty 项目中复制您的资源包。这可以在Edit Scheme中完成: 编辑方案/构建/预操作
    同样,这可能会在 Unity 更新时被覆盖,您必须再次手动设置预操作。
于 2013-02-14T17:58:49.267 回答
1

我发现没有办法配置 Unity3d,使其包含额外的框架和捆绑包来生成 Xcode 项目(即 Marmalade SDK 允许您通过配置这样做),我使用mod_pbxproj和 Unity3d 控制台工具来生成 XCode 项目并注入构建完成后项目的所有必要包和框架。

有一个更好的选择,请参阅问题本身。

于 2013-03-13T12:48:14.687 回答
1

其实是有办法的。不确定这是否是在您的回答/评论之后添加的,但是;

  1. 在目录中找到您的 .bundle 文件(在 Unity 编辑器中)并单击它。
  2. 在 Inspector 面板中,仅从Include Platforms中选择iOS 在此处输入图像描述
  3. 在 Inspector 面板中单击Apply down。
  4. 在为 iOS 构建时,您将在导出 Xcode 项目时看到 .bundle [检查构建阶段/复制捆绑资源]。
于 2018-12-16T00:11:23.290 回答