美文网首页swift傲视苍穹iOS《Objective-C》VIP专题iOS Developer
iOS Apprentice中文版-从0开始学iOS开发-第十课

iOS Apprentice中文版-从0开始学iOS开发-第十课

作者: Billionfan | 来源:发表于2017-04-02 20:37 被阅读466次

    在你自己的设备上运行app

    到目前为止,你都只是在模拟器上运行app。在模拟器上运行app非常不错,但是这可能不是你学习iOS开发的目的。你应该会希望你的app在真实的iPhone和iPad上运行。能够在自己的iPhone上运行自己做的app绝对是令人兴奋的,当然,别忘了和你的朋友们分享它。

    别误会我的意思:在模拟器上开发app是非常必要的。在开发过程中,我花费大量时间用模拟器测试app,仅仅是偶尔会在我的iPhone上进行测试。

    模拟器是非常棒的,但是你也需要在真机上调试你的创作,看看效果。有些事情模拟器是办不到的,比如当你需要使用iPhone的加速计的时候,你就必须在真机上测试,而不是坐在那里摇晃你的Mac。

    在之前你必须充值付费成为开发者后才能进行真机测试,但是这个规则在Xcode 7发布后就变化了,你只需要一个Apple ID就可以免费进行真机测试,在Xcode 8中真机测试更加简单了。

    用USB线把你的iPhone、iPod touch或者iPad和你的Mac链接起来。

    在Xcode顶部的菜单中选择Window->Devices打开设备窗口。

    是一个这样的菜单(我使用的是iPhone 6):

    Xcode的设备窗口

    左边的设备列表就是你开发中可以使用的。

    点击你的设备名选中它。

    如果这是你第一次在Xcode中使用你的设备,设备窗口也许会弹出一个提示,“iPhone is not paired with your computer(iPhone和你的设备不匹配)”。要将Xcode与设备匹配,你需要将设备解锁(iPhone上的Home键)。解锁后,iPhone会弹出一个提醒窗口问你是否信任这台电脑,选择是。

    Xcode会刷新这个页面并且允许你使用你的设备用于开发调试。这需要几分钟时间(在Xcode状态栏中可以看到进度条)。如果时间过长的话,就把USB线拔掉,再链接一次试试。

    这时你也许会得到一个报错信息,“An error was encountered while enabling development on this device”,这时你需要把掉USB线,同时重启手机和Xcode,重启完毕后再链接它们。

    酷吧,这就是链接设备的方法。

    下一步就是在Xcode中设置你的Apple ID。可以直接使用你iPhone上的ID,但是假如你开公司的话,那么你必须要创建一个独立的新的Apple ID。当然,如果你已经有了一个付费的开发者账号的话,你应该毫不犹豫的使用它。

    在菜单Xcode->preference中找到Accounts。

    账户设置

    点击左下角的➕按钮,然后输入Apple ID。

    Xcode会要求你输入Apple ID:

    将你的Apple ID添加到Xcode

    输入你的Apple ID名称及密码,然后点击Sign In。

    Xcode会确认你的账户信息并且将它添加到账户里表中。

    ⚠️:Xcode有可能会无法使用你提供的Apple ID,比如这个ID曾经被用于开发者账户,但是现在过期了。这种情况最简单的解决办法是注册一个新的Apple ID,不但免费而且只花几分钟而已。

    你还需要告诉Xcode当你生成app时,使用这个账号。

    在工程设置界面,General子页中,找到Singing部分。

    工程设置界面

    为了使Xcode允许你在你的iPhone上安装app,这个app必须由你的Development Certificate(开发者证书)进行数字认证。一份证书就是一个电子文档,用户确认你iOS应用开发者的身份,并且它的生效时间是有限的。

    将app提交到Apple Store必须使用另一个数字证书,就是Distribution Certificate(发布证书)。你必须是一个已付费的成员才可以使用发布证书,而开发者证书是免费的。

    添加一个有效的证书,你还需要一个Provisioning Profile(开通服务描述),你做的每一个app都需要它。Xcode通过这个开通服务描述在你的设备上注册你的app。不用在意其中的细节,你只需要知道你需要一个Provisioning Profile才能在你的设备上运行你的app。

    生成这些Certificate和Provisioning Profile极其繁琐。幸运的是,这种日子已经结束了:Xcode 8可以非常简单的完成这个工作,通过一个叫Automatically manage signing(自动管理注册)的东西,你没看错,是自动,Xcode会替你打点好一切关于Certificate和Provisioning Profile的事情,你自己根本不用操心。

    点击工程设置(上面那幅图)中的Team,选择你的Apple ID。

    Xcode会自动用你的账户注册你的设备,去创建Development Certificate,并且下载安装Provisioning Profile在你的设备上。这些步骤在过去都需要你手动操作,现在在Xcode 8中,它自己就干完了。

    也许会出现下面这样的报错:

    程序身份已经使用过

    app的程序身份,如同你的Apple ID,一定是唯一的。如果其他的程序(也许不是你开发的),已经使用了这个身份,你就不能再使用了。这就是为什么我们在一开始让你用自己的域名作为Bundle ID。解决方法非常简单:改变Bundle ID文本框中的内容,比如加个后缀,然后再试一次。

    也有可能看到这种报错:

    没有注册的设备

    Xcode必须要知道你即将用来运行app的设备。这就是为什么我们提前做了设备链接这个工作。再次确认一下,你的iPhone或者iPad是否链接到了Mac,并且在设备列表里有显示出来。

    如果所有上述条件都检查过了,回到Xcode的主窗口,选择你运行app的设备(就是选择模拟器的那个地方,现在在列表的最上面应该有你的设备了)

    我的Xcode窗口现在是这样的:

    选择你的设备

    一切准备就绪,点击Run运行app。

    此时也许你又会看到一个提示“codesign wants to sign using using key...in your keychain”。如果是这样,回答 Always Allow(总是允许)。这是Xcode试图使用你刚创建的那个新的Development Certificate,你只需要批准一下先。

    这里还有一些其他可能遇到的问题,如果你是第一次在你的设备上运行app的话,特别是你以前根本就下载过Xcode的话,所以当你遇到这些问题不必惊慌,照着我们的步骤一步步来,这些问题也仅仅会出现一次,以后就可以直接选择设备运行app了。

    The device is not conected。确定你的iPhone或者iPad链接到你的Mac上了,设备已经在你Xcode设备窗口的列表中存在了,并且不存在一些黄色的警告图标。

    The device does not trust you。你也许会看到这样的报错:

    快!呼叫保安

    在设备上则会弹出这样的消息,“Untrusted Developer.Your device management setting do not allow using apps from developer...”

    如果出现这种提示,打开iPhone或者iPad的Setting(设置),在General(通用)->Profile(描述文件)中,你应该可以看到你的Apple ID。点击它,然后点击Trust(信任)按钮,然后再次运行app。

    The device is locked。如果你的设备处于锁定状态,你也许会看到下面的提示:

    设备被锁定了,无法运行app

    点击Home键解锁,并再次运行app。

    如果你被这些certificates和profiles弄的头晕转向,那么就打开菜单Xcode->Preference,然后找到Accounts子页。选择你的账户并且点击View Detail...在右下角。

    然后会打开一个新的窗口,列出你的身份签名和服务开通描述文件:

    账户细节

    这里有个“iOS Team Provisioning Profile:*”,这就是允许你在你的设备上运行app的东西。(顺便说下,管它叫作team描述文件是因为一个app经常是由多个开发者协同工作,这个描述文件需要共享给它们)

    ⚠️:如果账户细节窗口中最上面一行,iOS Development后面不是空白的,而是存在一个Create按钮,那么点击这个Create按钮,创建iOS开发者资质,原书中没有提及这一点。

    操作完毕后,关闭Accounts窗口,回到设备窗口。

    你可以看通过右键点击设备名,选择Show Provisioning profile看到到这个provisioning profile。

    设备上的服务开通描述文件

    你可以安装多个certificate和provisioning profile。如果你是多人协作开发的话。

    查看Xcode选择那个profile用来注册你的app,可以在工程设置界面找到Build Setting子页,这里有许多设置的列表,可以在右上角的过滤器中输入signing(同时确保All是选中的,而不是Basic)

    界面是这个样子:

    注意蓝色背景为选中状态,确保和图中的选择一致

    在Code Signing Identity中显示iOS Developer。这就是Xcode用来注册你app的certificate。如果你点击这一行,你就可以选择另一个certificate(证书)。在Provisioning Profile中你可以改变激活的描述文件(profile)。其实大多数情况,你根本不用管这些东西,但是至少你需要知道在哪里找到它们。

    开始还是结束

    这真是漫长的一课,如果你是一个纯纯的新手,你已经被灌输了许多新的概念,希望你的脑袋还没爆炸。

    至少你应该对开发app的工作有了一个基本的认识。

    我并不指望你准确的理解了在课程中我们做过的每一件事,尤其是涉及写Swift代码这一部分。不理解是对的,如果你理解了我反而会怀疑自己,只要这个过程对你而言是愉快的,并且你掌握了一些关于对象(object),方法(methods)和变量(variables)的基本概念。

    如果你独立完成了这一次练习,那么说明你骨骼惊奇,将成神功!不妨顺便给我一次打赏_

    我鼓励你多练习一下,试着自己去改一改这些代码,包括把它们弄的乱七八糟,一塌糊涂,这就是学习编程最好的方法。也许你可以添加一些新的非常酷的功能上去,如果你这样做了,请务必让我知晓。

    但是目前,停下来,去喝一杯。这是你应得的。

    更多...

    你已经经历了如何制作一个简单的游戏。在接下来的课程中我将会给你展示如何使用table views(表视图),navigation controllers(导航控制器),maps(地图)和GPS,photo camera(拍照),web services(网络服务),以及更多的东西,这些是你制作一个属于你自己的app所需要的全部内容。

    相关文章

      网友评论

      • ab206845a5ea:”那么说明你骨骼惊奇,将成神功! “ -- 这一翻译应该是你借题发挥,神来一笔吧,哈哈
      • 大吉__:续赞~

      本文标题:iOS Apprentice中文版-从0开始学iOS开发-第十课

      本文链接:https://www.haomeiwen.com/subject/szvjgttx.html