ios - 在现有 swift 项目中嵌入 unity 时获取 "duplicate symbol _main"

标签 ios swift unity3d

我正在尝试将一个统一项目嵌入到现有的 swift 项目中。 我收到以下错误:

duplicate symbol _main in: /Users/vikasroy/Library/Developer/Xcode/DerivedData/CaptainCreek-fohhjxvaawusmeeuopzkmqmiplys/Build/Intermediates.noindex/CaptainCreek.build/Debug-iphoneos/CaptainCreek.build/Objects-normal/arm64/main.o /Users/vikasroy/Library/Developer/Xcode/DerivedData/CaptainCreek-fohhjxvaawusmeeuopzkmqmiplys/Build/Intermediates.noindex/CaptainCreek.build/Debug-iphoneos/CaptainCreek.build/Objects-normal/arm64/AppDelegate.o ld: 1 duplicate symbol for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

知道问题出在哪里吗?

当我从 AppDelegate 文件中删除 @UIApplicationMain 注释时,它可以正常工作,但 Unity Player 会在启动时直接打开。

我的应用有一个不同的主屏幕。

最佳答案

Unity 生成的代码在文件 main.mm 中包含另一个主要方法。必须重命名此方法才能解决错误。 尽管您将需要生成的 main 中的代码来初始化 Unity Player。

此外,您还需要更多步骤才能成功嵌入 unity 项目:
- 您需要链接所有必需的库和
- 在您的 AppDelegate 中保存一个 UnityAppController 实例,并通过 UnityAppController.h 访问它

GitHub 上有一个项目,所有这些修改都是自动化的:https://github.com/jiulongw/swift-unity

关于ios - 在现有 swift 项目中嵌入 unity 时获取 "duplicate symbol _main",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57199128/

相关文章:

ios - SpriteKit SKPhysicsBody splinter 的碰撞

ios - 选择时如何更改位于 tableVIewCell 上的 UIButton 的图像。在 swift 3

swift - 操作无法完成。 Mach 错误 - 308 (pic/mig) 服务器在 swift 4 和 Xcode 9.2 中死亡

ios - 无法在 iPhone 中获取密码 UItextfield,但在模拟器中可以

ios - 如何在 swift 中调用 UnitySendMessage 方法?

iphone - iPhone 版 pdf 阅读器

ios - 缩放 UIViews 组但保持其位置

ios - Swift Parse 如何使应用程序离线工作?

c# - 无法将类型 '(float xpos, int, int)'隐式转换为 'UnityEngine.Vector3'

ios - Unity Facebook SDK FB.Feed 未发布