解决关于Xcode16提交审核报错

news/2025/1/18 14:14:33/

# 问题描述

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/news/1564170.html

相关文章

C++ ——— 学习并使用 string 类

目录 学习 string 类 使用 string 类 实例化一个无参数的 string 对象 实例化一个带参数的 string 对象 合并两个字符串(重载了加运算符) 通过重载[]访问每个字符 迭代器遍历每个字符 范围 for 遍历每个字符 学习 string 类 何为 string 类&…

指针的进阶

指针的主题,我们在初级阶段的《指针》章节已经接触过了,我们知道了指针的概念: 1. 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。 2. 指针的大小是固定的4/8个字节(32位平台/64位平台&#xff0…

MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互

在现代应用中,数据库是不可或缺的一部分。Java 作为一种广泛使用的编程语言,提供了丰富的 API 来与各种数据库进行交互。本文将详细介绍如何在 Java 中连接 MySQL 数据库,并实现基本的数据交互功能。 一、环境准备 1.1 安装 MySQL 首先&am…

大语言模型训练的基本步骤解析

一、引言 大语言模型(LLMs)在当今人工智能领域取得了令人瞩目的成就,从智能聊天机器人到文本生成、语言翻译等广泛应用,深刻改变着人们与信息交互的方式。这些模型展现出强大的语言理解和生成能力背后,是一套复杂而精妙…

【OpenCV(C++)快速入门】--opencv学习

0 配置环境 配置环境网上很多资料&#xff0c;这里就不赘述了。 笔者使用的是VS2022opencv4.9.0 测试配置环境 // 打开摄像头样例 #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/imgcodecs/imgcod…

网络安全中攻击溯源有哪些方法?

目前网络攻击已经成为常见的安全威胁之一&#xff0c;其造成的危害和损失都是不可估量的&#xff0c;因此网络攻击受到了高度重视。而当我们遭遇网络攻击时&#xff0c;攻击溯源是一项非常重要的工作&#xff0c;可以帮助我们迅速发现并应对各类网络攻击行为&#xff0c;那么网…

Python基本概念与实践

Python语言&#xff0c;总给我一种“嗯&#xff1f;还能这么玩儿&#xff1f;”的感觉 Python像一个二三十岁的年轻人&#xff0c;自由、年轻、又灵活 欢迎一起进入Python的世界~ 本人工作中经常使用Python&#xff0c;针对一些常用的语法概念进行持续记录。 一、类与常见数据结…

《机器学习》——SVD(奇异分解)降维

文章目录 SVD基本定义SVD降维的步骤SVD降维使用场景SVD 降维的优缺点SVD降维实例导入所需库定义SVD降维函数导入图像处理图像处理图像打印降维结果并显示处理后两个图像的对比图 SVD基本定义 简单来说就是&#xff0c;通过SVD&#xff08;奇异值分解&#xff09;对矩阵数据进行…