iOS15 beta版本安装不成功 || app要求更新

11 篇文章 7 订阅 ¥9.90 ¥99.00
2 篇文章 0 订阅

一、原因:缺少DER entitlement

解释一下DER:DER is short fro Distinguished Encoding Rules and is a standard by which ASN.1 structures are transferred. ASN.1 is a standard by which data can be encoded and decoded no matter which platform is being used. ASN.1 in this specific case applies to data encoding

简单的说就是一种加密方式。

二、错误提示:validation failed because of missing DER entitlements

[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:]: 74: Failed to verify code signature of /var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.xbDKXR/extracted/Payload/*********.app : 0xe8008029 (The code signature version is no longer supported.)

三、解决办法:

3.1、看自己的macOS的系统版本:如果是macOS Big Sur or macOS Monterey,那么直接加上flag:--generate-entitlement-der 即可,

        【怎么加--generate-entitlement-der】:<1> xcode中build setting 中OTHER_CODE_SIGN_FLAGS:--generate-entitlement-der 

<2> re-sign,这个对单个APP可以

# Re-sign your app

% codesign -s "Signing Identity Name from Keychain" -f --preserve-metadata --generate-entitlement-der MyApp.app
...
MyApp.app: replacing existing signature

# Check your signature again

% codesign -dvvvvv  ActionExtensionHostSSO.app
...
Page size=4096
    -7=4ade7be00e0a7b6db853edc4843e7ece1eea646f6f13d1809f78fc50d8db461f
    -6=0000000000000000000000000000000000000000000000000000000000000000
    -5=1dfa58bd8ac3c4fb42142c1c4d28c436128b3a7460186a44526194fb690112bc
    -4=0000000000000000000000000000000000000000000000000000000000000000
    -3=ef08dbe5a7c355336e1fb571604b683ce1c54536cb59a6155a1d18387fd23f6e
    -2=5b730fa46ffd405fd88da9606d82eda9af7f460f6049047afc176163326f5a7f
...

3.2 如果macOS Mojave and Catalina以下的,在xcode下也可以编译成功,然后打包payload成ipa也可以安装。但是在archive下直接生成ipa不行,

这个必须就要升级macOS的系统了。因为这个--generate-entitlement-der新flag。

ref:

https://developer.apple.com/forums/thread/682775?page=2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Flutter iOS应用程序中实现应用程序版本更新,可以按照以下步骤进行操作: 1. 获取当前应用程序版本:在Flutter应用程序中,可以使用`package_info`插件获取当前应用程序的版本信息。可以在`pubspec.yaml`文件中添加以下依赖项: ```yaml dependencies: package_info: ^2.0.0 ``` 然后运行`flutter packages get`命令获取依赖项。 在Flutter代码中,可以使用以下代码获取当前应用程序的版本信息: ```dart import 'package:package_info/package_info.dart'; PackageInfo packageInfo = await PackageInfo.fromPlatform(); String version = packageInfo.version; ``` 2. 获取最新应用程序版本:为了实现应用程序版本更新,需要从服务器或其他途径获取最新应用程序版本信息。可以使用HTTP客户端库(例如`http`或`dio`)向服务器发送请求,并解析响应以获取最新版本信息。 3. 比较应用程序版本:获取当前应用程序版本和最新应用程序版本后,需要将它们进行比较,以确定是否需要进行应用程序版本更新。可以使用以下代码比较版本: ```dart int compareVersion(String currentVersion, String newVersion) { List<String> currentVersionSplit = currentVersion.split('.'); List<String> newVersionSplit = newVersion.split('.'); for (int i = 0; i < currentVersionSplit.length; i++) { int currentVersionPart = int.parse(currentVersionSplit[i]); if (newVersionSplit.length <= i) { return 1; } int newVersionPart = int.parse(newVersionSplit[i]); if (newVersionPart > currentVersionPart) { return 1; } else if (newVersionPart < currentVersionPart) { return -1; } } return 0; } ``` 如果返回值为1,则需要进行应用程序版本更新。 4. 显示应用程序版本更新提示:如果需要进行应用程序版本更新,可以显示一个提示对话框,提示用户进行应用程序版本更新。可以使用Flutter的`flutter_launcher_icons`插件生成应用程序图标,并将应用程序图标添加到提示对话框中。 5. 打开App Store进行应用程序版本更新:如果用户同意进行应用程序版本更新,可以使用Flutter的`url_launcher`插件打开App Store,让用户下载最新版本的应用程序。可以使用以下代码打开App Store: ```dart import 'package:url_launcher/url_launcher.dart'; Future<void> launchAppStore(String appStoreUrl) async { if (await canLaunch(appStoreUrl)) { await launch(appStoreUrl); } else { throw 'Could not launch App Store'; } } ``` 完成以上步骤后,就可以在Flutter iOS应用程序中实现应用程序版本更新了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值