一、下载xcode

直接去苹果商店的appstore下载就行

二、clone项目

1.登录xcode苹果账号或对应代码仓库账号

2.clone项目

3.安装设备真机环境(未安装过的话)

三.安装cocoapods

1. 检查并更新 Ruby 环境

CocoaPods 是基于 Ruby 编写的,因此需要先确保 Ruby 环境已经安装并且是最新的。

# 检查ruby是否安装
ruby -v 
# 更新ruby版本
sudo gem update --system

2. 更换 Ruby 源

由于默认的 Ruby 源可能在国内访问速度较慢,建议更换为国内的镜像源,如 Ruby China。

gem sources --remove https://rubygems.org/  # 删除镜像源
gem sources -a https://gems.ruby-china.com/ # 更换镜像源
gem sources -l # 查看镜像源

3. 安装 CocoaPods

使用 gem 命令来安装 CocoaPods。

sudo gem install cocoapods

4. 验证安装

安装完成后,可以通过以下命令来验证 CocoaPods 是否安装成功。

pod --version

5. 初始化Podfile(如果工程文件下已经有Podfile则不需要进行这一步)

在你的 iOS 项目根目录下,使用以下命令来初始化 Podfile 文件。

pod init

然后,使用文本编辑器打开 Podfile 文件,添加你需要的第三方库。例如:

platform :ios, '10.0'target 'YourProjectName' douse_frameworks!pod 'AFNetworking', '~> 4.0'pod 'SDWebImage', '~> 5.0'
end

6. 安装依赖

在终端中切换到Podfile文件同级目录下,执行以下命令来安装依赖。

pod install

7. 打开项目

安装完成后,会在同级目录下生成.xcworkspace 文件,使用 Xcode 打开生成的 .xcworkspace 文件,而不是原来的 .xcodeproj 文件。文件图标如下:

注意事项:

  • 如果在安装过程中遇到权限问题,可以尝试使用 --user-install 选项来安装 CocoaPods。
  • 如果遇到网络问题导致安装失败,可以尝试更换网络环境或使用代理。
  • 如果 CocoaPods 版本与 Xcode 版本不兼容,可能需要更新 CocoaPods 或降级 Xcode。

四、运行项目

1.检查配置

2.选择项目及设备并运行

3.运行release包(有时候debug包有问题,可以直接运行release包)

五、打包分发

1.选择 Any iOS Device(不能选模拟器)

2.修改版本号:

3.生成 Archive(归档文件)

  • 点击菜单栏 Product → Archive

  • 等待编译完成,Xcode 会自动打开 Archives 窗口(显示所有归档记录)。

4.选择分发方式(关键步骤!)

Archives 中选择要发布的版本,点击 Distribute App,选择分发方式:

5.提交到 App Store Connect:

先登录到App Store Connect,然后按照表格内的步骤进行:

步骤位置关键操作
1我的App → +新建App填SKU(如com.company.app)
2价格与销售范围设置价格区间
3准备提交 → 构建版本点击’+'添加IPA
4App审核信息填写测试账号
5版本发布选手动/自动发布

  • 选择app或新建app

  • 查看包是否上传完成

  • 构建新的版本并提交审核

6.下载兑换码

企业账号已绑定过app,又有别的app需要给用户下载使用的,可以用这种解决方式

  • 登录苹果商务网站
  • 兑换app码并下载

7.上传fir.im或蒲公英等网站

  • 导出ipa包

  • 上传fir.im等第三方平台

注意事项(下述方式可以解决审核报二进制文件无效的问题):

  • 下载app_privacy_manifest_fixer-1.3.9压缩包,解压后放到工程根目录下(对应我的就是lins目录下)
  • app_privacy_manifest_fixer-1.3.9 这个是脚本文件 为了修改三方库的隐私文件  不然上传appstroe 会报错 二进制错误
  • cd 到这个install.sh目录下,执行命令:
    sh install.sh <你的工程目录(比如:/Users/xxxx/lins)> --install-builds-only
  • 上方代码执行完之后,进行打包上传,上传完成之后,执行下方代码关闭文件(不关闭应该也没事):
    sh uninstall.sh <你的工程目录(比如:/Users/xxxx/lins)

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之链表(单向链表与双向链表)

一&#xff0c;链表描述链表是一种常见的重要的数据结构,是动态地进行存储分配的一种结构。常用于需存储的数据的数目无法事先确定。1.链表的一般结构链表的组成&#xff1a; 头指针&#xff1a;存放一个地址&#xff0c;该地址指向一个元素 结点&#xff1a;用户需要的实际数据…

从反向代理到负载均衡:Nginx + Tomcat 构建高可用Web服务架构

从反向代理到负载均衡&#xff1a;Nginx Tomcat 构建高可用Web服务架构 文章目录从反向代理到负载均衡&#xff1a;Nginx Tomcat 构建高可用Web服务架构一、基础铺垫&#xff1a;什么是反向代理&#xff1f;1.1 反向代理的核心原理1.2 Nginx反向代理实战配置步骤1&#xff1a…

Simulink中使用Test sequence单元测试

一、Tips 在对simulink模型进行Test sequence单元测试时&#xff0c;如果采取书写测试用例的话&#xff0c;有以下操作。 1、使用”fprintf(‘time%f\n’, t);“来打印当前step的时间&#xff1b; 二、数据类型转换 1、double类型 -> boolean类型 clc; clear all;% 1、doubl…

【mysql】SQL自连接:什么时候需要,什么时候不需要?

SQL自连接:什么时候需要,什么时候不需要? 通过具体示例和对比解析,彻底搞懂SQL自连接的使用场景 在处理SQL查询时,尤其是当表中存在自引用关系(如referee_id引用同一张表的id)时,很多开发者会疑惑:这个查询到底需不需要自连接?本文将通过多个具体示例,带你彻底弄清何…

「美」创新在于人,而不是产品 - AxureMost 落葵网

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 第一章&#xff1a;创新的心理学 创新与心理安全 蜡烛问题&#xff1a;卡尔邓克尔的蜡烛问题实验揭示了创造性思维的重要性。通过颠覆对盒子用途的先入为主观念&#xff0c;参与者能够找到创新性的解决方案…

新规则,新游戏:AI时代下的战略重构与商业实践

当你的客服AI能够真正像员工一样理解客户的行业术语&#xff0c;当AI能主动从大量的客户咨询中筛选出高价值潜在客户 —— 这已经不再是理想中才能存在的场景&#xff0c;而是当下 “人工智能 ” 行动深入推进中&#xff0c;企业智能化转型的真实写照。 "人工智能 " …

ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes 数据集构建

paper link: paperlink Abstract: 这个数据集是个RGB-D视频数据集&#xff0c;在707个不同空间中获取了1513个扫描的场景&#xff0c;250w个视图&#xff0c;并且标注了相机位姿&#xff0c;表面重建&#xff0c;语义分割。本数据集共有20人扫描500名工作者进行标注。 数据集…

c语言期末复习

一、选择题(10道) 1、以下哪个不是C语言的关键字? A) int B) float C) string D) while (答案:C) 2、表达式 5 / 2 的结果是: A) 2.5 B) 2 C) 3 D) 2.0 (答案:B) 3、指针变量存储的是: A) 变量的值 B) 变量的地址 C) 变量的类型 D) 变量的名称 (答案:B) 4、以…

JLINK 调试器单步调试单片机

0 JLINK 调试器单步调试单片机 1 物理层1.1 调整电压和开发板一致2 环境搭建 2.1 安装 JLink_Windows_V862_x86_642.2 vscode 配置 {"version": "0.2.0","configurations": [{"name": "(gdb) 启动","type": "…

大模型(LLM)安全保障机制(技术、标准、管理)

大模型&#xff08;LLM&#xff09;的安全保障涉及技术、标准、管理等多个层面。下面我将结合其核心风险&#xff0c;为你梳理主要的安全机制、相关标准框架以及一些实践建议。为了让您快速了解大模型面临的主要风险及相应的应对机制&#xff0c;我准备了一个表格&#xff1a;安…

虚拟机之CentOS、网络设置的有趣问题

前言 年初射出的子弹&#xff0c;今天中了。 年初埋下的坑&#xff0c;今年踩了。 回首过往&#xff0c;why&#xff1f; because&#xff1a;当时下载VMware的时候。没有设置网络。 重点——使用VMware安装CentOS 9 使用VMware安装CentOS Stream 9_哔哩哔哩_bilibili 总…

Biomni:来自斯坦福的通用型生物医学 AI 智能体,科研“虚拟助手“来了!

在当今生物医学研究中&#xff0c;实验手段和数据量正以前所未有的速度膨胀。从基因组学、单细胞组学到多模态数据&#xff0c;再到可穿戴设备的健康监测&#xff0c;科研人员每天都在与庞大的数据和复杂的分析流程打交道。 然而&#xff0c;实验设计琐碎、工具分散、跨学科整合…

移植后 eto 阳性 干扰素 α1b、白介素 - 2 dli

在异基因造血干细胞移植&#xff08;allo-HSCT&#xff09;后仍存在 AML1-ETO&#xff08;ETO&#xff09;融合基因阳性的患者中&#xff0c;干扰素 α1b 联合白介素 - 2&#xff08;IL-2&#xff09; 是临床中探索用于清除微小残留病&#xff08;MRD&#xff09;、降低复发风险…

防止接口被薅羊毛(防刷)(DAY 002)

背景&#xff1a;短信验证码接口被不法分子用来做灰产&#xff08;短信邮箱轰炸机&#xff09; 如何避免⾃⼰的⽹站成为”⾁鸡“或者被刷&#xff1f; 增加图形验证码&#xff08;开发⼈员&#xff09;单IP请求次数限制&#xff08;开发⼈员&#xff09; 防刷之图形验证码&…

【RabbitMQ】----RabbitMQ 的7种工作模式

1.Simple(简单模式) P:⽣产者,也就是要发送消息的程序 C:消费者,消息的接收者 Queue:消息队列,图中⻩⾊背景部分.类似⼀个邮箱,可以缓存消息;⽣产者向其中投递消息,消费者从其中取出消息. 特点:⼀个⽣产者P&#xff0c;⼀个消费者C,消息只能被消费⼀次.也称为点对点(Point-to-P…

今日分享:C++ -- list 容器

&#x1f60e;【博客主页&#xff1a;你最爱的小傻瓜】&#x1f60e; &#x1f914;【本文内容&#xff1a;C list容器 &#x1f60d;】&#x1f914; --------------------------------------------------------------------------------------------------------------------…

【Python】数据可视化之分布图

分布图主要用来展示某些现象或数据在地理空间、时间或其他维度上的分布情况。它可以清晰地反映出数据的空间位置、数量、密度等特征&#xff0c;帮助人们更好地理解数据的内在规律和相互关系。 目录 单变量分布 变量关系组图 双变量关系 核密度估计 山脊分布图 单变量分布…

DDD+WebAPI实战

DDD+WebAPI实战 DDD(领域驱动设计,Domain-Driven Design)是一种面向对象的设计方法,它强调将业务逻辑封装在模型中,并通过这些模型来驱动整个应用的设计。在.NET环境中,特别是在使用ASP.NET Core和Web API构建应用时,DDD可以帮助我们更好地组织代码,使得业务逻辑更加清…

人力资源管理的思维方法学习笔记1

北京师范大学政府管理学院1.课程介绍&#xff1a; 讲述视角上&#xff0c;本课程侧重人力资源管理的思维方式&#xff0c;即人力资源管理理论和时间的不同视角和主导范式的分析。这既是对人力资源管理理论发展的凝练&#xff0c;也是对人力资源管理实践演进过程的总结。对于把握…

适应新环境:Trae编辑器下的IDEA快捷键定制

介绍&#xff1a;学习如何在Trae编辑器中配置IntelliJ IDEA风格的快捷键&#xff0c;减少开发环境间的切换成本&#xff0c;提升编码效率。通过安装插件或手动调整&#xff0c;让你更快适应新工具大家好&#xff0c;我是凯哥Java本文标签&#xff1a;代码编辑效率、Trae快捷键、…