Xcode 16 上传AppStore遇到第三方库 bitcode 的问题

news2024/11/15 23:27:28

Xcode 16 上传AppStore遇到第三方库 bitcode 的问题

  • 最近两天更新了Xcode 16,然后正好要发布新版本的App,打包Adhoc没问题,但是上传AppStoreConnect或者TestFlight就不行
    • 解决方案
    • 参考资料

最近两天更新了Xcode 16,然后正好要发布新版本的App,打包Adhoc没问题,但是上传AppStoreConnect或者TestFlight就不行

报错内容大概是说,我通过cocoapods引入的某个第三方库,enableBitcode为true,大家知道bitcode其实在Xcode 14的时候已经被废弃了。Xcode 16可能更为严格一些,目前来说在Xcode 15上面依然能够成功上传的,但Xcode 16不行。

解决方案

直接在终端中使用如下命令:

xcrun bitcode_strip -r YourFramework.framework/YourFramework -o YourFramework.framework/YourFramework

在我的项目中,报错的是网易七鱼SDK中的NIMSDK.framework,所以,我会打开终端,然后cd到目录下:xxx项目名称/Pods/NIMSDK_LITE/NIMSDK
NIMSDK.framework就在上述目录下。所以使用如下命令:
示例

参考资料

https://discuss.bitrise.io/t/xcode-16-known-issues/24484

该文章还提供了直接修改podfile的方式,该方式我尝试了没有成功,况且可以直接用上面的命令来暂时解决,就直接用比较方便。毕竟pod之后一定会更新的,新版本就不需要那个脚本了应该。如果报错的framework恰好是很久很久不更新的那种,那么就可以尝试使用脚本的方式来实现了。

post_install do |installer|  

 bitcode_strip_path = `xcrun --find bitcode_strip`.chop!
 def strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
   framework_path = File.join(Dir.pwd, framework_relative_path)
   command = "#{bitcode_strip_path} #{framework_path} -r -o #{framework_path}"
   puts "Stripping bitcode: #{command}"
   system(command)
 end
 
 framework_paths = [
   "Pods/LibraryA/LibraryA/dynamic/LibraryA.xcframework/ios-arm64_armv7/LibraryA.framework/LibraryA",
   "Pods/LibraryB/LibraryB.xcframework/ios-arm64_armv7/LibraryB.framework/LibraryB"
 ]

 framework_paths.each do |framework_relative_path|
   strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
 end
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2165529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【裸机装机系列】15.kali(ubuntu)-重装linux步骤

推荐阅读: 1.kali(ubuntu)-为什么弃用ubuntu,而选择基于debian的kali操作系统 如果你想重装linux系统,因为装机时采用了LVM分区的方式,那就可以按照下面步骤来操作: 保留 /home分区,“/swap”可以不动&am…

修改Opcenter EXFN 页面超时时间(Adjust UI Session Extend Token)

如果你想修改Opcenter EXFN中页面Session的超时时间,你可以按照如下步骤修改SessionAge 这个参数: 管理员运行CMD执行以下命令 umconf -getconfig -file C:\temp\config.json如果第2步有报错,则执行步骤4;如果没有报错则执行第5步如果第2步…

权限维持——Linux

前提 已经提权到管理员权限 一、创建账户 1、创建一个自定义密码的账户 已知,Linux中所有的用户的信息 存储在/etc/passwd这个文件中 。可以利用管理员权限修改这个文件, 添加一个账户 。 利用linux中的密码的编码算法 生成对应密码 (不知…

2024年”3D Awards”优秀作品提名新鲜出炉

第九届渲染大赛落下帷幕, 有些小伙伴可能还没过瘾, 这不, 一年一度”3D Awards“优秀作品提名, 新鲜出炉! 效果图提名(排名不分先后) 作品设计:Korolyov Ilya,Studio N…

【笔记】1.3 塑性变形

一、塑性变形的方式 DDWs(Dislocation-Dipole Walls,位错偶极墙):指由两个位错构成的结构,它们以一种特定的方式排列在一起,形成一个稳定的结构单元。 DTs(Dislocation Tangles,位错…

市面第一款 C++ 版本的U盘装机软件(即将上线)

市面大部分U盘装机软件,都是采用Au3脚本开发,而且有各种捆绑,闲来无聊,采用Qt C制作一款CU盘装机软件,从此告别Au3脚本,各种炫酷界面随便换,敬请期待 另外两个界面暂时不公布,防止Au…

CKKS同态加密通用函数近似方法和openFHE实现

摘要 同态加密可以直接在密文上进行运算,尤其是CKKS,可以直接在实数的密文上进行运算。服务器可以利用强大的计算能力,在不泄露用户隐私的情况下,为用户提供便捷的外包运算服务。然而,CKKS只能进行算术运算&#xff0…

【第2章 开始学习C++】进入C++

文章目录 导语C语言输入和输出main( )函数作为接口的函数头C预处理器和iostream文件头文件名名称空间使用 cout 进行 C 输出控制符 endl 导语 首先介绍一个显示消息的简单C程序。 源代码中包含一些供读者阅读的注释, 这些注释都以 // 打头, 编译器将忽…

patroni高可用测试

pkill postgres 主库日志 2024-09-25 16:42:30,579 INFO: no action. I am (postgres-1a86e6d5-0-0), the leader with the lock 2024-09-25 16:42:40,577 INFO: no action. I am (postgres-1a86e6d5-0-0), the leader with the lock 2024-09-25 16:42:50,578 INFO: no action…

Linux基础之文件系统

一、磁盘结构的认识 首先我们能认识到的一点是:不是所有的文件都被打开的! 大部分文件都不是被打开的(当前并不需要被访问),都在磁盘中进行保存。那么没有被(进程)打开的文件,要不要…

Python 中什么是 Mock 对象?如何在测试中使用

Python 中什么是 Mock 对象?如何在测试中使用 在软件开发中,测试是确保代码质量的重要环节。尤其是在编写单元测试时,测试的准确性和可靠性至关重要。为了确保测试的有效性,开发者通常会使用 Mock 对象。本文将详细介绍 Mock 对象…

深度学习基础案例7--马铃薯病识别,对VGG16进行轻量级优化,计算量减少了99%,但是准确率下降4%

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 本来想继续优化的,但是我看论文和查阅一些资料,涉及到了知识蒸馏、量化的知识,这些知识我需要花一点时间去研究一下&…

4. 数据结构: 对象和数组

数字、布尔值和字符串是构建数据结构的原子。不过,许多类型的信息需要不止一个原子。对象允许我们对值(包括其他对象)进行分组,从而构建更复杂的结构。到目前为止,我们所构建的程序都受到限制,因为它们只能…

MyBatis 入门教程-搭建入门工程

Maven作为一个优秀的项目构建和管理工具,在日常的开发中被大多数开发者使用,后续的项目也是基于Maven来构建。 创建一个Maven项目 利用IDEA创建项目工具来创建一个Maven项目 添加MyBatis的依赖 这里可以从Maven仓库地址中进行查看, https://mvnrepository.com/ 从这里可…

SUB1G无线通信模块赋能对讲机无线联网

一、模组介绍: ANS TKM-220是一款专为LPWAN物联网应用而研制的SUB1G无线模组,使用全新的TurMassTM 技术,具有超大容量 、高速率 、广覆盖和低成本的特点,处于国际领先水平 。 二、模组特点: ◉ 采用独创的TurMass™…

Oracle 19c 使用EMCC 监控当前所有数据库

一.EMCC简介 EMCC,全称Oracle Enterprise Manager Cloud Control,是Oracle提供的一套集中化监控工具,可以对数据库、操作系统、中间件等进行监控,通过OMS(Oracle Management Service)收集监控数据并将监控信…

Golang | Leetcode Golang题解之第421题数组中两个数的最大异或值

题目: 题解: const highBit 30type trie struct {left, right *trie }func (t *trie) add(num int) {cur : tfor i : highBit; i > 0; i-- {bit : num >> i & 1if bit 0 {if cur.left nil {cur.left &trie{}}cur cur.left} else …

C# 数据校验与控件绑定

在上一篇中,写了使用特性对一个对象的值进行校验;虽然代码比较简单,但依然不是最优解,在做数据新增校验的时候,倒也没什么问题,毕竟这是WinForm;但是如果是做数据编辑,代码就会变得更…

遗忘的数学(拉格朗日乘子法、牛顿法)

目录 拉格朗日乘子法定理 证明:​编辑 应用条件与符号选择 雅可比矩阵 黑塞矩阵 牛顿法 解方程的根的牛顿法 解方程组的根的牛顿法 数值优化的牛顿法(求最值) 拉格朗日乘子法定理 证明: dSi这一段没看懂…… 应用…

“AI+Security”系列第3期(四):360安全大模型业务实践

近日,由安全极客、Wisemodel 社区、InForSec 网络安全研究国际学术论坛和海升集团联合主办的“AI Security”系列第 3 期技术沙龙:“AI 安全智能体,重塑安全团队工作范式”活动顺利举行。此次活动吸引了线上线下超过千名观众参与。 活动中&…