Linker errors
Thanks for sharing this code. Quick question regarding your example app:
I had to add libIphone to the framework to get it compiled but when I run the unity-framework-ios test project I get tons of linker errors for missing symbols. See below an example.
This is using Xcode9/Unity2017.4 and trying to run on an iPhone 8. Any idea?
Undefined symbols for architecture arm64:
"_UnityNotifyDeferSystemGesturesChange", referenced from:
iphone::DeliverUnityUIEvents() in UnityOutFramework(platformdependent_iphoneplayer_0.o)
"_il2cpp_gchandle_get_target", referenced from:
ScriptingGCHandle::ResolveBackendNativeGCHandle(unsigned long long) in UnityOutFramework(runtime_scripting_3.o)
"_il2cpp_gchandle_free", referenced from:
ScriptingGCHandle::ReleaseAndClear() in UnityOutFramework(runtime_scripting_3.o)
"_il2cpp_gchandle_new_weakref", referenced from:
ScriptingGCHandle::Acquire(ScriptingObjectPtr, ScriptingGCHandleWeakness) in UnityOutFramework(runtime_scripting_3.o)
"_il2cpp_gchandle_new", referenced from:
ScriptingGCHandle::Acquire(ScriptingObjectPtr, ScriptingGCHandleWeakness) in UnityOutFramework(runtime_scripting_3.o)
"_il2cpp_unhandled_exception", referenced from:
ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool) in UnityOutFramework(runtime_scripting_2.o)
"_il2cpp_free", referenced from:
Scripting::ErrorMessageForUnsupportedEnumField(ScriptingFieldPtr) in UnityOutFramework(runtime_scripting_1.o)
"_il2cpp_exception_from_name_msg", referenced from:
Scripting::CreateManagedExceptionImpl(char const*, char const*, char const*, char*) in UnityOutFramework(runtime_scripting_1.o)
Scripting::RaiseMonoException(char const*, ...) in UnityOutFramework(runtime_scripting_1.o)
Scripting::CreateNullExceptionObject(ScriptingObjectPtr) in UnityOutFramework(runtime_scripting_1.o)
"_il2cpp_runtime_unhandled_exception_policy_set", referenced from:
InitializeIl2CppFromMain(core::basic_string<char, core::StringStorageDefault<char> > const&, core::basic_string<char, core::StringStorageDefault<char> > const&, int, char const**) in UnityOutFramework(runtime_scripting_1.o)
"_il2cpp_set_config_dir", referenced from:
InitializeIl2CppFromMain(core::basic_string<char, core::StringStorageDefault<char> > const&, core::basic_string<char, core::StringStorageDefault<char> > const&, int, char const**) in UnityOutFramework(runtime_scripting_1.o)
"_il2cpp_set_data_dir", referenced from:
InitializeIl2CppFromMain(core::basic_string<char, core::StringStorageDefault<char> > const&, core::basic_string<char, core::StringStorageDefault<char> > const&, int, char const**) in UnityOutFramework(runtime_scripting_1.o)
"_il2cpp_init", referenced from:
InitializeIl2CppFromMain(core::basic_string<char, core::StringStorageDefault<char> > const&, core::basic_string<char, core::StringStorageDefault<char> > const&, int, char const**) in UnityOutFramework(runtime_scripting_1.o)
"_il2cpp_set_config", referenced from:
InitializeIl2CppFromMain(core::basic_string<char, core::StringStorageDefault<char> > const&, core::basic_string<char, core::StringStorageDefault<char> > const&, int, char const**) in UnityOutFramework(runtime_scripting_1.o)
"_il2cpp_domain_assembly_open", referenced from:
MonoManager::LoadAssemblies() in UnityOutFramework(runtime_scripting_1.o)
"_il2cpp_add_internal_call", referenced from:
scripting_add_internal_call(char const*, void const*) in UnityOutFramework(runtime_scriptingbackend_il2cpp_0.o)
"_il2cpp_unity_liveness_calculation_from_root", referenced from:
scripting_liveness_calculation_from_root(ScriptingObjectPtr, void*) in UnityOutFramework(runtime_scriptingbackend_il2cpp_0.o)
"_il2cpp_domain_get", referenced from:
scripting_domain_get() in UnityOutFramework(runtime_scriptingbackend_il2cpp_0.o)
MonoManager::LoadAssemblies() in UnityOutFramework(runtime_scripting_1.o)
"_il2cpp_get_corlib", referenced from:
scripting_get_corlib() in UnityOutFramework(runtime_scriptingbackend_il2cpp_0.o)
MonoManager::GetScriptingClass(char const*, char const*, char const*) in UnityOutFramework(runtime_scripting_1.o)
Scripting::CreateManagedExceptionImpl(char const*, char const*, char const*, char*) in UnityOutFramework(runtime_scripting_1.o)
Scripting::CreateNullExceptionObject(ScriptingObjectPtr) in UnityOutFramework(runtime_scripting_1.o)
@ohwhen - I can see you managed to integrate Unity into a React Native app somehow (the Footlocker one) Congrats! - Did you end up compiling to a framework (like here)?
@liamwalsh oops sorry just seeing this now, yes I managed to compile it to a framework as a static library. I'm actually in the process of opensourcing our approach soon (aiming this month).
The Foot Locker app is a native Swift app, we didn't use React Native but did do most of our UI as a simple embedded webapp.
i meet same problem