iOS 有关应用真机调试和打包上传到App Store的一些总结以及对证书、App Ids、和描述文件(Certificates, Provisioning Profiles)的一些总结
2015-12-11 18:44
645 查看
2016.06.21更新一下,补充内容主要针对新手。内容较长点上方+查看目录。
首先,我们的开发者网站:https://developer.apple.com
从上往下依次是:证书、应用标示符、设备、描述文件
创建时 基本上按这个顺序就OK: App Ids --> Certificates --> Profiles
Explicit App ID :唯一的App ID,只用于唯一标识的一个程序。
Wildcard App ID:通配符App ID,用于一组通配的程序
这里的唯一和通配是创建时以 Bundle Id 来区分的,看图解。
Bundle Id 看这里。。
创建
创建时注意区分上述两个种类。
创建步骤:参考 http://jingyan.baidu.com/article/ff411625b8141312e48237a7.html (偷个懒~)
这个东西创建好下载到本地之后,双击即可自动导入xcode。
在真机测试、以及打包的时候要根据其类型进行选择。
项目做了一些小小的改动,今天为项目更新了个版本,虽然之前了解过不少版本打包上传的事项,但再去做的时候还是难免遇到一些坑。下面问题是我按遇到的顺序总结的,所以顺序可能不太有讲究,难度也参差不齐,我会放目录上去,方便大家查看。
解决办法:选择通用的开发证书或上传证书就可以了(不需要具有推送功能)。原因:provisioning profile 用的certificate与给server 端用的certificate 是不一样的。可以参考这篇帖子:http://www.cocoachina.com/bbs/read.php?tid=191206 。
解决办法:
1.更新xcode版本到最新
2.手动拷贝配置包文件到目录(/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport)下。这里是9.0至9.2的配置包。大家可以自行下载。
解决办法:增大targets-general里的build后的值,改变这个值是不影响版本号的(如图)。有关version和build的区别,可以参考 http://blog.csdn.net/linzhiji/article/details/8173503 。
Loader上传 。
生成的api分析文件太大,我们无法交付 影响上架,这只是通知信息.The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just
我想是工程中有私有或过长的API,但是我这次只是修改内容,并未添加新的文件进来,所以我能确定并不会存在私有API的问题,就给它忽略掉了。大家遇到的话可以考虑检查现有的API以及导入的第三方库中的API有没有问题。这也有个参考方法(懒,未实践~) http://bbs.appcan.cn/forum.php?mod=viewthread&tid=23624&fromuid=96511
我们遇见这个问题是因为另一个开发的小伙伴不小心把一个frame放到了bundle了
解决办法:在Copy Bundle Resource里把这个framework移动到正确的位置(其他framework待得地方)
打包生成IPA包时遇到错误:missing ios distribution signing identity for XXXXXXXXXX
如何在多台机器上共享IOS证书
ios 证书无法生成p12 文件解决,或者无法生成秘钥
为什么生成Provisioning Profile 时找不到相应的certificates
首先,我们的开发者网站: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上传 。这个问题暂时没找到直接的解决办法,我的处理时到处之后然后用ApplicationLoader上传 。
生成的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
相关文章推荐
- 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限
- iOS在线播放视频
- Android 框架修炼-自己封装双缓存管理框架库
- Android SlidingMenu 侧滑菜单
- Android学习第五天————ExpandableListView组件通过适配器BaseExpandableListAdapter实现两层列表项
- 反编译Android APK
- iOS核心绘图
- 【ALearning】第四章 Android Layout组件布局(一)
- iOS NSURLSession 学习(2)
- Android学习第五天————Spinner下拉列表组件
- iOS系统font 大全
- swift NSURLSession 使用方法
- Android 记录-点滴
- //兼容苹果手机的SDK微信上传图片 下载到服务器
- Swift 利用UIScrollView和两个UIImageView实现图片轮滚
- Android Studio 使用中遇到的问题解决
- IOS-43-导航栏标题navigationItem.title不能改变颜色的两种解决方法
- Android学习第四天————AutoCompleteTextView自填充文本框
- Android按键音(焦点)
- iOS 3DES加密解密(一行代码搞定)