您的位置:首页 > 移动开发

iOS 有关应用真机调试和打包上传到App Store的一些总结以及对证书、App Ids、和描述文件(Certificates, Provisioning Profiles)的一些总结

2015-12-11 18:44 645 查看
2016.06.21更新一下,补充内容主要针对新手。内容较长点上方+查看目录。

首先,我们的开发者网站:https://developer.apple.com

名词解释和创建

了解这里面每一项的iOS部分。



从上往下依次是:证书、应用标示符、设备、描述文件

创建时 基本上按这个顺序就OK:  App Ids --> Certificates --> Profiles  

 App Ids

App ID用于标识一个或者一组App,App ID应该是和Xcode中的Bundle ID是一致的或者匹配的。App ID主要有以下两种

Explicit App ID  :唯一的App ID,只用于唯一标识的一个程序。

Wildcard App ID:通配符App ID,用于一组通配的程序

这里的唯一和通配是创建时以 Bundle Id 来区分的,看图解。

Bundle Id 看这里。。





Certificates 

证书是用来给应用程序签名的,只有经过签名的应用程序才能保证他的来源是可信任的,并且代码是完整的, 未经修改的。在Xcode Build Setting的Code Signing Identity中,你可以设置用于为代码签名的证书。







创建

创建时注意区分上述两个种类。

创建步骤:参考 http://jingyan.baidu.com/article/ff411625b8141312e48237a7.html (偷个懒~)

Provisioning Profiles

 又叫描述文件或PP文件,一个Provisioning Profile文件包含了上述的所有内容:证书、App ID、设备。有以下几类。



这个东西创建好下载到本地之后,双击即可自动导入xcode。

在真机测试、以及打包的时候要根据其类型进行选择。



项目做了一些小小的改动,今天为项目更新了个版本,虽然之前了解过不少版本打包上传的事项,但再去做的时候还是难免遇到一些坑。下面问题是我按遇到的顺序总结的,所以顺序可能不太有讲究,难度也参差不齐,我会放目录上去,方便大家查看。

Devices 

添加设备 http://jingyan.baidu.com/article/29697b910b9a45ab20de3c89.html  (比较简单,偷个懒。。)

更新前原文

整理删除描述文件(provisioning profile

前往文件夹:~/Library/MobileDevice/Provisioning Profiles 选择删除即可。

生成Provisioning Profile 时找不到相应的certificates   

我这里需要对应的certificates 是具有推送功能的。重试了好多遍,发现创建provisioning profile时始终没有那个自己创建的具有推送功能的证书。

解决办法:选择通用的开发证书或上传证书就可以了(不需要具有推送功能)。原因:provisioning profile 用的certificate与给server 端用的certificate 是不一样的。可以参考这篇帖子:http://www.cocoachina.com/bbs/read.php?tid=191206 。

真机测试报 could not find developer disk image

原因是我的xcode未升级7.2,而刚刚又把手机系统升级到了9.2.2。所以会出现Xcode中没有匹配的配置包文件的问题。

解决办法:

1.更新xcode版本到最新

2.手动拷贝配置包文件到目录(/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport)下。这里是9.0至9.2的配置包。大家可以自行下载。

上传出现 Redundant Binary Upload. There already exists a binary upload with build version

意思,你已经上传过一个相同版本了,不能重复上传。

解决办法:增大targets-general里的build后的值,改变这个值是不影响版本号的(如图)。有关version和build的区别,可以参考 http://blog.csdn.net/linzhiji/article/details/8173503 。



archive后,出现other items,而不是停留在iosApps上

这个问题暂时没找到直接的解决办法,我的处理时到处之后然后用Application Loader上传 。这个问题暂时没找到直接的解决办法,我的处理时到处之后然后用Application
Loader上传 。

生成的api分析文件太大,我们无法交付 影响上架,这只是通知信息.The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just
an informational message

我想是工程中有私有或过长的API,但是我这次只是修改内容,并未添加新的文件进来,所以我能确定并不会存在私有API的问题,就给它忽略掉了。大家遇到的话可以考虑检查现有的API以及导入的第三方库中的API有没有问题。这也有个参考方法(懒,未实践~) http://bbs.appcan.cn/forum.php?mod=viewthread&tid=23624&fromuid=96511

打包时提示错误:Found an unexpected Mach-O header code

原因:有framework文件混入了TARGETES-Build Phases-Copy Bundle Resource里面
我们遇见这个问题是因为另一个开发的小伙伴不小心把一个frame放到了bundle了
解决办法:在Copy Bundle Resource里把这个framework移动到正确的位置(其他framework待得地方)



附加:

上传AppStore出现:Missing iOS Distribution signing identity for...的问题
打包生成IPA包时遇到错误:missing ios distribution signing identity for XXXXXXXXXX
如何在多台机器上共享IOS证书

ios 证书无法生成p12 文件解决,或者无法生成秘钥

为什么生成Provisioning Profile 时找不到相应的certificates


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: