专栏首页walterlv - 吕毅的博客使用 Xamarin 在 iOS 真机上部署应用进行调试

使用 Xamarin 在 iOS 真机上部署应用进行调试

虽然 Xamarin 可以在 Windows 操作系统上编写和调试,但如果开发 iOS 应用,那么我们依然需要一台安装有 XCode 和 Visual Studio for Mac 的 Mac 电脑。做真机部署不是像平时使用太阳系第一 IDE Visual Studio 那样方便。

所以本文需要介绍如何使用 Xamarin 在 iOS 真机上部署应用进行调试,然后顺便说一些注意事项。

准备一台 Mac 电脑

如果你没有 Mac 电脑,那我只能很不幸地告诉你:本文读下去已经没有什么用了,你不会成功的……当然你也可以考虑使用 Mac OS 虚拟机,但成功率太低,本文不会涉及。

在 Mac 电脑上安装以下两款必备应用:

  1. XCode:从苹果应用商店安装
  2. Visual Studio for Mac:在这里下载 https://visualstudio.microsoft.com/vs/mac/

这两款应用的体积都很大,如果你没有很好的网络代理设置,安装一整天都是可能的。所以还是强烈建议你有一个稳定的代理网络来下载。

本文接下来的内容都假设你已经安装好了这两款应用。

背景知识

你需要知道一些背景知识,不然后面真机部署的时候失败了都不知道怎么回事。

  1. 你的账号必须是苹果开发者账号
  2. 只有 XCode 才能生成开发者的 provisioning profiles
  3. 只有 XCode 才能在 iOS 真机上部署全新的应用

也就是说,你必须有一些操作是在 XCode 中完成;只使用 Visual Studio for Mac 是无法完成部署任务的。

在 XCode 中准备

  1. 在 XCode 中新建一个空白 iOS 项目(什么类型都可以),这个项目随时可以丢弃。
  2. 选择你新建的项目,会出现这个项目的信息可以填,默认在 General 标签中。
  3. *[重要] 修改 Bundle Identifier。
    • 将这个 Bundle Identifier 修改为你希望部署的应用的 Bundle Identifier。比如你在 Xamarin 的 Info.plist 中写的 Bundle Identifier 是 com.walterlv.CloudKeyboard,那么这里也必须写 com.walterlv.CloudKeyboard
  4. *[重要] 一定要让这个 Bundle Identifier 文本框失焦(比如按下 Tab 或在其他文本框中点一下)。
    • 这个时候下面的 Signing Certificate 会出现一个加载中的动画,大概持续不到一秒钟,就会生成 iPhone Developer 的信息,这个就是包含 provisioning profiles 的信息(可以在 Provisioning Profile 旁边的感叹号中看到详细信息)
  5. 在 Mac 上插入你的 iPhone,解锁 iPhone,等待左上角出现你 iPhone 的名称和图标。
  6. 点击 XCode 左上角的运行按钮,等待这个空白的应用部署到你的手机上。

*[重要] 额外的,如果你开发的是 iOS 扩展,有两个或者更多的包,那么你需要重复步骤 3 到 6。也就是不断地修改 Bundle Identifier,等待生成新的 Developer 信息,然后部署这个空的应用

在 Visual Studio for Mac 中

部署

  1. *[重要] 请回到你的 iPhone 手机,删除刚刚部署的应用
    • 如果你刚刚部署了多个空白应用,那么都要删除
  2. 回到 Visual Studio for Mac 并打开你的 Xamarin 项目,然后打开准备部署的应用的 Info.plist 文件
  3. 检查 Bundle Identifier,一定要确认跟前面 XCode 中填入的是同一个 Bundle Identifier
    • 额外的,如果你是开发 iOS 扩展,有两个或更多包,那么每个包都需要进入 Info.plist 文件检查 Bundle Identifier
  4. 点击 Bundle Signing Options,选择刚刚使用 XCode 生成的开发者信息(如果你看不到,那么就是前面 XCode 的步骤没有执行正确)
  5. 在 Mac 上插入你的 iPhone,解锁 iPhone,等待左上角出现你 iPhone 的名称和图标。

    如果没有出现,你可能需要点击一下 Debug

    iPhone 区域,一定要确保选中了 iPhone 而不是 iPhone Simulator

  6. 点击 Visual Studio for Mac 左上角的运行按钮,等待你 Xamarin 的应用部署到你的手机上(可能需要数十秒到数分钟)。

理论上经过以上步骤,你就可以在你的 iPhone 上看到你用 Xamarin 开发的应用了。但其实是无法运行的。

如果部署过程中发生了任何错误,请:

  1. 检查你的步骤与本文是否有出入;
  2. 参考:使用 Xamarin 开发 iOS 应用中需要注意的若干个问题

在 iPhone 上操作

  1. 打开设置 -> 通用 -> 设备管理
  2. 点开 [自己的开发者账号],点击 [信任]

如果你是首次进行此操作(实际上阅读本文操作的应该也就是首次了),那么信任自己的开发者账号可能会花比较长的时间,Visual Studio for Mac 的部署调试可能会因为等待超时而调试失败。不过这不重要,你只需要在 Visual Studio for Mac 上点击停止调试,然后再次重来就可以了。

还需要注意,如果你删除了你部署的应用,那么下次部署的时候在 iPhone 上的操作部分需要重新进行。

还需要注意,可能每过 6 天,本文所述的所有步骤都需要重新进行一遍。

本文会经常更新,请阅读原文: https://blog.walterlv.com/post/deploy-and-debug-ios-app-using-xamarin.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (walter.lv@qq.com)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题

    本文收集整理使用 Xamarin 开发 iOS 应用时可能会遇到的各种问题。

    walterlv
  • 在 Visual Studio 的解决方案资源管理器中隐藏一些文件

    2018-07-04 12:30

    walterlv
  • 在移动端打开 Google 的网页快照

    2018-03-08 23:55

    walterlv
  • 【小家MyBatis】MyBatis基础知识33问(详解面试题)

    (1)mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建...

    BAT的乌托邦
  • 充血模型的ORM能做什么?——ORM组件XCode(十八般武艺)

    ORM组件XCode(十八般武艺) 之前,XCode总是若隐若现,耐性好的同学想知道它还有啥特点,沉不住气的则认为不过是CURD耳! XCode开发模式是灵魂,...

    大石头
  • 工具武装前端工程师

    本文主要介绍前端开发中常用的工具集合。 编辑器 1. SublimeText(Windows/Mac)可以长期免费试用 这个工具已经很火了,我之前是99%的码是...

    xiangzhihong
  • 爬虫入门篇(上手即用)

    若有些网址设有反爬机制,请求若没有headers就会报错。 可以通过chrome浏览器的F12-network查看request的headers,将该网页的h...

    星辉
  • Google搜索命令“site:”运算符高级使用技巧:

    *号技巧: 搜索“maps.*.com”可得到所有以maps.xxx.com作为域的网站内容,不过可惜的是Google不会给你全部匹配的结果,只有一部分 你可以...

    Enjoy233
  • 接口自动化测试的"开胃小菜"---简单黑客攻击手段

    Web应用系统的小安全漏洞及相应的攻击方式 接口自动化测试的"开胃小菜" 1   写作目的 本文讲述一个简单的利用WebAPI来进行一次基本没有破坏力的“黑客”...

    用户1170933
  • 漏洞预警 | Harbor任意管理员注册漏洞

    Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker ...

    FB客服

扫码关注云+社区

领取腾讯云代金券