iOS真机调试之免费预配(Free provisioning)
免费预配允许开发者在不加入Applec Developer Program的情况下,可以发布和测试App
注意:免费预配(Free Provisioning)与自动预配(Auto Provisioning)不兼容,要想使用自动预配功能,必须有一个付费的Apple Developer Program账号
使用免费预配的要求:
- 你所使用的Apple ID不能连接到Apple Developer Program
- 该App必须有一个明确的App ID,不能带有通配符
- 该App的bundle identifier必须唯一,并且不能被别的App使用过。免费预配的bundle identifier不允许重复使用
- 如果你所使用的Apple ID在App Store上发布过App, 你不能使用免费预配
- 如果你的App要用到App Services,请按这个向导创建预配描述文件
下面一步一步来讲解,开始之前确保你有一台Mac并安装了最新版本的Xcode
一、使用Xcode创建签名标识和预配文件
1.如果你还没有Apple ID, 那就创建一个
2.打开Xcode > Preferences
3.在Accounts下面,点击+添加你的Apple ID, 如下图所示
4.关闭Xcode preferences
5.将iOS设备插入Mac
6.在Xcode里新一个项目,File > New > Project,选择Single View App
7.在新建窗口中,把Team设置成你刚刚添加的Apple ID, 如下图所示
8.项目创建完成后,设置build scheme为你的iOS设备,而非模拟器,如下图所示
9.在Xcode最左侧的项目导航里选中最顶级节点,此时将显示项目设置窗口
10.定位到General > Identity, 确保这里的Bundle Identifier与你的Xamarin.iOS app的Bundle Identifier完全一致, 如图所示
注意:Xcode只会为明确的App ID创建预配描述文件(Provision Profile)。该App ID必须与你的Xamarin.iOS应用的App ID相同。如果不一致,你就无法使用免费预配部署你的Xamarin.iOS应用
11.在Deployment Info下,确保Deployment Target不高于你的iOS设备上的版本
12.在Signing下面,勾选Automatically manage signing并选择的你的组,如下图所示
Xcode会为你自动创建预配描述文件和签名标识。你可以通过点击provisioning profile旁边的消息图标来查看
13.点击运行按钮,把程序部署到你的设备并验证Xcode是否正常工作
二、部署Xamarin.iOS应用
1.确保你的VS2019已经和Mac完成配对
2.iOS设备连接到Mac(通过USB或者无线的方式)
3.在VS2019的Solution Explorer中,Xamarin.iOS项目上右键,属性 > iOS Bundle Signing
4.Configuration, 选择Debug,Platform, 选择iPhone
5.Bundle Signing下选中Manual Provisioning
6.Signing Identity和Provisioning Profile两项,通过下拉选择Xcode中创建的相应内容,然后点击保存
7.选择iOS设置并运行程序
注意:Xcode创建的Signing Identity和Provision Profile保存在Mac电脑上,VS2019通过配对可以访问到这些信息。如果下拉列表中没找到这些信息,你可能需要重启VS2019。另外,整个过程中iOS设备都是插在Mac电脑上的而不是Windows电脑上
iOS真机调试之免费预配(Free provisioning)的更多相关文章
- iOS 真机调试不能连接网络的排错过程
开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 gSOAP 2.8 iPhone 6S+iOS 10.1.1 问题: 使用 Qt Quick 写了一个跨平台的应用,在Wi ...
- iOS真机调试之我见
入职20多天,以前一直以为iOS真机调试是多么复杂的事情,但在公司大牛的帮助下:终于理清头绪,由于公司证书已申请,文章中免不了旁征博引. 1.首先,得有苹果开发者账号,如果在公司,公司会提供:不在公 ...
- IOS 真机调试以及发布应用 2
参考网站:http://my.oschina.net/u/1245365/blog/196420 已经有开发证书的直接跳过第一步 第一步:申请“开发证书” 进入苹果开发者99美元账号: 选择:Cert ...
- react native iOS真机调试-联网问题与js严格模式
rn:strict mode does not allow function declarations in a lexically nested statement https://blog.csd ...
- ios真机调试教程(不上架App Store安装到手机)
原文 不上架App Store安装到手机调试测试,需要用到ios真机调试证书打包的ipa才能安装到非越狱的手机使用. 2017年最新整理的ios真机调试的详细图文步骤流程,轻松的把你开发的ios ap ...
- React-Native iOS真机调试(新版)
2019独角兽企业重金招聘Python工程师标准>>> React-Native iOS真机调试 看到网上很多以前的文章 找到两种方法 一 修改AppDelegate 把URL的替换 ...
- IOS 真机调试
真机调试的步骤: 1.注册成为苹果开发者(99$) 2.登陆苹果开发者主页 https://developer.apple.com/membercenter/index.action 3.点击 Cer ...
- iOS真机调试——申请开发者证书
申请开发者证书 知道了什么是证书,我们现在就开始申请证书了 1. 找到KeyChain钥匙串,在Mac应用里可以找到 2. 在钥匙串的菜单中选择从证书颁发机构请求证书,填写邮件地址,选择储存到磁盘,放 ...
- IOS 真机调试以及发布应用 1
参考网站:http://my.oschina.net/u/1245365/blog/196263 Certificates, Identifiers &Profiles 简介 Certif ...
随机推荐
- Centos7:Solr4.10安装,配置与使用(tomcat环境)
配置jdk环境,安装tomcat 解压solr bin:是脚本的启动目录 contrib:第三方包存放的目录 dist:编译打包后存放目录,即构建后的输出产物存放的目录 docs:solr文档的存放目 ...
- CSS3总结二:(background)背景/渐变色函数
background-color(CSS2) background-image background-position background-size background-repeat backgr ...
- Line 算法与deepwalk的对比 和个人理解
用户的关注关系本身就是一个图结构,要从用户关注关系生成用户的embedding表示,其实就是做graph的emebding表示. deepwalk+word2vec 比较简单,效果也还可以.这种方法再 ...
- linux 内核网络数据包接收流程
转:https://segmentfault.com/a/1190000008836467 本文将介绍在Linux系统中,数据包是如何一步一步从网卡传到进程手中的. 如果英文没有问题,强烈建议阅读后面 ...
- python自学笔记之开源小工具:SanicDB介绍
SanicDB 是为 Python的异步 Web 框架 Sanic 方便操作MySQL而开发的工具,是对 aiomysql.Pool 的轻量级封装.Sanic 是异步IO的Web框架,同时用异步IO读 ...
- Diagonal Walking v.2 CodeForces - 1036B (思维,贪心)
Diagonal Walking v.2 CodeForces - 1036B Mikhail walks on a Cartesian plane. He starts at the point ( ...
- 【安徽集训】Emerald
Description \(n\) 座城市在数轴上,第 \(i\) 座城市有一条连向第 \(i+1\) 座城市的单向边.每座城市有一个类型 A/B 以及一个非负整数人口,A 类城市的人觉得自己的城市比 ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)]
[易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点 ...
- nginx.conf文件的使用
默认配置语法 全局---服务级别的配置 user 设置nginx服务的系统使用用户,基本上不用动 worker_processes 工作进程数---跟nginx多worker有关,增大连接数的并发处理 ...
- Java-FtpUtil工具类
package cn.ipanel.app.newspapers.util; import java.io.BufferedReader; import java.io.DataInputStream ...