我试图在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运行时兼容性和性能/混淆。
答案 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的人并要求解决它。