由于用普通开发者证书,发布的app或ipa没法在普通机器上安装运行,原因是apple限制了普通开发者发布appstore以外的环境中,只有Enterprise企业版证书才能发布inhouse。 今天在发布一款公司内部使用的app时,由于mac中同时安装了 普通开发者证书 和 企业证书,xcode可能默认使用了普通开发者账号,因此发布的ipa始终无法在普通机型中安装成功。几经周折,终于发现了这个问题,于是想办法找到了设置成使用企业版证书,但是这时候连编译都无法通过,错误提示如下:

No matching provisioning profiles found

his product type must be built using a provisioning profile, however no provisioning profile matching both the identity “iPhone Distribution: PIXXX CORPORATION” and the bundle identifier “xx.xxx.enterprise.xxx.appname” was found.  Xcode can resolve this issue by downloading a new provisioning profile from the Member Center.

意思是说:我使用的企业证书 与 当前发布的程序bundle identifier 不匹配。

原因就很明显了,由于安装证书时安装了一个provisioning profile 文件,这个Provision Profile中记录了一些信息:开发者证书、开发者Apple ID、一系列设备ID(开发者可以使用哪几部设备进行调试),以及造成以上问题的 Application Identifier 。 这就是为什么会提示这个错误了。

插一句,我如何根据我的provisioning file 得知对应的 app identifier呢?

只需双击该文件,重新安装,待自动打开keychains之后,即可查看到该provision profile的 app id 了。

所以,当你只有企业证书,但却没有创建Provision Profile权限,可以委屈求全,将项目属性中的bundle identity 改成该profile的app id就可以了。才能在普通iphone运行, 但是企业证书有个问题,必须把名字改成该证书对应的provision Profile绑定的app id。

缺点也很明显,开发机如果同时安装我们的这个app 和 公司的另一个原始app, 则有一个会被覆盖,因为他们的签名是一样的。
 
你已经知道,我这里所说的没有创建Provision Profile权限的意思是指,当前拥有一个ios开发的企业证书, 拥有inhouse app发布权限,但却没有该企业证书对应的apple id, 无法登陆苹果开发者中心添加applicaiton id.

参考:

1. 如何解决修改项目名 或 bundle identity 而产生的test子集的 link error ? http://stackoverflow.com/questions/16513934/how-do-i-add-modify-the-bundle-loader-setting-in-xcode-4-6-2

2. 企业证书的申请流程, 使用,发布方法: http://blog.csdn.net/kmyhy/article/details/6418280

3. apple developer center 设置生成开发者证书,发布证书,appid, provision profile 的生成过程: http://blog.csdn.net/holydancer/article/details/9219333

在没有创建Provision Profile权限的情况下 发布Enterprise inhouse app 的方法的更多相关文章

  1. jieba分词单例模式及linux权限不够情况下tmp_dir自定义

    在linux环境下,没有root权限的情况下,有时会碰到如下问题: Building prefix dict from the default dictionary ... Loading model ...

  2. 没有 iOS 开发者账号的情况下部署到真机的方法

    原文发表于我的技术博客 本文分享了官方推荐的没有 iOS 开发者账号的情况下部署到真机的方法,供参考. 原文发表于我的技术博客 1. 官方推荐的方法 原文在此,也就是 Ionic 官方团队在博客中分享 ...

  3. 关于img标签浏览器自带的边框,清除边框的解决方式(即img[src=""] img无路径情况下,灰色边框去除解决方法)

    详解img[src=""] img无路径情况下,灰色边框去除解决方法 1.Js解决办法 <html> <head> <meta charset=&qu ...

  4. sqlserver修改sa密码(在windows登陆没有权限的情况下)

    对于windows用户没有权限执行alter login sa enable的情况下,采用如下方法可以成功修改sa密码登陆. . 用Run as a administrator打开命令提示符里输入NE ...

  5. 关于在gridview中有dorpdownlist的情况下使用自带编辑模板的方法

    今天记录一下在gridview中,如果有dropdownlist的情况下使用gridview自带编辑模式的方法. 好吧,今天的这个问题有点绕,详细解释一下目的. 因为gridview中的某些列的数据是 ...

  6. 在无修改权限的情况下修改文件hosts中的内容

    今天遇到了一个问题,本来希望修改hosts中的内容,但保存时被告知无权限,网上搜索有很多方法都无效,最后搜到一个简单的方法:将hosts文件复制到桌面上,修改,然后覆盖原来位置的hosts文件即可!

  7. 计算纯文本情况下RichTextBox实际高度的正确方法(.NET)

    2016-07-17重大更新           其实有更好.更系统的方法,也是最近才发现的,分享给大家!! /// <summary> /// /// </summary> ...

  8. ASP.NET在不同情况下实现单点登陆(SSO)的方法

    第一种:同主域但不同子域之间实现单点登陆 Form验证其实是基于身份cookie的验证.客户登陆后,生成一个包含用户身份信息(包含一个ticket)的cookie,这个cookie的名字就是在web. ...

  9. linux服务器没网情况下手动安装软件几个方法

    1,找到一个有网的服务器,使用yumdownloader gcc,获取需要的rmp包: 2,在http://pkgs.org 下下载所需要的rpm包

随机推荐

  1. C++实现一个web服务器, 弱智版服务器

    监听本地的8888端口, 当在浏览器中访问这个地址的时候, 返回一堆HTML数据, 这种方式返回的数据不稳定,不同浏览器解析不同, 因为我们没有定义返回文件类型: #include <stdli ...

  2. ccc如何在一台windows主机上搭建mysql主从复制

    参考:http://www.cnblogs.com/wzjbk/p/6266899.htmlc 进入mysql: 进入到mysql的bin目录下才可以输入 mysql -hlocalhost -uro ...

  3. .net 关于匿名类型的特性

    匿名类型 1: var n1 = new { name = "name1", age = 40 }; 2: var n2 = new { name = "name2&qu ...

  4. jQuery.event详细解析

    介绍之前先介绍jQuery的一个方法 jQuery.event.fix(event || window.event); 此方法个浏览器的event对象转换为 jQuery.event; 如果您的事件是 ...

  5. 神器phpstorm功能具体解释

    phpstorm包括了webstorm的所有功能,更可以支持php代码. PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,高速导航以及即 ...

  6. Android versionCode和versionName的区别

    简单的说,versionCode是给机器看的,versionName是给人看的.更新的时候,机器根据versionCode判断是升级还是降级,即使versionName(版本号)比以前的高,但是ver ...

  7. Python 入门必学的8个知识点

        文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论

  8. Qt 拖动窗口位置

    Qt 版本 4.8.1 ,主要是为了解决 embeded Qt 下,子窗口的拖动问题. void MyInputPanel::mousePressEvent(QMouseEvent *mouseEve ...

  9. CentOS 6.9 下安装DB2

    操作系统:CentOS6.9_x64 DB2安装文件: db2_v101_linuxx64_expc.tar.gz 安装数据库 tar zxvf db2_v101_linuxx64_expc.tar. ...

  10. Android学习笔记八:用Broadcast Receiver跨进程(跨app)通信

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7515194.html 在前面介绍四大组件的时候提到了可以对外部事件进行过滤的Broadcast Receive ...