IOS错误Could not produce class with ID-阿里云开发者社区

开发者社区> 史迪奇abc> 正文

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

image

如果要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

image

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

image


本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/6080075.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
小记基于xstate实现携程金服业务流程动态化
小记基于xstate实现携程金服业务流程动态化
7 0
flutter 版本控制fvm
1先安装 choco powershell 管理员身份运行 不会的话,先打开一个powershell 窗口 ,然后右击任务栏,选择第一个,即可进入
4 0
【在家实践】 ECS 初体验
第一次体验云服务器,感觉十分奇妙。
9 0
原来使用PolarDB和ECS搭建门户网站并没有那么难
以前一直使用虚拟主机搭建网站,服务器就使用那些面板,一直对直接在服务器上搭建网站有些怵,跟着这个实验做,发现只需要不到十步就可以完成网站的搭建。
10 0
漫谈“架构团队”之组织架构(上)
漫谈“架构团队”之组织架构(上)
3 0
从平台到中台【下】
前情提要 平台化架构由于缺乏对于前端业务一以贯之的端到端的支撑能力,平台与平台之间存在gap。平台化架构按照康威定律,必然是几个平台,几个团队,涉及到巨大的沟通成本而导致协作困难。平台化架构在数据化运营上存在短板,往往需要把多个平台的数据集成到一起并加工分析而产生新的支持到业务的价值。
10 0
体验ECS
第一次体验云服务器,感觉十分奇妙。
10 0
Dart微基准测试第一部分
在过去的几个月里,我开始收到越来越多关于某些特定 Dart 操作性能的问题。以下是Romain Rastel在他关于提高 Flutter中 ChangeNotifier 性能的工作的背景下提出的此类问题的示例。 鉴于我的经验,我第一眼就知道这个特定的基准测试出了什么问题……但是为了讲故事,让我假装我没有。那我将如何处理这个问题? 我通常会首先尝试重复报告的数字。在这种特殊情况下,我将首先创建一个空的 Flutter 应用程序
5 0
Spring Boot 基础教程:创建 SpringBoot 项目的 3 种方式
上一篇中我们讲了 Spring Boot 的一些特点及优缺点,这一篇我们就来看看,如何创建一个最简单的 Spring Boot 项目!
7 0
使用APICloud AVM框架开发预约应用
前段时间跟朋友一起搞了一个预约的项目,前端用的APICloud的AVM框架做的,后端用的php开发的,用的tp5框架,没几天就搞出来了。简单跟大家分享一下开发中的一些功能点的实现吧。也欢迎大家一起探讨。
5 0
+关注
304
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载