我正在尝试将一个统一项目嵌入到现有的 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/