解决关于Xcode16提交审核报错

devtools/2025/1/18 21:14:23/

# 问题描述

The following issues occurred while distributing your application.
Asset validation failed
Invalid Executable. The executable 'xxx.app/Frameworks/HappyDNS.framework/HappyDNS' contains bitcode.(lD:ef5dd249-731f-4731-8173-8e4a12519352)
Asset validation failed
Invalid Executable. The executable 'xxx.app/Frameworks/PLMediaStreamingKit.framework/PLMediaStreamingKit' contains bitcode. (lD:898428d1-4a1b-4176-8d89-a5a8f2bed2dc)
Asset validation failed
Invalid Executable. The executable 'xxx.app/Frameworks/PLPlayerKit.framework/PLPlayerKit' contains bitcode. (lD: 21c812b6-2f5d-48dd-bed9-38eeea2b2381)

正常通过`Produre - Archive`打包,并在`Xcode`的`Window -Organizer - Distribute App`提交`App Store`审核报错误。

`Bitcode` 是一种中间表示形式,在 `Xcode`中打包提交到 `App Store` 审核时,如果出现包含 `Bitcode` 的报错,这通常意味着您的应用没有正确包含 `Bitcode`。`Bitcode` 是苹果的一项要求,它允许苹果在 `App Store` 中对您的应用进行进一步的优化。

当提交应用到 `App Store` 时出现与 `Bitcode` 相关的问题,您需要手动移除 `framework` 中的 `Bitcode`。

# 解决方法

## ~~在 Xcode 中禁用 Bitcode:~~

*   打开你的 Xcode 项目;
*   选择你的项目在 Project Navigator 中;
*   选择你的目标应用;
*   选择“Build Settings”标签;
*   搜索“Enable Bitcode”并将其设置为“No” ;
*   清理并重建你的项目(使用快捷键 Shift + Command + K 进行清理,然后使用 Command + B 进行重建)。

> *由于 Xcode16 不再支持 Bitcode,所以我们无法在项目中找到这个设置。*

## 使用命令行工具,手动更改`Bitcode`

假设您有一个名为 `HappyDNS.framework` 的 `framework`,并且它位于 `/path/to/~/HappyDNS.framework`路径,那么您可以按照以下方式处理:

1.  通过 `cd`命令进入到 `HappyDNS.framework` 的路径。\
    如果是通过 `pod install` 获取的 `SDK`,则进入 `pods` 文件夹。

2.  执行以下命令检查 `framework`是否包含 `bitcode`,返回 `0` 即为不包含。

```oc
otool -l HappyDNS | grep __LLVM | wc -l
```

3.  如果检测结果不是 `0`,则继续执行以下命令移除 `HappyDNS.framework` 的 `Bitcode`。

```oc
xcrun bitcode_strip -r HappyDNS -o HappyDNS
```


http://www.ppmy.cn/devtools/151660.html

相关文章

flutter VoidCallBack ValueChange<T> 的函数定义

在 Flutter 中,VoidCallback 和 ValueChanged<T> 是两种常用的回调函数类型,它们通常用于处理事件或传递数据。下面是它们的详细定义及使用方式。 1. VoidCallback 函数类型 VoidCallback 是一个没有参数也没有返回值的回调函数类型。它通常用于简单的事件处理,比如…

从玩具到工业控制--51单片机的跨界传奇【3】

在科技的浩瀚宇宙中&#xff0c;51 单片机就像一颗独特的星辰&#xff0c;散发着神秘而迷人的光芒。对于无数电子爱好者而言&#xff0c;点亮 51 单片机上的第一颗 LED 灯&#xff0c;不仅仅是一次简单的操作&#xff0c;更像是开启了一扇通往新世界的大门。这小小的 LED 灯&am…

Spring Boot 条件注解:@ConditionalOnProperty 完全解析

在 Spring Boot 项目中&#xff0c;有时候我们希望根据配置文件中的某个属性值来决定是否启用某个功能或加载某个组件。此时&#xff0c;ConditionalOnProperty 注解就可以发挥作用。它通过配置文件的属性值控制 Bean 或配置类的加载&#xff0c;使得我们的程序更具灵活性。 本…

C#数学相关开发性能优化方法

本文Github地址&#xff1a;CSharp-MathOptimization.md 华为公司的C语言编程规范在开头就强调了&#xff1a; 一般情况下&#xff0c;代码的可阅读性高于性能&#xff0c;只有确定性能是瓶颈时&#xff0c;才应该主动优化。 本文讲述的方法没有经过大项目和大公司的检验&…

文件上传生成pdf

前端后端 import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile;import java.io.File; import java.io.IOException;Re…

UDP报文格式

UDP是传输层的一个重要协议&#xff0c;他的特性有面向数据报、无连接、不可靠传输、全双工。 下面是UDP报文格式&#xff1a; 1&#xff0c;报头 UDP的报头长度位8个字节&#xff0c;包含源端口、目的端口、长度和校验和&#xff0c;其中每个属性均为两个字节。报头格式为二…

自定义提示确认弹窗-vue

最初可运行代码 弹窗组件代码&#xff1a; &#xff08;后来发现以下代码可运行&#xff0c;但打包 typescript 类型检查出错&#xff0c;可打包的代码在文末&#xff09; <template><div v-if"isVisible" class"dialog"><div class&quo…

“云计算+中职”:VR虚拟仿真实训室的发展前景

在技术革新的浪潮中&#xff0c;中等职业教育&#xff08;中职&#xff09;正面临着转型升级的机遇。云计算与虚拟现实&#xff08;VR&#xff09;技术的结合&#xff0c;为中职教育提供了全新的教学模式和实训平台。 一、云计算与VR虚拟仿真实训室的融合 云计算技术以其高可靠…