热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unity3D发布打包系列之(四)——IOS打包发布

Unity3D打包IOS设置,Xco
首先,Unity打包IOS必须条件:

Unity3D下载了IOS平台
下载了XCode软件(必须是MacOS 系统)
在苹果开发者中心注册了开发者帐号


第一步:注册苹果开发者帐号;

Unity3D下载IOS平台和XCode下载就不介绍了,直接开始开发者帐号申请
注意:帐号是收费的,一个是个人版或者公司版,一个是企业版(了解到APPLE的政策是,要发布到APP STORE必须用99美元的个人版或公司版Apple Developer Programs,要在非商店外下载只能使用299美元的企业版iOS Developer Enterprise)

注册地址:https://developer.apple.com/membercenter/index.action

注册前准备:

  • 2个邮箱(299美元的必须是公司域名邮箱)
  • 邓白氏编码DUNS

注册流程:
注册APPLE ID → 注册邓白氏编码 → 获取邓白氏编码后继续验证APPLE ID的公司信息 → 等待APPLE官方审核资料 → 审核通过,缴费 → 收工

关于邓白氏编码

  • 一个邓白氏编码可以注册多个APPLE 开发者账号
  • 通过APPLE的链接申请邓白氏编码,基本上一周左右就可获得。其中邓白氏那边会打电话给你核实身份,然后发邮件给你要补充公司信息,这个公司信息到时候APPLE验证DUNS编码时会用到,两边最好一致,否则修改麻烦。
  • 新的邓白氏编码,请注意尝试次数不要超过3次,超过次数编码会被锁住,解锁及注册方面问题请找苹果客服

第二步:注册完成后

  1. 登录开发者账号
    技术图片
  2. 下载开发者证书(开发者证书(分为开发和发布两种,类型为iOS Development,ios Distribution),这个是最基础的,不论是真机调试,还是上传到appstore都是需要的,是一个基证书,用来证明自己开发者身份的)
    技术图片

注意一下几点:

  • appID,这是每一个应用的独立标识,在设置项中可以配置该应用的权限,比如是否用到了PassBook,GameCenter,以及更常见的push服务,如果选中了push服务,那么就可以创建生成下面第3条所提到的推送证书,所以,在所有和推送相关的配置中,首先要做的就是先开通支持推送服务的appID;
  • 推送证书(分为开发和发布两种,类型分别为APNs Development ios,APNs Distribution ios),该证书在appID配置中创建生成,和开发者证书一样,安装到开发电脑上;
  • Provisioning Profiles,这个东西是很有苹果特色的一个东西,我一般称之为PP文件,该文件将appID,开发者证书,硬件Device绑定到一块儿,在开发者中心配置好后可以添加到Xcode上,也可以直接在Xcode上连接开发者中心生成,真机调试时需要在PP文件中添加真机的udid;是真机调试和必架必备之珍品;
  • 平常我们的制作流程一般都是按以上序列进行,先利用开发者帐号登陆开发者中心,创建开发者证书,appID,在appID中开通推送服务,在开通推送服务的选项下面创建推送证书(服务器端的推送证书见下文),之后在PP文件中绑定所有的证书id,添加调试真机等;


*CRS文件创建:
技术图片
或者
技术图片
进入
技术图片
CRS文件已经生成好了

3.进入开发者设置界面
技术图片
* certificates(证书)

选中All,接着点击右上角的加号,我们先来创建开发者(真机调试)证书,提交证书和调试证书创建步骤几乎一样
技术图片
这里我们Development类型证书,(用于真机调试)。选中之后进入下一个页面:
技术图片
这里会提示你选择创建好的CRS文件,选择上面创建好的CRS文件,点击continue提交,就生成证书
技术图片
下载下来保存到你对应得文件夹就好了,暂且不要双击安装,后面会讲解安装证书和配置文件
注意:证书最好不要创建多个,不易于管理

* identifiers(App ID)

配置App的Bundle ID,就是和XCode中对应的那个Bundle ID, 点击左边的视图identifiers下面的App IDs
技术图片
点击标记2,添加AppID,设置AppID名称
技术图片
设置Bundle ID
技术图片
生成Bundle ID 的设置
技术图片
App ID创建好之后,不需要去动它,也会在后面用到

* Devices(设备ID)**

添加你要真机调试的设备ID
技术图片
设置手机名称和UDID,UDID获取通过手机连接电脑,打开iTunes软件,点击序列号字母处,显示的就是UDID
技术图片

* profiles(配置文件)**

配置证书的最后一步,生成profiles,这个profiles其实最终是安装到Xcode里的,它关联证书、App ID、和Device ID,把前三者结合起来,生成一个可安装的配置文件,用于Xcode进行真机调试,用于发布应用也一样,在进行App打包生成ipa文件时,也会去验证你的证书和profiles,这也是你能否打包成功的关键。
点击第四个模块(profiles)下面的All选项,创建profiles:
技术图片
技术图片
技术图片
技术图片
技术图片
开发者证书的配置完成。

注意:最终配置完成后只需下载两个文件:一个就是第一个模块里面的开发者真机调试证书、然后就是第四个模块里的profiles文件,把这两个文件下载下来,保存好避免遗失,以便接下来在Xcode中配置和使用。(PS 放好这两个文件,记住他们的位置)


Run in Xcode

第三步:Unity打包;
切换到IOS平台,进行设置
技术图片

  • Run in Xcode:选择你电脑上安装的Xcode版本,或者默认Latest version,默认是你电脑上 最新版本
  • Run in Xcode as:选择Debug或者Release版本;PS:和最后Xcode打包时选择保持一致

点击Player Settings ->Other settings 设置

  • 包名设置:和安卓设置方法一样,格式:com.公司名.工程名。设置版本号
  • 设备型号设置:设置只能iPhone用还是iPad用或者两个都能用,以及设备最低的系统版本设置
  • 设置其他你需要的设置
    技术图片
    最后,点击Build进行打包,设置包文件夹名,保存


第四步:用你打包时候选的Xcode版本打开你刚才Build的包
其实,Xcode已经帮我们做了很多配置,只需要我们设置以下配置:
1.点击 Product->Scheme->Edit Scheme 或者进入下面界面,并点击Archive,确保Build Configuration 为 你在Unity中的选择保持一致
技术图片
技术图片

  • Display Name:设置你的App名字
  • Bundle Identifier:设置Build ID,来自你在注册苹果开发者帐号时Bundle ID保持一致。
  • Version:App版本(与Unity设置保持一致)
  • Build:版本号(与Unity设置保持一致)

2.TARGETS->Identity->Team Team选择你注册时对应的App ID 帐号。
技术图片

PS:可以不用选择注册相应证书时对应的 Apple ID 帐号,而且选择别的对应/非对应帐号也都没问题。

3.TARGETS->Build Setting->Code Signing
技术图片
基本不用设置,默认配置好的,如有需要可更改设置
其中下方的 Provisioning Profile 可以使用默认的 Automatic,也可以指定对应的描述文件。(一般我们使用Automatic)
注意:如果用USB将手机连接到电脑,手机端打开开发者模式,选择连接的手机,直接点击Xcode运行,就会打包到你连接的手机上,后续步骤可省略。




4.Archive设置;只能选择iOS Device,选择其他模拟器是不能Archive的
技术图片
等会,Archive会弹出
技术图片
5.Export 导出;点击上图中的“Export”,如下所示,很显然第一个选项是发布app的,不要点,那是个人开发者账号可以干的事情。

技术图片
上图四种选项:

  • Save for iOS App Store Deployment:保存到本地 准备上传App Store 或者在越狱的iOS设备上使用
  • Save for Ad Hoc Deployment:保存到本地 准备在账号添加的可使用设备上使用(具体为在开发者账户下添加可用设备的udid),该app包是发布证书编译的(The app will be code signed with the distribution certificate.)
  • Save for Enterprise Deployment:这种主要针对企业级账户下 准备本地服务器分发的app
  • Save for Development Deployment:针对内部测试使用,主要给开发者的设备(具体也为在开发者账户下添加可用设备的udid)。该app包是开发证书编译的(The app will be code signed with your development certificate)

点击Next,继续,选择存放路径,继续
技术图片
点击Next,IPA就打包成功了。


附:app需要使用手机的某些功能或者应用的时候,需要授权才可以访问,下面将展示一些info.plist上常用的一些授权。
技术图片
bool类型是YES的,这个是允许访问http的网址

下面是以上授权的代码形式,可以直接拷贝到info.plist文件中:

NSAppTransportSecurity 
 
NSAllowsArbitraryLoads 
 
 
NSContactsUsageDescription 
请求访问通讯录 
NSMicrophoneUsageDescription 
请求访问麦克风 
NSPhotoLibraryUsageDescription 
请求访问相册 
NSCameraUsageDescription 
请求访问相机 
NSLocationAlwaysUsageDescription 
始终访问地理位置 
NSLocationWhenInUseUsageDescription 
在使用期间访问地理位置 
NSCalendarsUsageDescription 
请求访问日历 
NSRemindersUsageDescription 
请求访问注意事项 
NSBluetoothPeripheralUsageDescription 
请求访问蓝牙 
ITSAppUsesNonExemptEncryption 

注:至于TestFlight测试和上线,后续再介绍。

Unity3D发布打包系列之(四)——IOS打包发布


推荐阅读
  • iOS 设备唯一标识获取的高效解决方案与实践
    在iOS 7中,苹果公司再次禁止了对MAC地址的访问,使得开发者无法直接获取设备的物理地址。为了在开发过程中实现设备的唯一标识,苹果推荐使用Keychain服务来存储和管理唯一的标识符。此外,还可以结合其他技术手段,如UUID和广告标识符(IDFA),以确保设备的唯一性和安全性。这些方法不仅能够满足应用的需求,还能保护用户的隐私。 ... [详细]
  • 本文详细解析了Autofac在高级应用场景中的具体实现,特别是如何通过注册泛型接口的类来优化依赖注入。示例代码展示了如何使用 `builder.RegisterAssemblyTypes` 方法,结合 `typeof(IEventHandler).Assembly` 和 `Where` 过滤条件,动态注册所有符合条件的类,从而简化配置并提高代码的可维护性。此外,文章还探讨了这一方法在复杂系统中的实际应用及其优势。 ... [详细]
  • 本指南详细介绍了如何利用华为云对象存储服务构建视频点播(VoD)平台。通过结合开源技术如Ceph、WordPress、PHP和Nginx,用户可以高效地实现数据存储、内容管理和网站搭建。主要内容涵盖华为云对象存储系统的配置步骤、性能优化及安全设置,为开发者提供全面的技术支持。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 深入解析:Synchronized 关键字在 Java 中对 int 和 Integer 对象的作用与影响
    深入探讨了 `Synchronized` 关键字在 Java 中对 `int` 和 `Integer` 对象的影响。尽管初看此题似乎简单,但其实质在于理解对象的概念。根据《Java编程思想》第二章的观点,一切皆为对象。本文详细分析了 `Synchronized` 关键字在不同数据类型上的作用机制,特别是对基本数据类型 `int` 和包装类 `Integer` 的区别处理,帮助读者深入理解 Java 中的同步机制及其在多线程环境中的应用。 ... [详细]
  • Unity3D 中 AsyncOperation 实现异步场景加载及进度显示优化技巧
    在Unity3D中,通过使用`AsyncOperation`可以实现高效的异步场景加载,并结合进度条显示来提升用户体验。本文详细介绍了如何利用`AsyncOperation`进行异步加载,并提供了优化技巧,包括进度条的动态更新和加载过程中的性能优化方法。此外,还探讨了如何处理加载过程中可能出现的异常情况,确保加载过程的稳定性和可靠性。 ... [详细]
  • 在Conda环境中高效配置并安装PyTorch和TensorFlow GPU版的方法如下:首先,创建一个新的Conda环境以避免与基础环境发生冲突,例如使用 `conda create -n pytorch_gpu python=3.7` 命令。接着,激活该环境,确保所有依赖项都正确安装。此外,建议在安装过程中指定CUDA版本,以确保与GPU兼容性。通过这些步骤,可以确保PyTorch和TensorFlow GPU版的顺利安装和运行。 ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
  • 开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤
    开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤 ... [详细]
  • 系统数据实体验证异常:多个实体验证失败的错误处理与分析
    在使用MVC和EF框架进行数据保存时,遇到了 `System.Data.Entity.Validation.DbEntityValidationException` 错误,表明存在一个或多个实体验证失败的情况。本文详细分析了该错误的成因,并提出了有效的处理方法,包括检查实体属性的约束条件、调试日志的使用以及优化数据验证逻辑,以确保数据的一致性和完整性。 ... [详细]
  • 优化Vite 1.0至2.0升级过程中遇到的某些代码块过大问题解决方案
    本文详细探讨了在将项目从 Vite 1.0 升级到 2.0 的过程中,如何解决某些代码块过大的问题。通过具体的编码示例,文章提供了全面的解决方案,帮助开发者有效优化打包性能。 ... [详细]
  • 卓盟科技:动态资源加载技术的兼容性优化与升级 | Android 开发者案例分享
    随着游戏内容日益复杂,资源加载过程已不仅仅是简单的进度显示,而是连接玩家与开发者的桥梁。玩家对快速加载的需求越来越高,这意味着开发者需要不断优化和提升动态资源加载技术的兼容性和性能。卓盟科技通过一系列的技术创新,不仅提高了加载速度,还确保了不同设备和系统的兼容性,为用户提供更加流畅的游戏体验。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 短信验证码安全性堪忧,多因素认证或成未来主流
    短信验证码安全性堪忧,多因素认证或成未来主流 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
author-avatar
手机用户2502929821
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有