我正在尝试将Unity整合到iOS应用程序中。我已经按照本教程http://www.agnosticdev.com/blog-entry/swift/integrating-unity-and-vuforia-ios-swift-project
进行了操作现在,在我启动应用程序时进行集成后,它会崩溃并在控制台上显示此错误:project 'MyProject', 'Debug - local'=>:debug, 'Debug - staging'=>:debug, 'Debug - PRODUCTION'=>:debug
我试过谷歌搜索这个链接:
并没有改变。
我已经更改了项目和pod的优化级别。
我还将此行添加到pod文件:@EnableBinding(Source.class)
@EnableConfigurationProperties(TimeSourceOptionsMetadata.class)
public class TimeSource {
private static final Logger logger = LoggerFactory.getLogger(TimeSource.class);
@Value("${app.info.instance_index}")
private String instanceIndex;
@Autowired
private TimeSourceOptionsMetadata timeSourceOptionsMetadata;
@Autowired
@Qualifier(Source.OUTPUT)
private MessageChannel outputMessageChannel;
/** with using the injected MessageHeaders and wrapping with a Hystrix CircuitBreaker */
@Scheduled(fixedDelay = 2500, initialDelay = 500)
@HystrixCommand(fallbackMethod = "fallbackTimerMessageSource")
public void timerMessageSource() {
HelloDTO helloDTO = new HelloDTO();
helloDTO.name = new SimpleDateFormat(this.timeSourceOptionsMetadata.getFormat()).format(new Date());
logger.info("[{}]Produced: '{}'", instanceIndex, helloDTO);
Message<HelloDTO> theMessage = MessageBuilder.withPayload(helloDTO).setHeader(MessageHeaders.CONTENT_TYPE, "application/json")
.build();
outputMessageChannel.send(theMessage, 1000l);
}
public void fallbackTimerMessageSource(Throwable t) {
logger.error("Hystrix fallbackTimerMessageSource handle exception. The original exception was {}", t.getMessage());
Throwable cause = t.getCause();
logger.error("Exception cause was: {} {}", (cause == null ? "null" : cause.getClass().getName()),
(cause == null ? "null" : cause.getMessage()));
}
}
(在目标'projectname'之前)
此外,我已统一取消选中剥离引擎代码。
我该怎么做才能克服这个错误? 任何帮助将不胜感激,谢谢。
答案 0 :(得分:2)
我有同样的问题,我解决了它添加到Apple LLVM - 自定义编译器FLAG:
其他C标志:-DRUNTIME_IL2CPP = 1
答案 1 :(得分:1)
您正在调试的代码是IL2CPP代码,该代码可能位于预先构建了优化的库中(可能位于libiPhone-lib.a中)。您的构建设置仅影响您现在在xcode项目中编译的代码,因此它们不会影响预构建的lib。要消除警告,您需要重建该库,并且您需要使用Unity源代码来执行此操作。
更重要的是,它不是崩溃的原因。它只是告诉你,找到崩溃的根源会变得更加困难。
看起来它正在调用一个名为LoadMetadataFile的函数,并在访问返回时崩溃。您可以在该函数调用上设置断点,并查看进出该函数的内容以查找下一个调试步骤(bl指示突出显示的崩溃线上方5行)。
以下是一些可能对您有帮助的文件: 苹果调用会议文档: https://developer.apple.com/library/content/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html
Arm指令参考(对崩溃指令开放):http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/LDRSW_imm.html