“App开发者需要更新此App以在此iOS版本上正常工作 ” 的解决办法

您所在的位置:网站首页 app开发者需要更新此app以在此ios上正常使用怎么解决 “App开发者需要更新此App以在此iOS版本上正常工作 ” 的解决办法

“App开发者需要更新此App以在此iOS版本上正常工作 ” 的解决办法

2023-05-23 10:23| 来源: 网络整理| 查看: 265

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