以下是“Unity3d发布IOS9应用时出现中文乱码的解决方法”的完整攻略,包含两个示例。
简介
在Unity3d发布IOS9应用时,可能会出现中文乱码的问题。本攻略将介绍如何解决这个问题,并提供两个示例。
步骤
以下是解决Unity3d发布IOS9应用中文乱码问题的步骤:
- 在Unity3d中打开项目。
- 选择File -> Build Settings,打开Build Settings窗口。
- 选择iOS平台,点击Player Settings按钮,打开Player Settings窗口。
- 在Player Settings窗口中选择Other Settings选项卡。
- 在Other Settings选项卡中找到Scripting Backend选项,选择IL2CPP。
- 在Other Settings选项卡中找到API Compatibility Level选项,选择.NET 2.0 Subset。
- 在Other Settings选项卡中找到Strip Engine Code选项,取消勾选。
- 在Other Settings选项卡中找到Strip Engine Symbols选项,取消勾选。
- 在Other Settings选项卡中找到Enable Internal Profiler选项,取消勾选。
- 在Other Settings选项卡中找到AOT Compilation Options选项,选择“Custom AOT Options”。
- 在AOT Compilation Options中添加以下选项:
--aot-options=“nimt-trampolines=512”
- 重新编译项目,并发布到iOS设备上。
- 在iOS设备上运行应用程序,查看中文是否正常显示。
示例1
以下是示例,演示了如何解决Unity3d发布IOS9应用中文乱码问题:
- 在Unity3d中打开项目。
- 选择File -> Build Settings,打开Build Settings窗口。
- 选择iOS平台,点击Player Settings按钮,打开Player Settings窗口。
- 在Player Settings窗口中选择Other Settings选项卡。
- 在Other Settings选项卡中找到Scripting Backend选项,选择IL2CPP。
- 在Other Settings选项卡中找到API Compatibility Level选项,选择.NET 2.0 Subset。
- 在Other Settings选项卡中找到Strip Engine Code选项,取消勾选。
- 在Other Settings选项卡中找到Strip Engine Symbols选项,取消勾选。
- 在Other Settings选项卡中找到Enable Internal Profiler选项,取消勾选。
- 在Other Settings选项卡中找到AOT Compilation Options选项,选择“Custom AOT Options”。
- 在AOT Compilation Options中添加以下选项:
--aot-options=“nimt-trampolines=512”
- 重新编译项目,并发布到iOS设备上。
- 在iOS设备上运行应用程序,查看中文是否正常显示。
示例2
以下是另一个示例,演示了如何使用脚本自动设置Unity3d发布IOS9应用的编译选项:
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using System.IO;
public class XcodeProjectMod
{
[PostProcessBuild]
public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
{
if (buildTarget == BuildTarget.iOS)
{
string projPath = PBXProject.GetPBXProjectPath(path);
PBXProject proj = new PBXProject();
proj.ReadFromString(File.ReadAllText(projPath));
string target = proj.TargetGuidByName("Unity-iPhone");
proj.SetBuildProperty(target, "ENABLE_BITCODE", "NO");
proj.SetBuildProperty(target, "CLANG_ENABLE_OBJC_ARC", "YES");
proj.SetBuildProperty(target, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES");
proj.SetBuildProperty(target, "GCC_ENABLE_CPP_EXCEPTIONS", "YES");
proj.SetBuildProperty(target, "GCC_ENABLE_CPP_RTTI", "YES");
proj.SetBuildProperty(target, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES");
proj.SetBuildProperty(target, "GCC_ENABLE_OBJC_GC", "NO");
proj.SetBuildProperty(target, "GCC_ENABLE_SSE3_EXTENSIONS", "YES");
proj.SetBuildProperty(target, "GCC_ENABLE_SSE41_EXTENSIONS", "YES");
proj.SetBuildProperty(target, "GCC_ENABLE_SSE42_EXTENSIONS", "YES");
proj.SetBuildProperty(target, "GCC_ENABLE_SSSE3_EXTENSIONS", "YES");
proj.SetBuildProperty(target, "GCC_OPTIMIZATION_LEVEL", "s");
proj.SetBuildProperty(target, "GCC_PREPROCESSOR_DEFINITIONS", "$(inherited) UNITY_NO_DXT5nm UNITY_ENABLE_REFLECTION_BUFFERS UNITY_NO_CUBEMAP_ARRAY UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_MOBILE UNITY_COLORSPACE_GAMMA");
proj.SetBuildProperty(target, "GCC_SYMBOLS_PRIVATE_EXTERN", "NO");
proj.SetBuildProperty(target, "GCC_WARN_ABOUT_MISSING_NEWLINE", "YES");
proj.SetBuildProperty(target, "GCC_WARN_UNUSED_FUNCTION", "YES");
proj.SetBuildProperty(target, "GCC_WARN_UNUSED_VARIABLE", "YES");
proj.SetBuildProperty(target, "IPHONEOS_DEPLOYMENT_TARGET", "9.0");
proj.SetBuildProperty(target, "MTL_ENABLE_DEBUG_INFO", "NO");
proj.SetBuildProperty(target, "MTL_FAST_MATH", "YES");
proj.SetBuildProperty(target, "MTL_ENABLE_DEBUG_INFO", "NO");
proj.SetBuildProperty(target, "MTL_ENABLE_VALIDATION", "NO");
proj.SetBuildProperty(target, "MTL_VALIDATOR_FLAGS", "");
proj.SetBuildProperty(target, "SWIFT_OBJC_BRIDGING_HEADER", "$(SRCROOT)/Libraries/Plugins/iOS/Bridging-Header.h");
proj.SetBuildProperty(target, "SWIFT_VERSION", "4.0");
proj.SetBuildProperty(target, "VALIDATE_PRODUCT", "YES");
proj.WriteToFile(projPath);
}
}
}
结论
本攻略介绍了如何解决Unity3d发布IOS9应用中文乱码问题,并提供了两个示例,分别演示了如何手动设置编译选项和如何使用脚本自动设置编译选项。通过学习本攻略,您可以了解如何解决Unity3d发布IOS9应用中文乱码问题,并自定义编译选项以满足您的需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Unity3d发布IOS9应用时出现中文乱码的解决方法 - Python技术站