《iOS 8应用开发入门经典(第6版)》——第1章,第1.3节运行iOS应用

简介:

本节书摘来自异步社区《iOS 8应用开发入门经典(第6版)》一书中的第1章,第1.3节运行iOS应用,作者 【美】John Ray(约翰 雷),更多章节内容可以访问云栖社区“异步社区”公众号查看

1.3 运行iOS应用
iOS 8应用开发入门经典(第6版)
获得Apple开发人员资格、加入付费的开发人员计划、下载并安装iOS开发工具后,您仍无法在设备上运行您编写的应用程序!为什么呢?因为您还没有创建开发供应配置文件(provisioning profile)。

警告:
只有付费的开发人员账户能够执行下面的步骤。如果您只有免费的开发人员账户,也不用烦恼。在您为成为付费成员做好准备前,可使用iOS模拟器来测试自己开发的应用程序。在这种情况下,请直接跳到“启动应用”一节。
在很多开发指南中,都在开始开发后才介绍这个步骤。在我看来,编写应用程序后您将希望能马上在设备中运行它。为什么?因为看到编写的代码在自己的iPhone或iPad上运行太爽了!

1.3.1 什么是开发供应配置文件
当前,Apple对iOS开发过程进行了控制,禁止开发小组将软件随便发布给任何人。其结果是,通过一个令人迷惑的过程将有关您(任何开发小组成员)和应用程序的信息加入到供应配置文件中。

开发供应配置文件标识了开发应用程序的开发人员,并包含应用程序ID以及将运行该应用程序的每台设备的唯一设备标识符。这种供应配置文件只能用于开发过程。为通过App Store发布应用程序或通过ad hoc发布给一组测试人员(或朋友)做好准备后,需要创建一个发布配置文件(distribution profile)。由于您刚涉足iOS开发,因此现在还不需要发布配置文件。

1.3.2 配置用于开发的设备
以前,创建仅用于开发过程的供应配置文件令人沮丧且耗时,这个过程是在iOS开发网站的Provisioning Portal部分完成的。在最新的Xcode版本中,Apple极大地简化了这个流程,使其非常简单,您只需将Apple ID加入Xcode,就可运行应用。

首先,启动Xcode,并选择菜单Xcode>Preferences加载首选项。在窗口Preferences中,单击按钮Accounts。单击左下角的按钮+,并从出现的菜单中选择Add Apple ID。在出现的对话框中,输入您的Apple ID,如图1.9所示,再单击Add按钮。完成后关闭Preferences窗口。

接下来,确保将设备连接到了计算机,再选择菜单Window>Devices。窗口最左栏的Devices部分应列出了您的iOS设备,如图1.10所示。在这里看到您的设备后,就说明准备就绪了!当您在iDevice上运行应用时,Xcode将自动为您创建所有的供应配置文件和证书。


3976fab087d373a37b8940f853c45c07c3751bcb

在后台,您可能想知道在设备上运行应用时发生的情况,这里大致地说一下。Xcode将向iOS developer portal添加一个唯一的标识符。该标识符标识了您的身份,并用于对您生成的应用程序进行数字签名,这被称为签名身份(signing identity)。它还向Apple注册您的设备,使其能够运行您开发的应用程序(以及iOS测试版)。

Xcode将继续与Apple通信,以创建开发配置文件和唯一的应用程序ID,其中开发配置文件名为iOS Team Provisioning Profile。应用程序ID标识了iOS设备密钥链的共享部分,而您的应用程序有权访问这部分。

密钥链是iOS设备的一个安全信息存储区,可用于存储密码和其他重要信息。大多数应用程序都不共享密钥链空间,因此不能共享受保护的信息。然而,如果多个应用程序都使用相同的应用程序ID,它们将能够共享密钥链数据。

就本书而言,没有理由不让其中的示例应用程序共享一个应用程序ID,因此让Xcode为您生成ID即可。实际上,Xcode将创建一个“通用”应用程序ID,适用于您使用Team Provisioning Profile创建的每个应用程序。

最后,Apple的服务器将根据这些信息以及连接的iOS设备的唯一标识符,给Xcode提供一个完全的供应配置文件。这样,首次在该iOS设备上运行应用时,Xcode就会透明地将配置文件上传到这台设备。

注意:
加入Apple Mac开发人员计划时,也将创建并维护类似的配置文件,用于将应用程序发布到Mac App Store。最大的差别在于,不同于iOS应用,可在任何计算机上运行Mac应用程序。在Mac开发人员计划中,证书用于将应用程序发布到App Store以及测试Apple托管的服务(如Game Center和iCloud)集成。在iOS开发中,要在除iOS模拟器之外的其他设备上运行软件,必须安装合适的证书。

提示:
配置好一台用于开发的计算机后,就可导出签名身份和供应配置文件,进而轻松地配置其他工作站。为此,可选择菜单Xcode>Preferences打开Xcode首选项对话框,再单击工具栏中的Accounts图标。然后,单击账户列表底部的齿轮图标,并选择Export Accounts。这个选项将所有的开发配置文件和证书导出为一个包;还有一个Import Accounts选项,用于导入开发配置文件和证书。

1.3.3 启动应用
为iOS开发做好准备后却没有任何回报看起来不值得,不是吗?为对您所做的工作进行测试,下面尝试在您的iOS设备上运行一个应用程序。如果还没有下载项目文件,现在是访问http://teachyourself-
iOS.com并下载归档的绝佳时机。

提示:
如果您觉得心里没底,http://teachyourselfiOS.com提供了一个教程,介绍了Xcode源代码控制方面的基本知识,包含如何连接到一个代码仓库,其中提供了本书所有示例项目的最新版本。
下面来运行这个应用程序。

1.在文件夹Hour 1/Projects中,选择文件夹iPad或iPhone,再打开文件夹Welcome,然后双击Welcome.xcodeproj在Xcode中打开一个简单的应用程序。打开该项目后,Xcode界面应该如图1.11所示。


154c4040937c62d5a9747ad2325501a09f58416a

2.确保将您的iOS设备连接到了计算机。

3.从Xcode窗口左上角的下拉列表Scheme选择您的iOS设备,如图1.12所示。这告诉Xcode生成项目时将其安装到该设备,而不是在模拟器中运行。如果您没有加入付费的开发人员计划,请根据您使用的项目版本选择相应的模拟器。

通常只能看到可运行当前应用程序的模拟器(iPhone Simulator或iPad Simulator),但在图1.12中,显示了所有的模拟器。当您使用的是针对iPhone的应用程序(它可在iPhone和iPad上运行)或通用应用程序(这将在本书后面更详细地介绍)时,将出现这种情况。这个屏幕截图是使用该项目的iPhone版本截取的,因此能够看到所有的模拟器。


6fc13836eae21ac6def8c3b5d865b67380cb7823

4.确保您的设备已解锁,再单击Xcode工具栏左端的Run按钮,几秒钟后,该应用程序将安装到设备并在其中启动。图1.12显示了该应用程序在iPhone 6中的样子。

5.单击Xcode工具栏中的Stop按钮退出该应用程序。现在可以退出Xcode了,本章不会再使用它。

当您单击Run按钮时,应用程序Welcome将安装到您的iOS设备并在其中启动。它将一直保留在该设备中,直到您手工将其删除。为此,只需按住Welcome图标直到它开始摇摆,然后像删除其他应用程序那样将其删除。开发证书将在120天后过期,到时使用该开发证书安装的应用程序也将停止工作。


4db690e90db48bebf4c537f0e3deb0a47f9392a3

提示:!
如果您试图在开发账户中没有配置的iOS设备上运行应用,Xcode将尝试为您修复问题。为此,只需在提示时单击Fix,警告将有望消失。

查看供应配置文件

在您的设备上运行应用后,便可查看其中安装的供应配置文件。为此,可选择菜单Window>
Devices打开Devices窗口,再右击您的设备并选择Show Provisioning Profiles。这将打开一个对话框,其中包含为您自动创建的iOS Team Provisioning Profile,如图1.14所示。

且慢,我有多台iOS设备!

前面讨论了如何配置单台用于测试的设备,但如果要将应用程序安装到多台设备,该如何办呢?没有问题,只需将其他设备连接到计算机,并运行应用程序!这将自动配置它们。

Apple允许您的账户在1年之内包含100台不同的设备,因此如果要进行大量的内部开发测试,务必明智地注册设备。

相关文章
|
1天前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
14 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
3月前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
353 4
|
3月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
72 2
|
3月前
|
开发框架 前端开发 Android开发
探索安卓和iOS应用开发中的跨平台解决方案
【10月更文挑战第42天】在移动应用开发的广阔天地中,安卓和iOS系统如同两座巍峨的山峰,分别占据着半壁江山。开发者们在这两座山峰之间穿梭,努力寻找一种既能节省资源又能提高效率的跨平台开发方案。本文将带你走进跨平台开发的世界,探讨各种解决方案的优势与局限,并分享一些实用的代码示例,助你在应用开发的道路上更加游刃有余。
|
3月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
3月前
|
搜索推荐 数据管理 定位技术
iOS应用开发中有多种主流框架
iOS应用开发中有多种主流框架
303 60
|
3月前
|
JSON 前端开发 API
探索iOS开发之旅:打造你的第一个天气应用
【10月更文挑战第36天】在这篇文章中,我们将踏上一段激动人心的旅程,一起构建属于我们自己的iOS天气应用。通过这个实战项目,你将学习到如何从零开始搭建一个iOS应用,掌握基本的用户界面设计、网络请求处理以及数据解析等核心技能。无论你是编程新手还是希望扩展你的iOS开发技能,这个项目都将为你提供宝贵的实践经验。准备好了吗?让我们开始吧!
|
3月前
|
Android开发 Swift iOS开发
探索iOS与安卓应用开发的差异性
探索iOS与安卓应用开发的差异性
66 2
|
3月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
96 1
|
3月前
|
开发工具 Android开发 Swift
探索iOS与安卓应用开发的异同点
【10月更文挑战第24天】本文通过比较iOS和安卓开发环境,旨在揭示两大移动平台在开发过程中的相似性与差异性。我们将探讨开发工具、编程语言、用户界面设计、性能优化及市场分布等方面,以期为开发者提供全面的视角。通过深入浅出的分析,文章将帮助读者更好地理解每个平台的独特之处及其对应用开发的影响。

热门文章

最新文章

  • 1
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 2
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 3
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 4
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 6
    iOS8 中无需开源库的内置功能一览
  • 7
    iOS7应用开发7:自定义视图、手势操作
  • 8
    IOS小工具以及精彩的博客
  • 9
    Facebook SDK(iOS)初学讲解
  • 10
    iOS - Swift NSPoint 位置
  • 1
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    14
  • 2
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    28
  • 3
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    34
  • 4
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 5
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    23
  • 6
    uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
    143
  • 7
    【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
    235
  • 8
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    90
  • 9
    深入探索iOS开发中的SwiftUI框架
    145
  • 10
    ios样式开关按钮jQuery插件
    60