IOS错误Could not produce class with ID

运行环境

Unity 5.3.5f1 (IL2CPP)编译IOS版本

XCode Version 7.2.1 (7C1002)

Mac OS X 10.11.3 (15D21) (Mac mini)

iPhone 5,6 ,iPad

错误信息

Could not produce class with ID

Could not produce class with ID XXX.
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.:<LoadWWWIEnumerator>c__Iterator99:MoveNext()

具体表现:可能是APP闪退,提示上示错误信息

解决办法

1. 在上面的错误提示中,有提示 disabling “Strip Engine Code

所以我们要做的就是在Player Setting – Other Setting,去掉勾选 Strip Engine

如果要Strip Engine

如果要Strip Engine,那就需要把不想被strip的添加进来。

1. 新建link.xml放在Assets目录下,里面添加不想被strip的dll的名字

ID查询: https://docs.unity3d.com/Manual/ClassIDReference.html

下面是导入高通Vuforia之后,SDK中默认的link.xml的内容

<linker>
    <!-- The following assemblies contain namespaces that should be fully preserved
         even when assembly stripping is used. Not excluding the assemblies below from
         stripping can result in crashes or various exceptions. -->
    <assembly fullname="Vuforia.UnityExtensions">
        <namespace fullname="Vuforia" preserve="all"/>
    </assembly>
    <assembly fullname="System">
        <namespace fullname="System.Runtime.InteropServices" preserve="all"/>
        <namespace fullname="System.Collections.Generic;" preserve="all"/>
        <namespace fullname="System.Linq;" preserve="all"/>
        <namespace fullname="System.Text.RegularExpressions;" preserve="all"/>
        <namespace fullname="System.IO;" preserve="all"/>
        <namespace fullname="System;" preserve="all"/>
    </assembly>
</linker>

如果提示的ID的是Editor的,比如 AnimatorController(ID 91)属于Editor包里的,不能用link.xm加回来,可以在Resource下建一个空的prefab,在上面挂一个AnimatorController,打包时留下这个prefab就可以确保这个类不被strip掉了。

参考:https://forum.unity3d.com/threads/could-not-produce-class-with-id-91-ios.267548/

Unity的默认值

以Unity5.3.5为例

ios平台,默认勾选了 Strip Engine Code,且Script Background为I2CPP

android平台,默认disabled Strip Engine Code,且Script Background为Mono2x

时间: 2024-10-10 19:58:33

IOS错误Could not produce class with ID的相关文章

IOS - unity3d错误Could not produce class with ID

运行环境 Unity 5.3.5f1 (IL2CPP)编译IOS版本 XCode Version 7.2.1 (7C1002) Mac OS X 10.11.3 (15D21) (Mac mini) iPhone 5,6 ,iPad 错误信息 Could not produce class with ID Could not produce class with ID XXX.This could be caused by a class being stripped from the buil

unityCould not produce class with ID 0. This could

unity 打包webgl或者ios,安卓是,加载ab文件突然莫名其妙的报错出了 Could not produce class with ID 0. 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. 这样的bug.但是在编辑器里面没有问题. ![](https:/

iOS 错误&quot;This class is not key value coding-compliant for the key&quot;解决方案

这个错误的出现是因为一个在File's Owner中一个已经链接的Interface Builder对象被删除或重命名了. 在 Interface Builder的Files's Owner右键查看,如果看到有警告标识,就是问题的所在. 下图中"aRemovedView"就有一个警告标识,这是因为我已经将它移除了,但是它还仍链接在IB中.因此就会给出错误:"Terminating app due to uncaught exception 'NSUnknownKeyExcep

【ZBar】ios错误ignoring file xxx missing required architecture x86_64 in file

解决方法: 1.在Project target里"Architectures"设置为:Standard (armv7,armv7s)或者  Standard (armv7,arm64) 2.设置"Build Active Architecture Only"为"NO" 还有一篇文章说的很牛逼,但是还咩有看,http://blog.csdn.net/lanmanck/article/details/39055503 原文地址:[ZBar]ios错误

iOS错误集合

1.ld: symbol dyld_stub_binding_helper not found, normally in crt1.o/dylib1.o/bundle1.o for architecture 原因:不支持低版本的系统如3.0 解决:Deployment Target was 3.0. Changing it to 4.3 fixed it.或者是更高的版本 iOS错误集合

android 编译错误 Error:(1, 0) Plugin with id &#39;com.android.application&#39; not found.

在导入一个项目时,由于它本身的gradle版本比较高,你试用比较旧版本的gradle时就报出Plugin with id 'com.android.application' not found.的错误 如果出现如上错误,只需要在build.gradle中添加下面代码即可: (直接加在 android{ } 的外面) buildscript { repositories { jcenter() // or mavenCentral() } dependencies { classpath 'com

ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1)

ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1) (一)NOLOGGING操作引起的坏块(ORA-01578和ORA-26040)简介 如果只是错误ORA-01578,而没有伴随ORA-26040,那么这个坏块是由其它的原因引起的坏块,可以尝试使用RMAN的BMR(Block Media Recovery)修复. 如果数据段(表段.索引段)被定义为NOLOGGING属性,那么当NOLOGGING加APPEND.UNRE

iOS用户数据安全:Keychain、Touch ID以及1Password

使用登录界面来保护APP用户数据是很好的方法--你可以使用Keychain(内嵌在iOS里的)来确保用户数据的安全.不过苹果现在使用Touch ID提供了另外一层保护,该功能适用于iPhone5.iPhone6. iPhone 6+.iPad Air2以及iPad mini 3. 如果这些都还不够,可以尝试iOS 8引入的扩展,你甚至可以使用AgileBits开发的1Password app来整合登录信息的存储和获取.这一切都要感谢AgileBits团队开发者开源了他们的扩展包.这样你就可以把管

IOS错误笔记(二)-------常见错误【转】

1. mutating method sent to immutable object' 从字面上理解:可变的消息发给了不可变的对象.比如NSDictionary类型的对象调用setValue方法.应该把NSDictionary 改成NSMutableDictionary类型.   2.Local declaration of 'content' hides instance variable   一般是函数里面定义的变量和class属性变量重名了.很少有和系统变量重名的情况.   3.unre