问题标签 [il2cpp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
358 浏览

ios - iOS 64 位支持 unity 集成应用

自 2015 年 2 月 1 日起,Appstore 要求提供 64 位支持并使用 iOS 8 SDK 构建。我们已经将我们的 iOS 应用程序与 unity 集成并且运行良好。目前我们正在使用 32 位版本的统一,我们使用在我们的 iOS 应用程序中构建的资产包。根据新规定,我们必须将 iOS 应用程序中的“架构”更改为“<strong>标准架构(armv7,arm64)”。它不支持应用程序中的统一部分。作为解决方案,统一建议为 脚本后端选择IL2CPP ,它可从Unity 4.6.2获得。除了将 Unity 升级到最新版本之外,还有什么解决方案吗?

0 投票
1 回答
2084 浏览

ios - Unity 4.6.6 Xcode“armv7/arm64 架构的未定义符号”链接器错误

我一直在使用 Unity 4.6.6 构建我的 Xcode 项目,并且在使用 IL2CPP 时遇到了问题。我在构建时在 Player 设置中选择通用架构(包括 armv7 和 arm64),在它生成的 Xcode 项目中,在构建时我遇到以下 Mach-O 链接器错误。

架构 armv7 的未定义符号:“_sqlite3_bind_int”,引用自:-[SmacBaseDao setSqlBindStatement:entity:colmunInfoList:emptyIsNull:] in libSmacTracking.a(SmacBaseDao.o) “_sqlite3_errmsg”,引用自:-[SmacBaseDao execSelectQuery:condition:colmun: libSmacTracking.a(SmacBaseDao.o) 中的 transactionDbObj:isTmp:] - libSmacTracking.a(SmacBaseDao.o) 中的 [SmacBaseDao execInsertQuery:transactionDbObj:isTmp:] - libSmacTracking 中的 [SmacBaseDao execUpdateQuery:condition:emptyIsNull:transactionDbObj:isTmp:]。 a(SmacBaseDao.o) -[SmacBaseDao getColmunsInfo:transactionDbObj:] in libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao getTableList] in libSmacTracking.a(SmacBaseDao.o) "_sqlite3_column_int",引用自:-[SmacBaseDao getNumber:column :] 在 libSmacTracking.a(SmacBaseDao.o) "_sqlite3_open" 中,引用自:-[SmacBaseDao dbOpen] 在 libSmacTracking.a(SmacBaseDao.o) "_sqlite3_exec",引用自:-[SmacBaseDao dbOpen] 在 libSmacTracking.a(SmacBaseDao. o) -[SmacBaseDao dbClos​​e:] 在 libSmacTracking.a(SmacBaseDao.o) "_OBJC_CLASS_$_NSManagedObjectModel" 中,引用自:libGoogleAnalyticsServices.a(GAICoreDataUtil.o) "_sqlite3_prepare_v2" 中的 objc-class-ref,引用自:-[SmacUpdate updateDB] 在 libSmacTracking.a(SmacUpdate.o) -[SmacBaseDao dbOpen] 在 libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execSelectQuery:condition:colmun:transactionDbObj:isTmp:] 在 libSmacTracking.a(SmacBaseDao.o) -[ SmacBaseDao execInsertQuery:transactionDbObj:isTmp:] 在 libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execUpdateQuery:condition:emptyIsNull:transactionDbObj:isTmp:] 在 libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao getColmunsInfo:transactionDbObj:] 在 libSmacTracking.a(SmacBaseDao.o) -libSmacTracking.a(SmacBaseDao.o) 中的[SmacBaseDao getTableList] ... "_sqlite3_step",引用自:libSmacTracking.a(SmacUpdate.o) 中的-[SmacUpdate updateDB] -libSmacTracking.a(SmacBaseDao.o) 中的[SmacBaseDao dbOpen] o) -[SmacBaseDao execSelectQuery:condition:colmun:transactionDbObj:isTmp:] 在 libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execInsertQuery:transactionDbObj:isTmp:] 在 libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execUpdateQuery:condition :emptyIsNull:transactionDbObj:isTmp:] 在 libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao getColmunsInfo:transactionDbObj:] in libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao getTableList] in libSmacTracking.a(SmacBaseDao.o) ... "_sqlite3_column_text",引用自:-[SmacBaseDao getString:column: ] in libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao getDateString:column:] in libSmacTracking.a(SmacBaseDao.o) "_sqlite3_finalize",引用自:-[SmacUpdate updateDB] in libSmacTracking.a(SmacUpdate.o) -[ SmacBaseDao dbOpen] 在 libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execSelectQuery:condition:colmun:transactionDbObj:isTmp:] 在 libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execInsertQuery:transactionDbObj:isTmp:] 在 libSmacTracking.a( SmacBaseDao.o) -[SmacBaseDao execUpdateQuery:condition:emptyIsNull:libSmacTracking.a(SmacBaseDao.o) 中的 transactionDbObj:isTmp:] -libSmacTracking.a(SmacBaseDao.o) 中的 [SmacBaseDao getColmunsInfo:transactionDbObj:] "_OBJC_CLASS_$_NSEntityDescription",引用自:libGoogleAnalyticsServices.a( GAIDataStore.o) objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o) "_OBJC_CLASS_$_NSManagedObjectContext",引用自:objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o) "_OBJC_CLASS_$_NSPersistentStoreCoordinator",引用自: libGoogleAnalyticsServices.a(GAIDataStore.o) "_kSecReturnData" 中的 objc-class-ref,引用自:KeychainItemWrapper.o 中的 -[KeychainItemWrapper secItemFormatToDictionary:] +[KeychainUtils getStoredValue:serviceName:accessGroup:errorDomain:error:] in KeychainUtils.o "_kSecMatchLimitOne",引用自:-[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] in KeychainItemWrapper.o "_kSecMatchLimit",引用自:-[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] in KeychainItemWrapper。 o “_OBJC_CLASS_$_NSFetchRequest”,引用自:libGoogleAnalyticsServices.a(GAIDataStore.o) 中的 objc-class-ref,“_NSOverwriteMergePolicy”,引用自:libGoogleAnalyticsServices.a(GAIDataStore.o) 中的 -[GAIDataStore contextWithModel:URL:] “_sqlite3_reset ",引用自:-[SmacBaseDao execInsertQuery:transactionDbObj:isTmp:] in libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execUpdateQuery:condition:emptyIsNull:transactionDbObj:isTmp:] 在 libSmacTracking.a(SmacBaseDao.o) "_kSecClassGenericPassword" 中,引用自: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] 在 KeychainItemWrapper.o -[KeychainItemWrapper dictionaryToSecItemFormat:] 在 KeychainItemWrapper.o -[KeychainItemWrapper secItemFormatToDictionary:] 在 KeychainItemWrapper。 o +[KeychainUtils getStoredValue:serviceName:accessGroup:errorDomain:error:] 在 KeychainUtils.o +[KeychainUtils setValue:key:servicename:accessGroup:force:errorDomain:error:] 在 KeychainUtils.o +[KeychainUtils deleteValue:serviceName:accessGroup: keychainUtils.o "_OBJC_CLASS_$_NSAttributeDescription" 中的 errorDomain:error:],引用自:libGoogleAnalyticsServices.a(GAICoreDataUtil.o) "_kSecAttrService" 中的 objc-class-ref,引用自: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] 在 KeychainItemWrapper.o +[KeychainUtils getStoredValue:serviceName:accessGroup:errorDomain:error:] 在 KeychainUtils.o +[KeychainUtils setValue:key:servicename:accessGroup:force:errorDomain:错误:] 在 KeychainUtils.o +[KeychainUtils deleteValue:serviceName:accessGroup:errorDomain:error:] 在 KeychainUtils.o "_kSecAttrLabel",引用自: -[KeychainItemWrapper resetKeychainItem] 在 KeychainItemWrapper.o +[KeychainUtils setValue:key:servicename: KeychainUtils.o "_NSSQLiteStoreType" 中的 accessGroup:force:errorDomain:error:],引用自:-[GAIDataStore coordinatorWithModel:URL:] in libGoogleAnalyticsServices.a(GAIDataStore.o) "_NSSQLiteErrorDomain",引用自:- [GAIDataStore performBlockAndWait:withError:] 在 libGoogleAnalyticsServices.a(GAIDataStore.o) "_sqlite3_bind_null" 中,引用自: -[SmacBaseDao setSqlBindStatement:entity:colmunInfoList:emptyIsNull:] 在 libSmacTracking.a(SmacBaseDao.o) "_kSecClass" 中,引用来自: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] 在 KeychainItemWrapper.o -[KeychainItemWrapper dictionaryToSecItemFormat:] 在 KeychainItemWrapper.o -[KeychainItemWrapper secItemFormatToDictionary:] 在 KeychainItemWrapper.o -[KeychainItemWrapper writeToKeychain] 在 KeychainItemWrapper.o +[KeychainUtils getStoredValue: KeychainUtils.o 中的 serviceName:accessGroup:errorDomain:error:] +KeychainUtils 中的 [KeychainUtils setValue:key:servicename:accessGroup:force:errorDomain:error:]。o +[KeychainUtils deleteValue:serviceName:accessGroup:errorDomain:error:] in KeychainUtils.o ... "_kSecAttrGeneric",引用自:-[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] in KeychainItemWrapper.o "_kSecAttrAccount",引用自: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] 在 KeychainItemWrapper.o +[KeychainUtils getStoredValue:serviceName:accessGroup:errorDomain:error:] 在 KeychainUtils.o +[KeychainUtils setValue:key:servicename:accessGroup:force:errorDomain:error:]在 KeychainUtils.o +[KeychainUtils deleteValue:serviceName:accessGroup:errorDomain:error:] 在 KeychainUtils.o "_kSecValueData",引用自: -[KeychainItemWrapper resetKeychainItem] 在 KeychainItemWrapper。o -[KeychainItemWrapper dictionaryToSecItemFormat:] in KeychainItemWrapper.o -[KeychainItemWrapper secItemFormatToDictionary:] 在 KeychainItemWrapper.o +[KeychainUtils setValue:key:servicename:accessGroup:force:errorDomain:error:] in KeychainUtils.o "_kSecAttrAccessGroup",引用自: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] 在 KeychainItemWrapper.o +[KeychainUtils getStoredValue:serviceName:accessGroup:errorDomain:error:] 在 KeychainUtils.o +[KeychainUtils setValue:key:servicename:accessGroup:force:errorDomain:error:]在 KeychainUtils.o +[KeychainUtils deleteValue:serviceName:accessGroup:errorDomain:error:] 在 KeychainUtils.o "_SecItemUpdate",引用自: -[KeychainItemWrapper writeToKeychain] 在 KeychainItemWrapper。o +[KeychainUtils setValue:key:servicename:accessGroup:force:errorDomain:error:] in KeychainUtils.o "_OBJC_CLASS_$_SKProductsRequest",引用自:AppStoreProcess.o "_sqlite3_bind_text" 中的objc-class-ref,引用自:-[ SmacBaseDao setSqlBindStatement:entity:colmunInfoList:emptyIsNull:] in libSmacTracking.a(SmacBaseDao.o) "_SecItemCopyMatching",引用自: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] in KeychainItemWrapper.o -[KeychainItemWrapper secItemFormatToDictionary:] in KeychainItemWrapper.o -KeychainItemWrapper.o 中的[KeychainItemWrapper writeToKeychain] +KeychainUtils.o "_sqlite3_close" 中的[KeychainUtils getStoredValue:serviceName:accessGroup:errorDomain:error:],引用自:-[SmacBaseDao dbClos​​e:] in libSmacTracking.a(SmacBaseDao.o) "_SecItemAdd",引用自: -[KeychainItemWrapper writeToKeychain] in KeychainItemWrapper.o +[KeychainUtils setValue:key:servicename:accessGroup:force:errorDomain:error:] in KeychainUtils.o "_SecItemDelete",引用自:-[KeychainItemWrapper resetKeychainItem] in KeychainItemWrapper.o +[KeychainUtils deleteValue:serviceName:accessGroup:errorDomain:error:] in KeychainUtils.o "_OBJC_CLASS_$_SKPayment",引用自:objc-class- AppStoreProcess.o "_kSecReturnAttributes" 中的引用,引用自: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] 在 KeychainItemWrapper.o +[KeychainUtils getStoredValue:serviceName:accessGroup:errorDomain:error:] 在 KeychainUtils.o +[KeychainUtils deleteValue:serviceName:accessGroup:errorDomain:error:] 在 KeychainUtils.o "_kSecAttrDescription",引用自:-[KeychainItemWrapper resetKeychainItem] in KeychainItemWrapper.o "_OBJC_CLASS_$_SKPaymentQueue",引用自:objc- AppStoreProcess.o ld 中的 class-ref:未找到架构 armv7 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)未找到架构 armv7 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)未找到架构 armv7 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我已经阅读了一些关于“架构 armv7 的未定义符号”的问题,例如这个问题,但最佳答案中建议的解决方案并不真正适用,因为在我的情况下,Unity 将所需的文件放入 Xcode 项目文件夹中。此外,在检查库时,错误正在寻找的库已正确添加到构建阶段的链接二进制与库部分中。

如果我做错了什么,谁能帮助或启发我?

我还尝试在 Unity Player 设置中选择仅 armv7 或仅 arm64 以使用 IL2CPP 构建,但我仍然在 Xcode 中分别收到“armv7 的未定义符号”或“arm64 的未定义符号”Mach-O 链接器错误。

使用的软件: Unity 4.6.6、Xcode 6.1(将尝试升级到6.3)和iOS 8.1 base SDK

0 投票
1 回答
377 浏览

c# - iOS 上的 Unity 5.1 序列化 - 尚不支持 IL2CPP 文件名

在我的游戏中,我使用序列化将几个数组和变量保存到磁盘上的文件中。万事皆安。

但是在我尝试构建 iOS 之后,它拒绝保存,并且 Xcode 调试器说 - “尚不支持文件名”。

我该如何解决?

这是保存和加载数据的代码:

这是我的序列化函数:

我考虑过使用用户默认设置,但我无法在那里保存数组。

我的文件名是这样构造的:

0 投票
1 回答
2082 浏览

ios - Unity3d iOS il2cpp Mono.Cecil.AssemblyResolutionException 无法解析程序集 System.Threading

Unity3d 4.6.7p2 iOS il2cpp Universal .NET Stripping Disabled 我们在构建 iOS 版本时遇到错误。
奇怪的是,这个错误出现在我们办公室的所有计算机上的某个时间点,如果我们切换到 Git 中构建没有问题的提交,则错误存在。
所以我们认为这个错误与我们的更改无关。我们尝试切换到较旧的提交,重新启动 Unity,清理 Library 文件夹,没有任何变化。什么会导致这样的错误?

链接.xml:

0 投票
0 回答
463 浏览

c# - Unity 5.1.2 - 以前可以,但现在无法构建到 iOS

我正在使用 Unity 5.1.2 创建游戏。

直到上周,我才能够构建到 iOS。但现在突然间,我收到了很多与 il2cpp 相关的错误,因此我无法再构建。

尝试打开旧版本,安装 Unity 5.1.2 p1 .....但同样的错误不断出现(总共四个,如下所述):

--- IL2CPP 错误(没有关于正在转换的托管代码的更多信息)附加信息:构建开发版本以获取更多信息。无法解析程序集:'.../v0.23(9 月 2 日,版本 = 0.0,文化 = 中性,PublicKeyToken = null'

---运行失败 /Applications/Unity 5.1.2 p1/Unity.app/Contents/Frameworks/il2cpp/build/il2cpp.exe --copy-level=None --emit-null-checks --enable-array-bounds -check --extra-types.file="/Applications/Unity 5.1.2 p1/Unity.app/Contents/Frameworks/il2cpp/il2cpp_default_extra_types.txt" --assembly=".../v0.23 (... )/.../Temp/StagingArea/Data/Managed/Assembly-CSharp.dll" --assembly=".../Temp/StagingArea/Data/Managed/UnityEngine.UI.dll" --assembly=".. ./Temp/StagingArea/Data/Managed/UnityEngine.dll" --generatedcppdir=".../Temp/il2cppOutput/il2cppOutput" --builder=none

标准输出:IL2CPP 错误(没有关于正在转换的托管代码的更多信息)附加信息:构建开发版本以获取更多信息。无法解析程序集:'.../v0.23(在 9 月 2 日,版本 = 0.0,Culture=neutral,PublicKeyToken=null' il2cpp.exe 没有捕获异常:Mono.Cecil.AssemblyResolutionException:无法解析程序集: '.../v0.23(9 月 2 日,版本 = 0.0,Culture=neutral,PublicKeyToken=null' 在 Unity.IL2CPP.Common.AssemblyLoader.Resolve(IMetadataScope 范围)[0x00000] 在 Unity.IL2CPP 的 :0 中。 Common.AssemblyLoader.Load (System.String name) [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter+c__AnonStorey1.<>m__0 (System.String path) [0x00000] in :0 at System.Linq.Enumerable+c__Iterator102[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable1 来源)[0x00000] 在:0 在 Unity.IL2CPP.AssemblyConverter.Apply () [0x00000] 在:0 在 Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(System.String[] 程序集,NiceIO.NPath outputDir,System.Collections。 Generic.List`1 additionalCpp) [0x00000] in :0 stderr:

未处理的异常:Mono.Cecil.AssemblyResolutionException:无法解析程序集:'.../v0.23(9 月 2 日,版本 = 0.0,Culture=neutral,PublicKeyToken=null' at Unity.IL2CPP.Common.AssemblyLoader.Resolve( IMetadataScope 范围)[0x00000] in :0 at Unity.IL2CPP.Common.AssemblyLoader.Load(System.String 名称)[0x00000] in :0 at Unity.IL2CPP.AssemblyConverter+c__AnonStorey1.<>m__0(System.String 路径)[ 0x00000] in :0 at System.Linq.Enumerable+c__Iterator10 2[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable1 source) [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.Apply () [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.ConvertAssemblies (System.String [] 程序集,NiceIO.NPath 输出目录,System.Collections.Generic.List1 additionalCpp) [0x00000] in <filename unknown>:0 [ERROR] FATAL UNHANDLED EXCEPTION: Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: '.../v0.23 (On Sep 2, Version=0.0, Culture=neutral, PublicKeyToken=null' at Unity.IL2CPP.Common.AssemblyLoader.Resolve (IMetadataScope scope) [0x00000] in <filename unknown>:0 at Unity.IL2CPP.Common.AssemblyLoader.Load (System.String name) [0x00000] in <filename unknown>:0 at Unity.IL2CPP.AssemblyConverter+<Apply>c__AnonStorey1.<>m__0 (System.String path) [0x00000] in <filename unknown>:0 at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator102[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] 在 System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable 1 source) [0x00000] in <filename unknown>:0 at Unity.IL2CPP.AssemblyConverter.Apply () [0x00000] in <filename unknown>:0 at Unity.IL2CPP.AssemblyConverter.ConvertAssemblies (System.String[] assemblies, NiceIO.NPath outputDir, System.Collections.Generic.List1 additionalCpp) [0x00000] in :0

UnityEngine.Debug:LogError(Object) UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase) (在 /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:66) UnityEditorInternal .IL2CPPBuilder:ConvertPlayerDlltoCpp(ICollection 1, String, String) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:402) UnityEditorInternal.IL2CPPBuilder:Run() (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:293) UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action1, RuntimeClassRegistry) (在/Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:211) UnityEditor.HostView:OnGUI()

---例外:/Applications/Unity 5.1.2 p1/Unity.app/Contents/Frameworks/il2cpp/build/il2cpp.exe 没有正常运行!UnityEditorInternal.Runner.RunManagedProgram(System.String exe、System.String args、System.String workingDirectory、UnityEditor.Scripting.Compilers.CompilerOutputParserBase 解析器)(位于 /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp /IL2CPPUtils.cs:68) UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (ICollection1 userAssemblies, System.String outputDirectory, System.String workingDirectory) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:402) UnityEditorInternal.IL2CPPBuilder.Run () (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:293) UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action1 modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (在/Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:211) UnityEditor.iOS.PostProcessiPhonePlayer.PostProcess (UnityEditor.iOS.iOSBuildPostprocessor pp, BuildTarget 目标,System.String stagingAreaData,System.String stagingArea,System.String stagingAreaDataManaged,System.String playerPackage,System.String installPath,System.String companyName,System.String productName,BuildOptions 选项,UnityEditor.RuntimeClassRegistry usedClassRegistry) UnityEditor.iOS。 iOSBuildPostprocessor.PostProcess(BuildPostProcessArgs args)UnityEditor.PostprocessBuildPlayer.Postprocess(BuildTarget 目标,System.String installPath,System.String companyName,System.String productName,Int32 宽度,Int32 高度,System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316) UnityEditor.HostView:OnGUI()

---错误构建播放器:异常:/Applications/Unity 5.1.2 p1/Unity.app/Contents/Frameworks/il2cpp/build/il2cpp.exe 没有正常运行!

在 StackO 和网络上尝试了很多解决方案,但目前还没有解决方案。真的很感激那里的任何帮助!

亲切的问候

0 投票
1 回答
2701 浏览

ios - Unity 5.2 ios IL2CPP 构建给出空引用异常

我正在使用 Unity 5.2 和 Xcode 7,当我选择 IL2CPP 作为脚本后端、Universal for architecture 并在 Xcode 上运行时:我在运行时多次收到此错误:

其中MainMenu继承了BaseMenuControl,BaseMenuControl继承了MonoBehaviour,除此之外,没有什么特别的。

有没有人可以帮助/指导我?

0 投票
1 回答
476 浏览

c# - C# 优化器是否执行复制省略?

我正在寻找优化一些 C# 代码,我很好奇我的优化器是否会执行任何复制省略,如果是的话是哪种。我无法通过谷歌搜索找到有关此的任何信息。如果不是,我可能想切换我的方法以通过引用获取结构参数。我关心的环境是 Unity 3D,这很奇怪,因为它使用 Mono 2.0 运行时或 Unity 的IL2CPP 转译器(我可能应该直接问他们,因为它是封闭源代码的。)但了解微软的优化器会很有趣以及,如果标准通常允许这种类型的优化。

旁注:如果优化器不支持这一点,如果我能获得与 C++ const ref 等效的内容,那就太好了,但似乎 this doesn't exist

0 投票
2 回答
361 浏览

unity3d - Unity3D v4.6.9 游戏无法在带有 xCode7 的 iOS8 上运行

当我们尝试运行游戏时,我们会看到启动画面,然后

il2cpp::icalls::mscorlib::System::String::RedirectToCreateString 处收到错误 Thread1:EXC_BAD_ACCESS code=1:

它发生在我们的任何 c# 代码执行之前 - 在 Awake() 之前。
它确实在 iOS9 上正常运行。
我们已经在 Unity4.6.9 和 Unity4.6.9p3 上进行了尝试。
我们已经设法从 Unity4.6.6 和 xCode6.4 为 iOS8 构建和运行它。但我们确实需要iOS9。

我们在网上找不到任何有关此问题的参考资料,我们将不胜感激。

xCode 屏幕截图:
xCode 屏幕截图

Unity 播放器设置
在此处输入图像描述

编辑:
我们也从 Unity5.2.3 尝试过,没有运气。

您可能应该知道的另一个因素是,在我们遇到上述问题之前,我们已经在 xCode 中编辑了我们产品的“运行调试”方案并禁用了“GPU 帧捕获”,因为我们有一个不同的问题阻止我们运行我们在 iOS8 上的游戏。
这是我们关注的链接。

这是我们原始问题的屏幕截图: 在此处输入图像描述

我们真的被困在这里,希望你能提供帮助。

0 投票
1 回答
1756 浏览

c# - Unity 5.2.3 - 现在 3 个月无法构建到 iOS

我必须使用 Unity 5.2.3 更新 App Store 上已经上线的游戏。

我收到了很多与 il2cpp 相关的错误,因为这些错误我无法再为 iOS 构建......这已经持续了 3 个月......已经尝试了从 5.1.2 到 5.2.3 的所有 Unity 版本。 ...正如您可以想象的那样,这对我们的业务不利。

之前在 Unity 论坛上发布过此问题并发布了错误报告,但仍未找到此问题的解决方案。

我再次发布在 Unity3D 中为 iOS 构建时出现的这些错误:

IL2CPP 错误(没有关于正在转换的托管代码的更多信息) 附加信息:构建开发版本以获取更多信息。无法解析程序集:“……项目路径……(12 月 9 日,版本=0.0,文化=中性,PublicKeyToken=null”

运行失败 /Applications/Unity 5.2.3/Unity.app/Contents/Frameworks/il2cpp/build/il2cpp.exe --convert-to-cpp --copy-level=None --emit-null-checks --enable- array-bounds-check --extra-types.file="/Applications/Unity 5.2.3/Unity.app/Contents/Frameworks/il2cpp/il2cpp_default_extra_types.txt" --assembly="…项目路径… /Temp/StagingArea/ Data/Managed/Assembly-CSharp-firstpass.dll" --assembly…项目路径… /Temp/StagingArea/Data/Managed/Assembly-CSharp.dll" --assembly…项目路径… /Temp/StagingArea/Data/Managed/ UnityEngine.UI.dll" --assembly="…项目路径… /Temp/StagingArea/Data/Managed/UnityEngine.dll" --generatedcppdir="…项目路径… /Temp/il2cppOutput/il2cppOutput"

标准输出:IL2CPP 错误(没有关于正在转换的托管代码的更多信息)附加信息:构建开发版本以获取更多信息。无法解析程序集:'...项目路径...(12 月 9 日,版本 = 0.0,Culture=neutral,PublicKeyToken=null' il2cpp.exe 未捕获异常:Mono.Cecil.AssemblyResolutionException:无法解析程序集:'...项目路径...(在 12 月 9 日,版本 = 0.0,文化 = 中性,PublicKeyToken=null' 在 Unity.IL2CPP.Common.AssemblyLoader.Resolve (IMetadataScope 范围)[0x00000] 在:0 在 Unity.IL2CPP.Common.AssemblyLoader.Load ( System.String name) [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter+c__AnonStorey1.<>m__0 (System.String path) [0x00000] in :0 at System.Linq.Enumerable+c__Iterator102[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable1 来源)[0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.CollectAssembliesToConvert () [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.Apply () [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.ConvertAssemblies ( System.String[] 程序集,NiceIO.NPath outputDir) [0x00000] in :0 stderr:

未处理的异常:Mono.Cecil.AssemblyResolutionException:无法解析程序集:'...项目路径...(12 月 9 日,版本=0.0,Culture=neutral,PublicKeyToken=null' at Unity.IL2CPP.Common.AssemblyLoader.Resolve(IMetadataScope 范围) [0x00000] in :0 at Unity.IL2CPP.Common.AssemblyLoader.Load (System.String name) [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter+c__AnonStorey1.<>m__0 (System.String path) [0x00000] in :0 在 System.Linq.Enumerable+c__Iterator102[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable1 来源)[0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.CollectAssembliesToConvert () [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.Apply () [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.ConvertAssemblies ( System.String[] 程序集,NiceIO.NPath outputDir) [0x00000] in :0 [ERROR] FATAL UNHANDLED EXCEPTION: Mono.Cecil.AssemblyResolutionException: 无法解析程序集:'…项目路径…(12 月 9 日,版本 = 0.0, Culture=neutral, PublicKeyToken=null' 在 Unity.IL2CPP.Common.AssemblyLoader.Resolve(IMetadataScope 范围)[0x00000] 在 Unity.IL2CPP.Common.AssemblyLoader.Load(System.String 名称)[0x00000] 在 :0在 Unity.IL2CPP.AssemblyConverter+c__AnonStorey1.<>m__0 (System.String 路径) [0x00000] in :0 在 System.Linq.Enumerable+c__Iterator102[System.String,Mono.Cecil.AssemblyDefinition].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.ToArray[AssemblyDefinition] (IEnumerable1 来源)[0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.CollectAssembliesToConvert () [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.Apply () [0x00000] in :0 at Unity.IL2CPP.AssemblyConverter.ConvertAssemblies ( System.String[] 程序集,NiceIO.NPath outputDir) [0x00000] in :0

UnityEngine.Debug:LogError(Object) UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase) (在 /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:68) UnityEditorInternal .IL2CPPBuilder:ConvertPlayerDlltoCpp(ICollection 1, String, String) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:417) UnityEditorInternal.IL2CPPBuilder:Run() (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:301) UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action1, RuntimeClassRegistry) (在/Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:218) UnityEditor.HostView:OnGUI()

例外:/Applications/Unity 5.2.3/Unity.app/Contents/Frameworks/il2cpp/build/il2cpp.exe 没有正常运行!UnityEditorInternal.Runner.RunManagedProgram(System.String exe、System.String args、System.String workingDirectory、UnityEditor.Scripting.Compilers.CompilerOutputParserBase 解析器)(位于 /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp /IL2CPPUtils.cs:70) UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (ICollection1 userAssemblies, System.String outputDirectory, System.String workingDirectory) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:417) UnityEditorInternal.IL2CPPBuilder.Run () (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:301) UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action1 modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (在/Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:218) UnityEditor.iOS.PostProcessiPhonePlayer.PostProcess (UnityEditor.iOS.iOSBuildPostprocessor pp, BuildTarget 目标,System.String stagingAreaData,System.String stagingArea,System.String stagingAreaDataManaged,System.String playerPackage,System.String installPath,System.String companyName,System.String productName,BuildOptions 选项,UnityEditor.RuntimeClassRegistry usedClassRegistry) UnityEditor.iOS。 iOSBuildPostprocessor.PostProcess(BuildPostProcessArgs args)UnityEditor.PostprocessBuildPlayer.Postprocess(BuildTarget 目标,System.String installPath,System.String companyName,System.String productName,Int32 宽度,Int32 高度,System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) (在/Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316) UnityEditor.HostView:OnGUI()

构建播放器时出错:异常:/Applications/Unity 5.2.3/Unity.app/Contents/Frameworks/il2cpp/build/il2cpp.exe 没有正常运行!

在这个问题上我需要帮助,否则我们可能不得不放弃这个项目,并使用其他游戏引擎制作未来的游戏项目!

0 投票
0 回答
128 浏览

ios - iPhone相机启动时崩溃,错误很少但模糊

我应该注意到这是一个增强现实项目。应用程序与 Mono2x 完美配合。更改为 IL2CPP,因为应用商店需要 64 位。启动画面仍在播放,但现在当相机尝试启动时,应用程序崩溃。

我正在实例化代表玩家得分的对象。这与 Mono2X 完美配合。我也有一个非常简单的碰撞,以前也很好用。

我得到这样的非常模糊的错误:

我在加载 ARMarker 时也遇到错误。无论如何,标记成功加载。

我更关心导致程序崩溃的 ArgumentException。