Ошибка clang: сбой команды компоновщика для Unity в Native - PullRequest
1 голос
/ 13 марта 2019

Мой проект - интеграция с Unity in Native, возникла проблема с ошибкой лягушки: сборка не удалась, см. Изображение. Я прошел через другие источники в переполнении стека, чтобы очистить с ошибкой лязга. Я попытался удалить свой файл main.mm, затем сборка прошла успешно, но приложение вылетало при вызове экрана единства. Поэтому я должен сохранить оба файла AppDelgate и файл main.mm. Не удалось исправить эту .... проблему. если кто-нибудь может, пожалуйста .. enter image description here

1 Ответ

0 голосов
/ 20 марта 2019

Исходя из вашего вопроса, надеемся, что это единство в быстрой нативной интеграции.

ПРИМЕЧАНИЕ. Это решение предназначено только для случая: Unity в родной iOS

От вашегоСнимок экрана показывает, что вы используете 2 основных файла в Xcode.Есть 2 варианта, чтобы это исправить.

Опция 1) вы можете хранить оба файла в Этапы сборки -> Исходники компиляции , но в вашем AppDelegate введите команду@ UIApplicationMain

import UIKit
//@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate {
.......................................}

Это построение выполнено успешно, и на начальном этапе появляется представление единства.

Вариант 2) Если вы хотите показать представление единства с помощью кнопки, удалите свойФайл main.mm из Этапы сборки -> Компилировать исходники , поэтому приложение не будет аварийно завершать работу в режиме единства с помощью 'общего окна appDelegate' и пробует этот код в своем AppDelegate (uncommand @UIApplicationMain)

 func unityWindow() -> UIWindow? {
        return UnityGetMainWindow()
    }

    func showUnityWindow() {
        unityWindow()?.makeKeyAndVisible()
    }

    func hideUnityWindow() {
        window!.makeKeyAndVisible()
    }

затем в вашем контроллере вида

 private var isShowUnityWindow = false
     override func viewDidLoad()
        {
            super.viewDidLoad()
           isShowUnityWindow = false

        }
         @IBAction func startUnityandHide(_ sender: UIButton)
            {

                isShowUnityWindow = !isShowUnityWindow
                var appDelegate = UIApplication.shared.delegate as? AppDelegate

                if isShowUnityWindow {
                    appDelegate?.unityWindow()!.frame = CGRect(x: 40, y: 200, width: 300, height: 300)
                    appDelegate?.showUnityWindow()
                } else {
                    appDelegate?.hideUnityWindow()
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...