iOS真机测试

本文中主要介绍一下如何使用测试证书在iPhone手机上测试自己的项目,当然,在Xcode 7.0 之后,我们不在需要使用测试证书就可以实现项目的真机运行,这就大大简化了真机调试的步骤。所以,在讲使用测试证书之前,我先来看一下Xcode 7.0 是如何实现真机测试的。

1. Xcode 7.0 实现真机测试

第一步:准备工作;需要准备 iPhone 手机,Apple ID,Xcode 7.0;
第二步:打开Xcode 7.0 的偏好设置;通过 common + ,可以打开Xcode 的偏好设置,当然你也可以在Xcode的控制栏找到偏好设置选项,如下图所示:
这里写图片描述
第三步:选中Accounts 选项,点击左下角的+按钮,选中Add Apple ID选项;
这里写图片描述
第四步:看到如下界面,登录Apple ID;
这里写图片描述
第五步:登录Apple ID后,可以看到如下效果
这里写图片描述
第六步:点击View Details…,看到如下界面:
这里写图片描述
第七步:到这里,真机测试的基本设置基本就结束了,下面可以做真机测试里,直接插上手机,选中运行项目的模拟器为你的手机设备运行项目即可。
这里写图片描述
第八步:点击Fix Issue,等一会会弹出下面的界面,你可以在这里选中你要真机测试的账号。
这里写图片描述
当然,你也可以在运行项目之间选中;
这里写图片描述
第九步:最后一个问题,运行项目之后,在手机上已经出现你的应用的APP,但是Xcode弹出一个对话框:process launch failed: Security,而且手机上的应用也无法使用,这时你需要在你的手机上给你的手机设置授权。设置 —> 通用 —> 设备管理 —> 点击开发商应用 —> 点击信任,这时你手机上的应用就可以运行了。

以上,就是Xcode 7.0 之后做真机测试的全部流程,当然在近期做测试时出现了一些问题,就是应用的Bundle identifier 需要设置为唯一的一个才能在手机上运行。

2. 使用测试证书实现真机测试

使用证书做真机测试,首先你需要一个苹果开发者账号,才能够创建测试证书。
第一步:登录苹果开发者账号;
登录网址:https://developer.apple.com,进入苹果开发者中心网站;
这里写图片描述
选中Account(账户),登录自己的开发者账号;
这里写图片描述
登录完成后看到如下界面:
这里写图片描述
改版后的开发者中心和之前有很大的不同,看起来有些不习惯,不过你会习惯的。在该界面上只剩下了两个模块,一个是证书管理模块,一个是发布APP的提交和管理模块;
第二步:点击进入证书管理模块;
这里写图片描述
第三步:创建开发证书;
点击当前界面右上角的+ 按钮,添加一个证书。iOS证书分两大类,一是开发证书,用来真机测试;一是生产证书,用来App 的发布。我们今天需要创建的是第一类开发证书。
这里写图片描述
选中 iOS App Development,点击continue,进入下一页;
这里写图片描述
第四步:创建CSR文件;
上图提示我们需要创建一个CSR文件,打开钥匙串访问 —> 证书助理 —> 从证书颁发机构请求证书…。
这里写图片描述
然后看到如下界面,我们选择将证书存储到磁盘,所以两个邮件地址对边填写就可以了。
这里写图片描述
点击继续,将创建的CSR文件存储到桌面,最后生成证书请求文件.certSigningRequest。
这里写图片描述
第五步:提交CSR文件
回到证书创建界面,点击continue,看到下面的界面,选中并提交刚刚创建的CSR文件。注意:要求制作CSR文件的电脑和使用该文件的电脑是同一台。
这里写图片描述
第六步:下载开发证书;
提交CSR文件后,我们就可以得到一个开发证书,点击Download,下载开发证书到本地,我们可以得到一个.car文件。
这里写图片描述
注意,下载完后一定要点击底部的Down按钮,完成开发证书的创建,否则无法完成证书的创建,下载的开发证书也是无效的。点击down按钮后,我们可以在证书管理模块中看到新创建的开发证书,有效期为一年。
这里写图片描述
第七步:安装开发证书;
下载开发证书后,双击.car 文件,钥匙串访问中多了一个我们刚刚创建的测试证书。
这里写图片描述
第八步:创建App ID
下图是App ID 的列表,App ID 中 * 号代表通用符。
这里写图片描述
点击当前界面右上角的+按钮,添加App ID,并填写App ID的描述信息以及与程序绑定的相关信息。
这里写图片描述
这里写图片描述
这里写图片描述
按照要求填写并选择相应选项,这里我们选择第二个选项:Wildcard App ID。填写完成后,点击下面的continue按钮,可以看到下面的界面:
这里写图片描述
上面是应用开启的服务,灰色代表我们未选中任何服务项目。注意:一定要点击Register 按钮提交,完成App ID的创建,然后我们就可以在App ID的管理列表中看到我们刚刚创建的App ID了。
这里写图片描述

填写app ID时,其信息的描述部分可以由开发者随意填写,但其中不要包括特殊字符,如 “@”、 “” 等;而“bundle identifier”的填写则相当重要,如果此信息填写不正确,则无法完成真机测试应用程序。这里具体由两种写法。具体看下苹果公司提供的一个用例“com.domainname.appname”。命名需要按照此规范填写。第一个“.com”是必须按照苹果公司给的样式填写的,而“domainname”则需要用户自定义填写,这部分信息可以由开发者随意填写,但苹果公司推荐用公司的域名。最后一部分则表示你需要测试的应用程序的名字,比如创建xcode文件时,创建了一个叫app的应用程序,那么这部分就填写app。当然也可以用“”号代替,则表示可以用于任何iphone程序的测试。
第九步:注册测试设备:
这里写图片描述
上图是已经添加过的测试设备列表,注意:添加过的设备是不能删除的,但是你可以使它失去作用,当然也可以重新赋予权力。
点击当前界面右上角的+按钮,添加测试设备:
这里写图片描述
点击最下面的continue,可以看到注册设备的相关信息,注意,一定不要忘了点击下面的register 按钮,完成注册设备的提交。
这里写图片描述
第十步:创建Xcode配置文件;
千山万水我们终于走到了最后一步,创建Xcode的配置文件:Provisioning Profiles。通过配置文件,我们将上面创建的开发证书(Certificaters)、AppID、注册设备(Devices)联系起来。
这里写图片描述
上图是Xcode配置文件的列表,黄色警告代表这些配置文件都已经失效。点击当前界面右上角的+按钮,添加新的Xcode配置文件。
这里写图片描述
选中上图的选项,点击continue按钮。
这里写图片描述
选择刚刚创建的App ID,点击continue按钮。
这里写图片描述
在当前界面我们选中对应的开发证书(Certificates),可以多选。点击continue按钮进入下一界面。
这里写图片描述
选中真机测试的设备,点击continue按钮,进入下一界面。
这里写图片描述
给配置文件起一个名字,点击continue按钮,进入下一步。
这里写图片描述
这是我们已经可以获取到适配文件,点击DownLoad下载配置文件到本地,我们可以得到一个.mobileprovision文件。注意,不要忘记点击Done按钮,此时配置文件的创建才算真正完成。下载好provisioning文件后,双击安装文件即可。确认是否将provisioning文件正确安装在设备中,可打开xcode,在organizer对话框中查看。
这里写图片描述
在配置文件列表,我们可以看到刚刚创建的文件。
第十一步:配置工程信息;
在工程中我们需要修改两点:
一是应用的BundleID,打开plist文件,将“bundle identifier”中的“yourcompany”,改成与公司域名。及需要与app ID一致,如在创建app ID时,创建的是“com.apple.”,plist文件也相应改成“com.apple. ” , “ * ”号部分不需要用户修改。所以在这里BundleID就不需要修改了,因为我们使用了*号作为我们的App ID,可以适配所有的项目的BundleID。
这里写图片描述
二是集成Xcode配置文件,
找到Code Signing,集成我们刚刚下载的配置文件就可以了。选择xcode工程的Build Settings,将“code signing identifier”选择为已创建好的mobileprovisioning文件。
这里写图片描述

最后,如果希望自己创建的开发证书在其他电脑上使用,我们可以导出秘钥文件,通过在其他电脑上安装秘钥文件,来实现证书的移植。
这里写图片描述
这里写图片描述
导出过程中,会要你设置输出文件的保护密码,并输入电脑保护密码获取输出文件的授权,最终我们可以得到一个.p12文件。在其他电脑运行该文件即可。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

Notification详解 - 2016-06-25 19:06:17

一、Notification的基本情形 元素: 1.  标题   Title/Name 2. 大图标  Icon/Photo 3. 内容文字    4. 内容信息   MESSAGE 5. 小图标 Secondary Icon 6. 通知的时间 Timestamp,默认为系统发出通知的时间,也可通过setWhen()来设置 二、app中的通知实现方式及特点 Banner :在不中断当前操作的情况下告知用户新消息,会对当前有干扰,但不打断,应用中要注意停留时间和用户错过后的找寻路径; Alert :强打断型

搬砖之路之xutils - 2016-06-25 19:06:14

一直想做一个系统的总结,种种原因,未能成行,今天受同事刺激,决定发粪图墙!从xutils开始!! xutils已经使用两年了,就两个印象;1、流弊。2、作者是真懒,3出了这么久了,连个文档都没有,虽说有我也不看。。。水平有限,我不会说源码的事,只会总结自己怎么用的经验,因为没看过源码,也看不懂,牢骚完毕,说正事: xutils有若干功能,主要有4部分;注解、网络加载、图片加载、数据库;其他的还有log输出、MD5加密等小功能,基本上对于新手而言,xutils在手,帝都怎么着也能8000+了。 导入 1、
目录 1 演示程序安装与激活 5 1.1 安装 5 1.2 Android 版本 5 1.3 激活方式介绍 5 2 拍摄注意事项 6 2.1 一般要求 6 2.2 对拍摄图像的要求 6 3 接口概述与集成说明 6 4 调用识别 Activity 7 4.1 识别参数说明 7 4.2 识别返回值说明 8 5 调用识别 Service 11 5.1 调用 Service 方式概述 11 5.2 示例代码 11 6 调用识别参数配置函数 15 7 序列号在线激活方式的集成步骤 17 7.1 资源文件的拷贝 17
概述 本篇是继上一篇Android 源码解析View的touch事件分发机制之后的,关于ViewGroup事件分发机制的学习。同样的,将采用案例结合源码的方式来进行分析。 前言 在分析ViewGroup事件分发机制之前,我们也需要学习一下基本的知识点,以便后面的理解。 ViewGroup中有三个关键的方法参与事件的分发 dispatchTouchEvent(MotionEvent event),onInterceptTouchEvent(MotionEvent event),和onTouchEvent(M
通过SpannableStringBuilder来实现,它就像html里边的元素改变指定文字的文字颜色或背景色 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String str="这是设
iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data XML属性列表(plist)归档 属性列表是一种XML格式的文件,拓展名为plist。 如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文件中。 举个例子: 将一个NSDicti
孙广东   2016.6.24 http://blog.csdn.net/u010019717 VS 本身就是全宇宙最强的开发工具,  微软官方开发和维护者.Net版的 python .  IronPython  。 开发python强大到折服!      安装vs2015时要选择 python的扩展插件, 如果没有就更新安装。          面向Python 的最流行(且功能最强大)的开源 Web 开发平台 - Django。创建数据驱动的动态应用程序。探讨 Django 中提供的对象关系映射 (O

纸牌游戏之五 主界面类 - 2016-06-25 18:06:32

package com.example.azhipai;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.ContentValues;import android.con
Fragment 用途:在一个Activity里切换界面,切换界面时只切换Fragment里面的内容 生命周期方法跟Activity一致,可以理解把其为就是一个Activity 定义布局文件作为Fragment的显示内容 //此方法返回的View就会被显示在Fragment上@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO
项目介绍 运行示例: UML类图: 控制层:MainActivity 视图层:HeadlinesFragment 的listview, ArticleFragment的textview 数据层:Ipsum 代码分析 首先是MainActivity的布局news_articles.xml,考虑适配,我们写好两种layout满足不同尺寸的设备 普通模式: FrameLayout xmlns:android = "http://schemas.android.com/apk/res/android" andro