最近碰到奇葩问题,企业包只在iOS9,iOS10下载安装不了报错:
其他手机是可以下载的,
但是查看项目APP和extension都是最低支持iOS8,iOS9的,没有理由iOS10不能下载的
开始不好定位原因,因为没有日志输出
后面通过mac 控制台输出日志来看,在后来通过https://github.com/FIRHQ/LogGuru/releases工具
通过来看日志输出的,但是还是很模糊
后面通过蒲公英工具来看日志
报错日志(摘录):
、、、
itunesstored➜LaunchServices: installing placeholder for <LSApplicationProxy: 0x124e76920> xxx.xxx.xxxxx.xxxxx <(null) Not found in database>
itunesstored➜LaunchServices: Creating installProgressForApplication:<LSApplicationProxy: 0x124dc0bc0> xxx.xxx.xxxxx.xxxxx (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/FDF5263C-2219-4717-9DB9-CB3BBCB9CBA6/-5601841554507081690.app> withPhase:0
20:43:50 itunesstored➜LaunchServices: installPhaseFinishedForProgress: xxx.xxx.xxxxx.xxxxx.Loading - <NSProgress: 0x124da4d80> : Parent: 0x0 / Fraction completed: 1.0000 / Completed: 1 of 1 called, removing progress from cache
installd➜0x16e2d3000 +[MIContainer allContainersForIdentifier:options:error:]: 348: No bundle container found for identifier xxx.xxx.xxxxx.xxxxx
mobile_installation_proxy➜0x16e087000 LoadInfoPlist: Failed to create CFBundle from URL file:///private/var/mobile/Containers/Bundle/Application/95B91FA1-0D01-4195-A855-7B7E1A3D5D83/PGDribbble.app
LSInstallProgress: In subscribeBlock: could not find parent progress for xxx.xxx.xxxxx.xxxxx, it may have been removed
libMobileGestalt MobileGestalt.c:276: server_access_check denied access to question UniqueDeviceID for pid 222
CircleJoinRequested➜Can't read state data (p=file:///var/mobile/Library/Preferences/com.apple.security.CircleJoinRequested.plist, err=Error Domain=NSCocoaErrorDomain Code=260 "未能打开文件“com.apple.security.CircleJoinRequested.plist”,因为它不存在。" UserInfo={NSFilePath=/var/mobile/Library/Preferences/com.apple.security.CircleJoinRequested.plist, NSUnderlyingError=0x154508a60 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}})
0x16e6cb000 -[MIPluginKitPluginBundle overlaidInfoPlistWithError:]: 215: Appex bundle at /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.t4Qs2I/extracted/Payload/xxxx.app/PlugIns/XsitScreen.appex with id xxx.xxx.xxxxx.xxxxx.shareScreenExtension specifies a value (com.apple.broadcast-services-upload) for the NSExtensionPointIdentifier key in the NSExtension dictionary in its Info.plist that does not correspond to a known extension point.
iPhone installd → <Error>: 0x16e12f000 -[MIPluginKitPluginBundle overlaidInfoPlistWithError:]: 159: Appex bundle at /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.KYuLig/extracted/Payload/xxx.app/PlugIns/iChatScreen.appex with id xxx.xxx.xxxx.shareScreenExtension specifies a value (com.apple.broadcast-services-upload) for the NSExtensionPointIdentifier key in the NSExtension dictionary in its Info.plist that does not correspond to a known extension point.
10:36:06 iPhone itunesstored → <Error>: 0x16e12f000 __MobileInstallationInstallForLaunchServices_block_invoke222: Returned error Error Domain=MIInstallerErrorDomain Code=59 "Appex bundle at /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.KYuLig/extracted/Payload/xxx.app/PlugIns/iChatScreen.appex with id xxx.xxx.xxxx.shareScreenExtension specifies a value (com.apple.broadcast-services-upload) for the NSExtensionPointIdentifier key in the NSExtension dictionary in its Info.plist that does not correspond to a known extension point." UserInfo={LegacyErrorString=AppexBundleUnknownExtensionPointIdentifier, FunctionName=-[MIPluginKitPluginBundle overlaidInfoPlistWithError:], SourceFileLine=159, NSLocalizedDescription=Appex bundle at /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.KYuLig/extracted/Payload/xxx.app/PlugIns/iChatScreen.appex with id xxx.xxx.xxxx.shareScreenExtension specifies a value (com.apple.broadcast-services-upload) for the NSExtensionPointIdentifier key in the NSExtension dictionary in its Info.plist that does not correspond to a known extension point.}
10:36:06 iPhone lsd → <Warning>: LaunchServices: Setting progress = FAILED for app xxx.xxx.xxxx
in the NSExtension dictionary in its Info.plist that does not correspond to a known extension point." UserInfo={LegacyErrorString=AppexBundleUnknownExtensionPointIdentifier, FunctionName=-[MIPluginKitPluginBundle overlaidInfoPlistWithError:]
that does not correspond to a known extension point
、、、
后面慢慢从长长日志中找出了关键点,所以一定要耐心,我差点都放弃了
找出了com.apple.broadcast-services-upload这个错误,是录屏extension导致的,所以后面把录屏extension移除掉,把有关录屏第三方sdk移除掉,下载成功了 并项目运行成功,原来
是支持iOS11以上,而在录屏extension设置支持iOS9没有什么效果,这也是一大坑. 写出来目的让后面碰到这种问题能快速解决,不会浪费太多时间在这
如果碰到这种情况要有录屏功能又要适配低版本怎么办呢?因为这是考虑的,做法就是添加extension时选择支持最低版本应该是选择当前extension支持最低版本,不能虚假支持更低版本,不然导致低版本安装不了。切记!!
蒲公英借鉴:https://www.pgyer.com/doc/view/ios_install_failed
借鉴链接:https://blog.csdn.net/mingming24/article/details/49095933 blog.csdn.net/lck8989/art…
苹果官网:https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/AppExtensionKeys.html