[ProjectName] was compiled with optimization - stepping may behave oddly; variables may not be available.
何时遇到该问题
打包成xcode项目后,在xcode中真机运行时闪退崩溃,得到该错误信息原因
具体原因
未知
版本
Xcode 9 其他版本未测试
Unity2017.2.0 Unity2017.2.1p2 其他版本未测试
解决方案
1. 在xcode 的 Custom Compiler Flags -> Other C Flags 中添加:DRUNTIME_IL2CPP=1
参考: https://stackoverflow.com/questions/45078851/optimization-stepping-may-behave-oddly-ios-unity
2 通过关闭编译优化。在BuildSetting中分别设置LLVM Code Generation和Swift Code Generation 中的Optimization Level 为None
参考:https://stackoverflow.com/questions/32772573/project-name-was-compiled-with-optimization-stepping-may-behave-oddly-varia
3. 从头到尾检查控制台输出 排查警告或者错误信息。我的项目中发现控制台输出
“Could not produce class with ID 258.
This could be caused by a class being stripped from the build even though it is needed. Try disabling 'Strip Engine Code' in Player Settings.”
按要求在unity的ios player setting中禁用Strip Engine Code即可
类似:"__ProfileSignOff", referenced from:_GA__ProfileSignOff_m4067977632 in Bulk_Assembly-CSharp-firstpass_14.o
(maybe you meant: _GA__ProfileSignOff_m4067977632)
"__ProfileSignInWithPUIDAndProvider", referenced from:
何时遇到该问题
Unity导入了某些SDK,然后在xcode中构建时错误
具体原因
可能Unity导出xcode工程后,相关SDK的库文件引用出错误了,该链接库有__ProfileSignOff等方法定义 ,也可能缺少或丢失SDK库文件,请检查文件是否存在.
版本
任何unity和xcode版本
解决方案
在SDK中,找到SDK库文件,重新导入