在Android上,针对IL2CPP的Unity Facebook插件构建失败

时间:2016-08-29 21:28:04

标签: facebook-unity-sdk

我试图在Unity 5.4中使用适用于Android IL2CPP的Facebook插件构建我们的Unity游戏(现在官方支持Android IL2CPP)。

构建失败,示例链接错误:

Temp/StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity_0.cpp:16129: error: undefined reference to 'IOSInit'

还有其他人试过吗?建议?

我不知道Facebook人们是否尝试过Android Il2CPP :)但如果不是,请考虑投票支持它。我们绝对计划切换到IL2CPP以改进Android / iOS运行时兼容性和性能/混淆。

1 个答案:

答案 0 :(得分:0)

明显而简短的回答:您正在尝试将iOS代码与Android相关联:) 尝试从构建中排除iOS插件,例如,在Unity插件检查器中设置平台复选框。

更多详情

最有可能的是,该插件有一些使用PInvoke调用iOS特定函数的代码。电话可能被

包围
if (Application.platform == RuntimePlatform.iPhonePlayer) 

因此实际上并没有在其他平台上调用它。

这在Mono上效果很好。但是在为IL2CPP构建时,Unity会将所有托管代码转换为C ++源代码,编译并链接它。链接时,需要定义调用的iOS函数 - 这在构建Android IL2CPP时失败。

解决方案是从构建中排除此代码。如果您有源代码,请使用

围绕iOS通话
#if UNITY_IOS

如果您没有源代码,请尝试从构建中排除不需要的程序集。

与此同时,我会联系Facebook的人并要求解决它。