当前位置: 首页 > news >正文

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

本文收集整理使用 Xamarin 开发 iOS 应用时可能会遇到的各种问题。由于这是整理类的,在 CSDN 只会偶尔更新,所以可能需要去我的主站阅读更全的版本:https://walterlv.com/post/tips-for-developing-xamarin-ios-app.html。


本文内容

      • 需要注册 Apple Developer Portal
      • Could not find any available provisioning profiles for iOS
      • 需要注册 Apple Developer Program
        • 参考资料

需要注册 Apple Developer Portal

不管你用什么开发 iOS 应用,成为一个 Apple 的开发者是必要的。

  1. 访问:https://developer.apple.com/register/
  2. 登录
  3. 同意协议

完成!虽然简单,但是如果没有成为开发者,那么你在所有工具上都无法成功部署应用。

Could not find any available provisioning profiles for iOS

这个错误可能出现在你是用 Visual Studio 或者 Visual Studio for Mac 部署真机调试的时候出现。

只有 XCode 才能生成 provisioning profiles!所以,如果你希望只使用 Visual Studio 或者 Visual Studio For Mac 或者 Xamarin 来部署是不可能的。

如果出现了此错误,你需要使用 XCode 提前生成一份 provisioning profiles 然后在 Visual Studio 中使用这份 profiles。

方法:

  1. 在 XCode 中新建一个项目;
  2. 填写 Bundle Identifier:
    • 注意:必须写成跟你待会儿用 Visual Studio 部署时项目一模一样的 Bundle Identifier!
    • 比如你在 Visual Studio for Mac 中准备部署的应用为 com.walterlv.CloudKeyboard,那么在这里也必须填写 com.walterlv.CloudKeyboard
  3. 在 XCode 中部署这个临时的项目;
    • 你必须确保真的成功部署到真机上了。
  4. 换回 Visual Studio,理论上你现在就可以成功部署了。

至于那个在 XCode 中临时建的项目,你可以丢掉,也可以留着。毕竟这种方式创建的 provisioning profiles 只有 6 天的有效期。如果过期了,你就需要再来一次。

如果依然不能部署,你需要去项目中设置一下,Visual Studio 中的设置方法如下图:

设置 Provisioning

Visual Studio for Mac 中的设置方法则是选中这个项目的 Info.plist 文件,然后点击 Bundle Signing,在对话框中选。

需要注册 Apple Developer Program

注意,注册 Apple Developer Program 需要付 $99 美元的年费。

即便没有注册,也可以部署真机调试,但如上文所说,只有 6 天的有效期。如果注册了,那么有一年。


参考资料

  • How to check whether Xcode downloaded all profiles? - Stack Overflow

我的博客会首发于 https://walterlv.com/,而 CSDN 和博客园仅从其中摘选发布,而且一旦发布了就不再更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

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

相关文章:

  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • 使用 Xamarin 在 iOS 真机上部署应用进行调试
  • 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试
  • WPF 支持的多线程 UI 并不是线程安全的
  • ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件
  • WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了
  • git 的合并原理(递归三路合并算法)
  • git 合并策略
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • 使用一句 git 命令将仓库的改动推送到所有的远端
  • 将 svn 仓库迁移到 git 仓库
  • 使用 Visual Studio 调试多进程的程序
  • 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀)
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • [NodeJS] 关于Buffer
  • Angular 4.x 动态创建组件
  • classpath对获取配置文件的影响
  • css布局,左右固定中间自适应实现
  • Hexo+码云+git快速搭建免费的静态Blog
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • React-flux杂记
  • 关于字符编码你应该知道的事情
  • 前端_面试
  • raise 与 raise ... from 的区别
  • scrapy中间件源码分析及常用中间件大全
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • # Java NIO(一)FileChannel
  • #QT(TCP网络编程-服务端)
  • (function(){})()的分步解析
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (三分钟)速览传统边缘检测算子
  • (一)Dubbo快速入门、介绍、使用
  • (转)树状数组
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .net framework profiles /.net framework 配置
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net项目IIS、VS 附加进程调试
  • .NET中的十进制浮点类型,徐汇区网站设计
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @RequestMapping处理请求异常
  • [AR]Vumark(下一代条形码)
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [c]扫雷
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [CF482B]Interesting Array
  • [Django开源学习 1]django-vue-admin
  • [Flexbox] Using order to rearrange flexbox children
  • [Java并发编程实战] 共享对象之可见性
  • [leetcode 189][轮转数组]
  • [Linux] Apache的配置与运用