Unity 3D iOS真机测试方法,苹果设备调试

介绍

 


本文章不包含构建一个可分发到其他设备的游戏,或向App Store提交游戏。
自2015年Xcode 7发布以来,可用免费的Apple ID来构建应用(包含使用Unity制作的游戏)。在此之前,只有付费的Apple Developer Program(苹果开发者计划)的成员才可以这样做。免费选项是有限的:不能使用Game Center或In-App(内购)等服务,而且不能提交游戏到App Store。但是,可以使用免费的Apple ID在iOS设备上测试你的游戏。


环境

  • Mac Pro系统版本:macOS Sierra 10.12.6
  • Xcode版本:Xcode 8.3.3
  • Unity版本:Unity 5.4.1
  • iphone6 10.3.3

建立工程Simple Mobile Placeholder


首先,我们来简单介绍一下工程Simple Mobile Placeholder。顾名思义,这是一个有意为之的迷你项目-它只是为了测试构建过程而创建的。因此,用它测试是否正确构建和是否在设备上按预期运行是很容易的。

  1. 打开Unity并创建一个工程。
  2. 将工程命名为“SimpleMobilePlaceholder”。
  3. 选择一个位置并保存它。
  4. 确保选择“3D”,以在3D模式下使用Unity Editor。
  5. 点击“Create project”按钮创建工程。


ios真机调试 unity3d unity 苹果_ios真机调试 unity3d



  1. 使用顶部菜单,转到Window->Asset Store。
  2. 搜索“Simple Mobile Placeholder”。
  3. 点击Download来下载,下载完后,然后导入。
  4. 你将看到导入一个完整工程将覆盖你的porject setting的警告。因为我们创建了一个空工程,所以可直接点击Import来导入。


 

ios真机调试 unity3d unity 苹果_ios真机调试 unity3d_02




 将出现一个导入窗口,显示工程中包含哪些文件。


  1. 点击Import导入此工程。
  2. 在“Project”窗口中,点击“Scenes”文件夹,双击“Main”场景来打开它。


 

ios真机调试 unity3d unity 苹果_苹果设备_03



Toggling rotation direction


ios真机调试 unity3d unity 苹果_unity_04



 现在我们知道工程是如何工作的了,接下来将要将其构建到iOS设备上。



 注:如果出现“unity SpritePacker failed to get types from UnityEditor.WebGL.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. Error: The classes in the module cannot be loaded.”警告,为没安装WebGL Build Support组件所致,不影响建iOS,若需消除此警告,点击File->Build Settings,选中WebGL,点击Open Download Page,下载安装即可。


将Apple ID添加到Xcode



 在构建到设备之前,我们需要创建一个Apple ID并将其添加到Xcode。



 如果还没有Apple ID,从
Apple ID站点获取。



 一旦获得Apple ID,你必须将其添加到Xcode。


  1. 打开Xcode。
  2. 从屏幕顶部的菜单栏选择Xcode->Preferences打开Preferences窗口。
  3. 选择窗口顶部的Accounts,以显示有关已添加到Xcode的Apple ID的信息。
  4. 要添加你的Apple ID,点击左下角的加号,然后选择Add Apple ID。


 

ios真机调试 unity3d unity 苹果_ios_05



  • 将出现一个弹出窗口,填入你的Apple ID和密码。
  • 你的Apple ID将出现在左侧列表中。选择你的Apple ID以查看更多信息。
  • 在Team标题下,你将看到你所属的所有Apple Developer Program团队的列表。如果你使用不在Apple Developer Program的免费Apple ID,你将看到你的名字后显示有“(Personal Team)”。

 

ios真机调试 unity3d unity 苹果_游戏_06




 在Apple Developer Program中,teams用于安排谁可以访问工程,拥有什么权限等等。当你使用免费的Apple ID时,Apple会为你的Apple ID创建一个只有你的Personal Team。现在不需担心-这只是测试你的应用所需的步骤之一。



 更多有关在Xcode中管理Accounts和Teams的信息,参考此
Apple documentation


准备你的Unity工程以构建到iOS



 现在,返回到Unity并切换平台,以便可以构建iOS游戏。


  1. 在Unity中,从顶部菜单中打开Build Settings(File->Build Settings)。
  2. 点击左侧平台列表中的iOS并选择窗口底部的“Switch Platform”。

 

ios真机调试 unity3d unity 苹果_ios_07


 


  Switch Platform将当前工程的构建目标设为iOS。这意味着当我们构建时,Unity将创建一个Xcode工程。Switch Platform也强制Unity重新导入工程中的所有资源。在我们这个小测试工程中,并不需要花太长时间,但对于大工程,这将花费一些时间。



 接下来,我们需要输入我们游戏的bundle identifier。bundle identifier是用于标识应用的字符串,使用reverse-DNS风格编写,如com.yourCompanyName.yourGameName。允许的字符有字母,数字,.(小数点),-(破折号)。为了构建,我们需要修改默认bundle identifier。



 请注意,在写本文时,一旦你在Xcode中向Personal Team注册了bundle identifier,这意味着不能再向其他Apple Developer Program Team注册此bundle identifier。这意味着在使用免费的Apple ID和Personal Team测试游戏时,你应该选择一个仅用于测试的bundle identifier-你将无法使用相同的bundle identifier来发布游戏。一个简单的办法是将“Test”添加到要使用的任何bundle identifier末尾,如com.yourCompanyName.yourGameNameTest。



 bundle identifier还有其他限制。当你发布应用时,它的bundle identifier必须是你应用唯一的,且应用提交到App Store之后将不能更改。有关bundle identifier的更多信息,请参阅此
Apple documentation。  


  • 在Inspector面板中打开Player Setting(Edit->Project Settings->Player)。
  • 展开底部的“Other Setting”部分,然后在Bundle identifier处输入你的bundle identifier。

 

ios真机调试 unity3d unity 苹果_苹果设备_08




 现在,可以准备构建了。


使用Unity构建一个Xcode工程



 将游戏构建到iOS设备涉及两步。首先,Unity构建一个Xcode工程。然后,Xcode将该工程构建到你的设备上。一旦你完成了所有的工作,Unity可以为你启动这两步-但是,当你第一次构建工程到设备上时,包含一点额外的工作,所以你必须分开完成这两步。



 有额外工作的原因是为了安全。Apple使用了一种叫做code signing(代码签名)的技术,以确保应用来自已知的代码且并没被篡改,而且在构建之前需要进行设置。更多有关代码签名的信息,请参阅此
Apple documentation



 首先,我们要让Unity构建Xcode工程。


  1. 从顶部菜单打开Build Settings("File"->"Build Settings")。
  2. 点击“Add Open Scenes”以将主场景添加到将要构建的场景列表。
  3. 点击“Build”来构建。

 

ios真机调试 unity3d unity 苹果_ios_09




 系统会提示你选择构建Xcode工程的位置。一个好选择是在工程文件夹中新建一个专用于构建的文件夹。


  1. 点击系统提示右上角的向下箭头将其展开,然后点击New Folder。
  2. 当系统提示选择一个名字是,输入“Builds”并点击Create。这将在你的工程的根目录下创建一个名为“Builds”的新文件夹。
  3. 在标记为Save As的文字输入栏中,输入“iOS”并点击Save。

 

ios真机调试 unity3d unity 苹果_ios_10




 Unity现在将在“Builds”文件夹下创建一个名为“iOS”的Xcode工程。



 Xcode工程是使用Xcode构建应用所需的所有文件和信息,包含代码,图片资源等等的内容被安排到文件夹中。有关Unity创建的Xcode工程的更多信息,请参阅Unity Manual
Xcode Project Structure页面。


使用Xcode将示例工程构建到你的设备



 一旦Unity构建了Xcode工程,将打一个工程位置的Finder窗口。


  1. 双击.xcodeproj文件以使用Xcode打开工程。
  2. 在左上方,选择Unity-iPhone查看工程设置。它将打开并选择General选项。
  3. 最顶端之下的是Identity,你将看到一个带有Fix Issue按钮的警告。这个警告并不意味我们做错了什么-这只是表示Xcode需要下载或创建一些代码签名(code signing)文件。
  4. 点击Fix Issue按钮。

 

ios真机调试 unity3d unity 苹果_苹果设备_11



  • 将出现一个弹出窗口,显示已添加到Xcode的任何Teams的详细信息。
  • 确保在下拉列表中有显示正确的team-如果你使用一个免费的Apple ID,你的名字后会跟上“(Personal Team)”。
  • 点击Choose以指示Xcode下载必须的证书(certificates)并生成一个配置文件(provisioning profile)。然后警告将会消失。

 

ios真机调试 unity3d unity 苹果_苹果设备_12




 证书(certificates)和配置文件(provisioning profile)是代码签名(code signing)所需的文件。你现在不需要关心它们做了什么-但如果你想要了解更多,参见此
Apple documentation


“Signing for "Unity-iPhone" requires a development team. Select a development team in the project editor.“即可用此种方式解决)



 现在用USB将你的设备连上电脑。如果这是你首次连接此设备,你可能在xcode上看到“processing symbol files”消息-这意味着Xcode正在从设备获取信息,以允许你在此设备上调试应用。等待处理完成。一旦符号文件(symbol files)处理完成,“processing symbol files”将会消失,且你的设备已经可以用来调试了。



 构建到设备前的最后一步是确保设备解锁了,因为Xcode不能在密码锁定的设备上启动应用。如果你的设备设置为使用密码解锁,最好在构建到设备之前更改此配置,然后在测试完成后再改回来(其实也不用这么麻烦,因为Xcode在构建应用到设备上时会提示让你解锁设备)。


  • 在设备上,进入“设置”->“显示器和亮度”->“自动锁定”。
  • 禁用锁定时,选择“永不”。


  值得注意的是,在“低电量模式”下,“自动锁定”设置将不能更改,除非关闭“低电量模式”。


  • 要关闭“低电量模式”,进入“设置”->“电池”->“低电量模式”来关掉它。


  现在,是时候将示例构建到设备上了。


  • 在Xcode界面的左上角,点击Run按钮。

 

ios真机调试 unity3d unity 苹果_游戏_13




 如果你之前没有用Mac开发过iOS或OSX应用,此处则可能看到一个询问是否打开开发者模式(Developer Mode)的弹窗。启用开发者模式(Developer Mode)意味着执行常规开发任务是不需输入你的Mac密码。


  • 选择Enable打开开发者模式,并按提示输入你的Mac密码。

 

ios真机调试 unity3d unity 苹果_ios真机调试 unity3d_14




 稍等片刻,你会在Xcode顶部中心栏中看到“Build succeeded”的消息,且将应用加载到你的设备上。差不多要完成了!



  注:此时如果出现访问钥匙串的授权,选择始终允许或允许,否则无法将应用构建到设备上(“钥匙串访问”可查看证书详细信息)。

   

ios真机调试 unity3d unity 苹果_游戏_15

 



 你可能会在设备上收到标题为“Untrusted Developer”(不受信任的开发人员,可直接选择信任),或者在Xcode中显示“Could not launch [your app name]”。如果你看到这其中的任何一个,这意味着还剩最后一步:你需要将你的设备设置为信任你的Apple ID。


  1. 在设备上,进入“设置”->“通用”->“设备管理”(Device Management)->“开发者应用”(Developer App)->[your app name]。注:在没有Run之前,手机上是不会存在“设备管理”选项的。
  2. 选择你的Apple ID,然后选择“信任”(Trust)。


  只要在你的设备上有一个使用该Apple ID构建的应用,你的设备将允许运行该Apple ID构建的任何内容。如果你从设备中删除了使用该Apple ID生成的所有应用程序,则需要返回到相应设置并再次选择“信任”。



在你的iOS设备上测试游戏



 现在,游戏已经构建到你的设备上了。如果你将手机与电脑断开连接,游戏仍然存在。要在设备上运行,点击主屏幕上该游戏的图标即可。



 游戏正常运行,红色立方体在旋转,点击它,它会改变旋转方向。



 在设备上运行游戏是对其测试的一种方式。也是检查控件是否正常工作的好方法。但是,如果你需要更多的信息,例如,如果你希望玩游戏时看到unity的log,则需要构建运行程序时,设备保持与Xcode的连接。



 说做就做。


  1. 将你的设备连上电脑。
  2. 像之前一样,双击.xcodeproj图标打开Xcode工程。
  3. 在Xcode中,选择Run。


  Xcode将游戏构建到你的设备上并开始一个调试会话。


 

ios真机调试 unity3d unity 苹果_游戏_16




 如果你在游戏运行时才查看Xcode右下角,你将看到Xcode调试控制台。这包含你在Unity控制台中看到的所有信息,以及有关操作系统中发生的其他事情的调试信息。你可以像使用Unity中的控制台一样使用它来帮助你调试游戏。


 

ios真机调试 unity3d unity 苹果_游戏_17




 点击立方体,Unity控制台中看到的日志也会出现在Xcode调试控制台中,并带有Xcode输入的其他信息。


 



 根据Deployment Info选择的不同iOS平台,会出现Deprecations的相关警告,若需要去除,点击该警告,根据iOS Frameworks里的注释修改即可。也可在出现警告的文件中加入:


#pragma clang diagnostic push

#pragma clang diagnostic ignored "-Wdeprecated-declarations" // -Wdeprecated-declarations为需要去除的警告类型

#pragma clang diagnostic pop

  警告类型查询


 



 ‘extern’ variable has an initializer:extern应在变量声明的头文件中加入,而在定义(申请内存空间)的cpp文件中不需extern,去除即可。


 



 Non-portable path to file '"GlesHelper.h"'; specified path differs in case from file name on disk:使用GlesHelper.h替代GLESHelper.h


结论


 “如何构建Unity游戏到iOS设备进行测试”学习了:

  • bundle identifier是什么。
  • 如何使用Xcode构建Unity游戏到你的设备上进行测试。
  • 如何使用Xcode的调试控制台在iOS设备上调试Unity游戏。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空