[iOS]ERROR ITMS-90682: Invalid Bundle

iOS 10发布后,马上更新了xcode 8,果然不出所料,各种bug,各种问题出现。例如正想上传App的时候,出现了如下错误:

ERROR ITMS-90682: Invalid Bundle - The asset catalog at 'Payload/XXXXX/Assets.car' can't contain 16-bit or P3 assets if the app supports iOS 9.3 or earlier.

注意路径:Payload/xxx/Assets.cat  的错误

不是路径:at'$patch' can't contain 16-bit or P3 .......的错误

那么有问题就度娘、goooooooooooogle,

在stackoverflow上找到方法一:

在 Xcode 8 中,当你资源文件中[含有16位图]或者[图片显示模式γ值为'P3'] 且iOS targets设定为iOS 9.3以下就会出现这个问题. 如果你的app需要支持广色域显示的话,那你必须得把target设置成iOS 9.3+,相反,如果你的app不需要支持广色域且你想兼容 iOS 9.3 之前的项目,你就得把所有的16位的或者显示模式为'P3'图片全都替换成8位模式的SRGB颜色的图片。

你可以通过运行“assetutil”在iTunes Connect的错误信息中找到16-bit 或 P3 资源文件。离线的解决方案如下:

1.导出项目的 ipa 文件

2.定位到该ipa文件修改后缀名.ipa 为 .zip.

3. 解压该 .zip 文件. 解压后的目录里面会有一个包含着你的 app bundle 文件的 Payload 文件夹.

4. 打开终端病切换到你的app的Payload文件夹下的 .app bundle 文件夹内,形式如下:

cd path/to/Payload/your.app

5. 用 find 命令定位到 Assets.car 文件 .app bundle , 形式如下:

find . -name 'Assets.car'

6. 使用 assetutil 命令找到任何包含着 16-bit or P3 的资源文件, 对每个 Assets.car 之行以下命令 :

sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json

注:这里的/path/to/a/Assets.car 指的是Assets.car的路径,不要直接复制!!!使用上一步find命令的结果。

7.  打开上一步生成的 /tmp/Assets.json 文件并查找包含有 “DisplayGamut": “P3” 或者相关的内容.  这段json的"Name"字段对应的值就是16位或显示的γ值为P3的资源文件名.

8.  找到这个资源文件修改为 8位的sRGB形式,重新编译上传你的app即可.


BUT ,方法一无法解决我的问题!!!因为根本找不到16位数或者P3 对应的错误字段 而且终端出现如下错误:

Unable to create unsliced image from csi bitmap data.

Unable to create unsliced image from csi bitmap data.

Unable to create unsliced image from csi bitmap data.

Unable to create unsliced image from csi bitmap data.

Unable to create unsliced image from csi bitmap data.

Unable to create unsliced image from csi bitmap data.

Unable to create unsliced image from csi bitmap data.


心中万个草拟吗奔腾

继续stack 找到方法二:(写脚本)这个方法对我有效

地址:http://stackoverflow.com/questions/39228601/assets-car-cant-contain-16-bit-or-p3-assets-if-the-app-supports-ios-8-or-earlie

#!/bin/sh

files=`find . -name "*.png"`

for i in ${files[@]}; do
    SOURCE_FILE=${i}
    DESTINATION_FILE=$SOURCE_FILE
    sips \
    --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' \
    "$SOURCE_FILE" \
    --out "$DESTINATION_FILE"
done

exit 0
1.写一个如上脚本pic.sh,把脚本放到工程的  Images.xcassets 里面。

2.打开终端terminal ,进入到Images.xcassets 里面,使用命令./pic.sh 允许脚本。(如果允许不了,请给权限 chmod 777 pic.sh)

3.然后就看到不符合格式的图片 被自动处理啦,重新上传OK。

如下被处理的错误图片 终端自动处理 的log:

<CGColor 0x7fa99b507120> [<CGColorSpace 0x7fa99b400380> (kCGColorSpaceDeviceRGB)] ( 0 0 0 1 )

<CGColor 0x7fa99b507120> [<CGColorSpace 0x7fa99b400380> (kCGColorSpaceDeviceRGB)] ( 0 0 0 1 )

<CGColor 0x7fa99b507120> [<CGColorSpace 0x7fa99b400380> (kCGColorSpaceDeviceRGB)] ( 0 0 0 1 )

<CGColor 0x7fa99b507120> [<CGColorSpace 0x7fa99b400380> (kCGColorSpaceDeviceRGB)] ( 0 0 0 1 )

<CGColor 0x7fa99b507120> [<CGColorSpace 0x7fa99b400380> (kCGColorSpaceDeviceRGB)] ( 0 0 0 1 )

<CGColor 0x7fa99b507120> [<CGColorSpace 0x7fa99b400380> (kCGColorSpaceDeviceRGB)] ( 0 0 0 1 )



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值