“App开发者需要更新此App以在此iOS版本上正常工作 ” 的解决办法 |
您所在的位置:网站首页 › app开发者需要更新此app以在此ios上正常使用怎么解决 › “App开发者需要更新此App以在此iOS版本上正常工作 ” 的解决办法 |
image.png
1.问题的原因
从iOS 14.2 beta 2开始,iOS系统将检查新的、更安全的签名格式。启动使用旧格式签名的APP用户会收到警告,即所有之前 macOS11 以下系统打包的App 在iOS14.6 或者 iOS15 以上的设备都会提示需要更新才能正常工作。 因此我们需要使用新格式给APP重新签名。 2.如何解决解决办法: 1.首先打包环境 mac升级到macOS11以上,此时打包会采用新的签名机制; 2.在升级到最新系统之后,重新通过Xcode打包生成新的安装包即可; 3.对于企业签的App,则需要企业签名提供商签名mac环境同样升级到macOS11系统之上重新签名方可解决。 打包好的xxxx.ipa文件,备份ipa文件,然后重命名为xxxx.zip,解压后会得到Payload文件夹 //xxxxx为解压后APP的名称 codesign -s "证书名称" -f --preserve-metadata --generate-entitlement-der ./Payload/xxxxx.app 3.简化过程,使用shell脚本完成该操作想法很简单就是找到在同一目录下的.ipa,并给他重新改签之后,然后输出ipa。 以下是shell 脚本代码: #!/bin/bash echo "start to resign file" read -p "Enter your certificate name:" certificate_name new_file_name="sign_new.zip" zip_file="sign_new" pay_load="Payload" app_path=`pwd` app_name='' ori_ipa_name = '' echo $app_path # 查找ipa文件 for file in `ls ` do if [[ $file =~ \.ipa$ ]];then echo "have find file " ori_ipa_name=$file # 拷贝文件并修改文件名 cp -rvf $file $new_file_name mkdir $zip_file unzip $new_file_name -d $zip_file for appName in `ls $zip_file/$pay_load` do echo "find .app file" app_name="$appName" done fi done echo "start to resign" #demo为解压后APP的名称 重签名 XXXXXXXXX 为证书名 codesign -s $certificate_name -f --preserve-metadata --generate-entitlement-der $zip_file/$pay_load/$app_name echo "start to zip file" # 开始重新打包 zip -ru resign$ori_ipa_name $zip_file/$pay_load echo "start to delete file" # 删除之前生成的文件 rm -r $zip_file rm $new_file_name echo "resign File has finished" image.png将该ipa放入与 .sh文件 同目录下,使用: ./signModify.sh执行该shell文件,会让你输入证书名,直接在钥匙串中复制证书的名字即可 image.png执行完指令后会在同目录下生成已经签名过的ipa文件 image.png展示 resign File has finished 表示改签完毕 image.png改签完成后输出的.ipa文件 image.png |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |