iOS13 Xcode11打包上传方式和上传APP报错(A downloaded software component is corrupted and will not be used)

时间:2024-04-13 08:37:41

1:xcode11以后,没有Application Loader了。

可以选择两种方式来上传包内容(这两种方式都可以,A的方式更简单一些,):

A:点击Produce->archive->Distribute App->  APP Store Connect  -> Upload 以后的正常选择即可上传到ituns。 中途可能也会遇到下面的问题,要求下载一个新的jar包。解决方式如下。或者选择方式B(先通过archive把ipa包倒出来,再根据下面的方式进行上传包)。

B:选择命令行打包。命令行在打包上传时一般会重新请求下载一个jar包,而一般网速慢的会error。经常卡在这里。

        方式一:找个网好的地方重新上传(上传过程中需要下载jar包)。

        方式二:手动下载下来jar包,再放在对应的位置。目录和地址可以看报错记录。看下图

iOS13 Xcode11打包上传方式和上传APP报错(A downloaded software component is corrupted and will not be used)这是下载好的地址的截图

iOS13 Xcode11打包上传方式和上传APP报错(A downloaded software component is corrupted and will not be used)

 

2:上传由命令行执行,由于双重验证的原因,所以需要传-apiKey 、--apiIssuer。这个去app发布的网站,进行创建一个即可,只能下载一次。

iOS13 Xcode11打包上传方式和上传APP报错(A downloaded software component is corrupted and will not be used)

需要看文档的命令行输入:xcrun altool

即可得到详细解读以下 是部分

Usage: altool --validate-app -f <file> -t <platform> -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>}

       altool --upload-app -f <file> -t <platform> -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>}

       altool --notarize-app -f <file> --primary-bundle-id <bundle_id> -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>} [--asc-provider <provider_shortname>]

       altool --notarization-info <uuid> -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>}

       altool --notarization-history <page> -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>} [--asc-provider <provider_shortname>]

       altool --list-apps -u <username> {[-p <password>] | --apiKey <api_key> --apiIssuer <issuer_id>}

       altool --store-password-in-keychain-item <name_for_keychain_item> -u <username> -p <password>

总结下来就是:

先验证:xcrun altool --validate-app -f /xxx/xxx/xxx/xxx.ipa -t ios -u xxxxxx --apiKey xxxxxx --apiIssuer xxxxxx

后上传:xcrun altool --upload-app -f /xxx/xxx/xxx/xxx.ipa -t ios --apiKey xxxxxx --apiIssuer xxxxxx

-u 是username