赞
踩
错误集锦
错误1:
Error Domain=IDEProfileLocatorErrorDomain Code=4
不存在与Team 'xxx' 相匹配的 iOS In House 的描述文件,描述文件 iOS In House 是Xcode自动创建的。
错误1的文字描述:
- 2018-06-15 09:25:06.405 xcodebuild[9232:153502] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7f81e7a58de0>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors=(
- "Error Domain=IDEProfileLocatorErrorDomain Code=4 \"No \"iOS In House\" profiles for team 'HxxxW' matching 'com.xxx.xxx' are installed.\" UserInfo={NSLocalizedDescription=No \"iOS In House\" profiles for team 'HxxxW' matching 'com.xxx.xxx' are installed., NSLocalizedRecoverySuggestion=Install a profile (by dragging and dropping it onto Xcode's dock item) or specify a different profile in your Export Options property list.}"
- )}
- error: exportArchive: No "iOS In House" profiles for team 'HxxxW' matching 'com.xxx.xxx' are installed.
-
- ** EXPORT FAILED **
错误2:
Error Domain=IDEProfileQualificationErrorDomain Code=12
描述文件是Xcode管理和创建的,需要一个开发者自己手动创建的描述文件
下图中蓝色圈中的部分是当前描述文件的信息:
错误2的文字描述:
- Error Domain=IDEProfileQualificationErrorDomain Code=12 "Provisioning profile "iOS Team Inhouse Provisioning Profile: com.xxx.xxx" is Xcode managed, but signing settings require a manually managed profile." UserInfo={IDEProfileQualificationError_Profile=<IDEEmbeddedProvisioningProfile 0x7feade49bbb0: (此处省略描述文件信息), NSLocalizedDescription=Provisioning profile "iOS Team Inhouse Provisioning Profile: com.xxx.xxx" is Xcode managed, but signing settings require a manually managed profile.}
- ** EXPORT FAILED **
错误3:
Error Domain=IDEProfileQualificationErrorDomain Code=8
描述文件没有ipa包签名的权限。
错误3的文字描述:
- error: exportArchive: Provisioning profile "com.xxx.xxx" doesn't include the xxx.ipa entitlement.
- Error Domain=IDEProfileQualificationErrorDomain Code=8 "Provisioning profile "com.xxx.xxx" doesn't include the xxx.ipa entitlement." UserInfo={IDEProfileQualificationError_Profile=<IDEEmbeddedProvisioningProfile 0x7f84f276fd10: , NSLocalizedDescription=Provisioning profile "com.xxx.xxx" doesn't include the xxx.ipa entitlement., IDEProfileQualificationErrorMissingEntitlements=(
- "xxx.ipa"
- )}
使用Xcode打包
使用Xcode打一个ipa包。打开Xcode -- General 选中Automatically manage signing,打包成功后,打开DistributionSummary.plist与我自己生成的DistributionSummary.plist进行比较发现,如下图:
我手动生成plist中的UUID和name跟在开发者账号中生成的描述文件一样,Xcode自动生成了一个In house 的描述文件,但是,竟然打包成功了,于是我把我的plist修改成跟Xcode生成的一样,结果出现了错误3。Xcode可以使用自己创建描述文件打包,但是,我们却不可以使用,因为导出的时候还是需要手动选择描述文件的。
打包命令行中输出的下面的文件地址可以前往文件夹查看输出文件,输出文件中是错误的原因:
复制蓝色划线部分,桌面 - 前往 - 前往文件夹-粘贴,可以看到四个输出文件,其中IDEDistribution.critical.log里面有错误原因,但是,跟上图中的错误是一样的。如下图:
总结:错误1、错误2出现的原因其实就是手动创建的plist中的描述文件配置和Xcode配置的不匹配的问题导致的。错误3出现的原因是没有权限。
问题解决
首先,需要打开2个:
一是钥匙串:
找到打包需要用到的证书,右键---显示简介--信任--始终信任
上图是信任过的证书,会有蓝色的+号
二是描述文件:
查找描述文件的位置:前往---前往文件夹---
~/资源库/MobileDevice/Provisioning Profiles 或者是 ~/Library/MobileDevice/Provisioning Profiles
如何查找与证书匹配的描述文件呢?
钥匙串-证书-右键-显示简介-拉到最底下-查看 SHA-1 加密的字符串,在描述文件中找到与这个相同加密的描述文件
注意:可能有多个文件,有些是Xcode自动生成的development的描述文件,可以在安装到真机的时候使用,打包导出的时候不可用。然后再找到 aps-environment: production 的文件,这个才是真正有效地描述文件。描述文件的名字也是不一样的,如果知道描述文件的具体名字也可以分辨出有效的描述文件。
在上图中,点击 空格键可以查看描述文件的详细信息,如下图:
查找与证书匹配的描述文件:
1>查看Team,查找与证书相同Team的描述文件;
2>查看SHA-1加密字符串,查找与证书相同的加密字符串;
3>查看 aps-environment,查找与自己需要的环境相匹配的;
4>查看创建日期(Creation Date)和过期日期(Expiration Date),不过这个我觉得可能不会太靠谱,有可能不是跟证书一天创建的。
基于以上几点就可以找到与证书匹配的那个有效的描述文件了。
三、Xcode配置
打开Xcode -- General 取消Automatically manage signing,自己选择证书和描述文件,如下图:
可以发现使用Xcode自动选中的证书所匹配的描述文件并不是我们打包发布需要的production的描述文件,如下图:
可能原因猜想:
1>证书配置错误:取消Xcode中的自动配置证书,手动配置需要的证书;
2>描述文件配置错误:取消Xcode中的自动配置证书,手动配置需要的证书;
3>描述文件和证书不匹配:通过证书查找到与之匹配的描述文件,删除其他不匹配/过期的描述文件;
4>忽然想起来 系统升级有个隐私权限的提醒,查看钥匙串的证书,为所有的证书的信任一栏改为始终信任,而不是系统默认的!
总结出现这种现象的原因:一是系统更新造成的证书信任与否不知道无法进行签名;二是Xcode升级导致的,选中Automatically manage signing之后,Xcode无法自动选中与发布的证书对应的描述文件;
自定义的plist文件中需要添加下图的键值对,方便脚本打包工具查找相关的描述文件:
正常的输出plist文件如下图:
需要添加的键值对,如下图:
其他错误的解决参考:
Error Domain=IDEDistributionErrorDomain Code=14
Error Domain=IDEProfileQualificationErrorDomain Code=3
Error Domain=IDEProvisioningErrorDomain Code=9
Error Domain=IDEProvisioningErrorDomain Code=9
iOS Provisioning Profile(Certificate)与 Code Signing 详解
provisioning profile doesn't include signing certificate
关于Python的学习,可以看一下这位大神的博客,博客的内容都十分的精良!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。