DEBUG | Unknown type name '__declspec'

来源:互联网 发布:python matplotlib曲线 编辑:程序博客网 时间:2024/05/16 10:03

今天在在用U3D打包成iOS的xcode工程时,遇到很多问题,整理一下,这里我用的是xcode8.3  unity5.3

1. xcode打开工程后发现没有适合的模拟器可以运行


系统提示说:

A build only device cannot be used to run this target.

please select an available device or choose a simulated device as the destination.

这里是因为unity在打包时,你在Player设置中设置了打包成在实体设备上运行,所以不支持模拟器。

只要在打包时,设置为simulator就可以在模拟器上运行了



2. 代码错误,提示有个符号无法识别

....../Libraries/libil2cpp/include/codegen/il2cpp-codegen.h:139:1: Unknown type name '__declspec'

定位到代码文件il2cpp-codegen.h后,发现是一个用define定义的宏定义NORETURN,继续查找,发现宏定义是在il2cpp-config.h中

百度一下,发现这个__declspec(noreturn) 是用来标注一个不回返回的函数,也就是调用这个函数后下面的代码都会不被执行到,本来这种函数编译器是会报错的,用这个修饰后就不会报错了。解决办法是用__attribute__((noreturn))来替换。__attribute__((noreturn))也是一样的功能,不过其是gcc支持的标注,而__declspec(noreturn)是windows的vs编译器支持的标注。解决方法出处




3.  在实体机上运行提示了设备的指令集不支持

iPhone’s arm64 architecture to....(找不到原来的报错语句了)

总之就是你的工程建立的指令集没有涵盖实体机的指令集,必须添加实体机的指令集到工程build中,也就是上面说的arm64中就可以了


.


具体有关architectures设置可以看下面的链接:

http://www.jianshu.com/p/3fce0bd6f045


4. 如果提示实体iOS版本高于你xcode所能设置的最高等级

This iPhone 4 is running iOS 11.1.1 (15B150), which may not be supported by.........................

有两个解决办法

1)升级xcode到最新,可能还会顺带要你升级一波macOS到最新 /滑稽

2)下载相应的SDK包,加入到已有的xcode中,具体操作见这里,其中最新的SDK下载见这里

(网上很大部分都是说直接把SDK拷贝到DeviceSupport就可以了,但是我在拷贝完后尝试仍旧不行,然后用博客中说复制多一份SDKs中在修改plist文件后才可以)



原创粉丝点击