苹果开发者 Xcode发布TestFlight全流程

news2024/10/6 8:22:09

打包前注意事项

使用Xcode导出安装包之前,必须先确认账户的所有合约是否全部同意,如果有不同意的,在出包的时候会弹出报错


点击前往苹果开发者官网icon-default.png?t=N7T8https://appstoreconnect.apple.com/agreements/

登录自己的开发者账户后,可以看到提示,有未同意的合约

第一步

先在Xcode中,菜单栏  =>  Product=> Archive 开始打包Archive,右上角显示打包Archive进度

第二步

第三步:

选择一个Archive,Distribute App按钮才会亮起

在访达中查看一下, 文件类型是xcarchive

点击Distribute App按钮

第三步

咱们要发布TestFlight,所以选第一项,点击右下角Next下一步

第四步

Upload会直接把这个包上传到官网

Export则是导出IPA文件,你自己使用工具上传,如果你想自己上传,请移步第第六步之后的Transporter上传。

第五步

 第六步,使用Xcode-archive上传

再次确认上传信息,没问题点击上传

 正在上传

报错!!!!

如果包里有不可执行的文件,会报这个错

Unexpected CFBundleExecutable Key. The bundle at 'Payload/hqhy.app/hqsdk.bundle' does not contain a bundle executable. If this bundle intentionally does not contain an executable, consider removing the CFBundleExecutable key from its Info.plist and using a CFBundlePackageType of BNDL. If this bundle is part of a third-party framework, consider contacting the developer of the framework for an update to address this issue. (ID: cfea2d8a-ff26-4674-81dd-7893c3469456)

解决方法:

 回到Xcode项目中,在文件目录里找到对应名字的文件夹,例如我的报错是hqsdk.bundle,找到里面的info.plist文件,把里面的ExecutableFile选项删掉,点那个删除按钮,这里的配图不是我项目的截图

第七步:Xcode上传

看上传的提示 Uploading to App Store Connect...

App Store Connect是啥??看截图就知道,这是管理我们开发者账户所有app的地方

上传成功后,App Store Connect就会出现我们刚才上传的版本图标。点击图标进去

 由于我们上传的是TestFlight版本,只看TestFlight选项就好了,版本2.1.1和我在Xcode上传时一致,证明上传成功了。

使用Mac Transporter软件上传

支持ipa文件和pck文件上传,这个ipa文件怎么来的?在前文的Archive上传过程中,可以选择只导出不上传,这个Export就是导出ipa工程

把这个ipa文件拖拽到到Transporter中,按步骤点击上传即可,非常简单,下图是上传画面

第七步:上传成功后

上传成功后,去AppStoreConnect官网查看上传版本,请注意刚上传需要审核,审核时间短则5分钟,长则一天,请留意邮件

请注意!!!!!!!

上传后的版本是正在审核的状态,第一次上传的话很有可能会审核不通过,那么很有可能上传的版本会自己消失,变成下面这个样子

遇到这种情况,去你的邮箱里查看具体原因

 ITMS-90683: Missing purpose string in Info.plist - Your app’s code references one or more APIs that access sensitive user data, or the app has one or more entitlements that permit such access. The Info.plist file for the “hqhy.app” bundle should contain a NSPhotoLibraryUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you’re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. For details

我的原因是权限问题,需要添加权限,根据邮件提示,找到对应的plist文件,添加一行新数据,把NSPhotoLibraryUsageDescription粘贴进去,它自己就变成了Privacy - Photo Library Usage Description,然后value就是弹出的文字提示,自己写啥都行

修改所有BUG,再次上传,

TestFlight网站出现版本号和图标,并且文字是(正在处理),基本就稳了,等着吧。

 

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

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

相关文章

【LeetCode】61. 旋转链表

1 问题 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3] 示例 2: 输入:head [0,1,2], k 4 输出&…

用Nginx搭建一个具备缓存功能的反向代理服务

在同一台服务器上,使用nginx提供服务,然后使用openresty提供反向代理服务。 参考《Ubuntu 20.04使用源码安装nginx 1.14.0》安装nginx。 参考《用Nginx搭建一个可用的静态资源Web服务器》搭建静态资源Web服务器,但是/nginx/conf/nginx.conf里…

点云cloudpoint生成octomap的OcTree的两种方法以及rviz可视化

第一种:在自己的项目中将点云通过ros的topic发布,用octomap_server订阅点云消息,在octomap_server中生成ocTree 再用rviz进行可视化。 创建工作空间,记得source mkdir temp_ocotmap_test/src cd temp_ocotmap_test catkin_make…

系列一、文件

一、概述 文件对我们并不陌生,简单的讲文件就是保存数据的地方,比如大家经常使用的word文档,txt文件,excel文件,mp3音乐文件,mp4视频文件...等等,它既可以是一张图片,也可以是一段视…

C++之继承<2>【详解】

C之继承<2>【详解】 1. 派生类的默认成员函数1.1 1. 构造成员函数1.2 拷贝复制1.3 构造函数和析构函数的执行顺序 2. 继承和友元3. 继承与静态成员 1. 派生类的默认成员函数 1.1 1. 构造成员函数 派生类的构造函数必须调用基类的构造函数初始化基类的那…

力扣刷题 day50:10-20

1.存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 方法一:集合去重 #方法一:集合去重 def containsDuplicate(nums):return len(n…

八股总结(招聘)

线程创建方法: 继承 Thread 类实现 Runnable 接口通过 ExecutorService 和 Callable\ 实现有返回值的线程基于线程池的execute(),创建临时线程

嵌入式面试常见问题(二)

1.malloc如何分配内存? 进行虚拟地址空间的分布:程序地址空间-》程序虚拟地址空间-》进程虚拟地址空间 内存布局: ​ 进程虚拟地址空间和PCB(Process Control Block,进程控制块)进行串联 : ​…

微信小程序进阶——后台交互

目录 一、后台准备 1.1 pom.xml 1.2 配置数据源 1.3 整合mybatis 二、前后端交互 2.1 method1 2.2 method2 2.2.1 封装request 2.2.2 头部引用util 2.2.3 编写方法 2.2.4 展示效果 三、WXS的使用 3.1 会议状态 3.1.2 引入wxs 3.1.3 修改代码 3.1.4 展示效果 3…

计算机毕业设计 基于SpringBoot笔记记录分享网站的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

Mysql 中的性能调优方法

Mysql 性能调优方法可以从四个方面来说,分别是: 表结构与索引 SQL 语句优化 Mysql 参数优化 硬件及系统配置 这四个方面的优化成本和优化效果是成反比的。 表结构和索引的优化 表结构和索引的优化,主要可以下面这些方面去优化: 分…

NewStarCTF 2023 公开赛道 WEEK2|WEB 游戏高手

app_v2.js就是游戏文件 右键“用调试器打开”: var gameScore 0; 就是当前分数, 打开控制台,输入 gameScore 1000000,回车 就可以得到flag

字节码进阶之ASM字节码操作类库详解

文章目录 0.前言1. 引言2. ASM简介3. 字节码基础知识回顾 4. ASM的核心概念5. ASM的基本用法5.1. 读取和分析字节码5.2. 修改和生成字节码 6. ASM的高级用法6.1. 字节码增强技术6.2. 自定义类加载器和类定义 7. 实例演示:使用ASM实现简单的字节码增强 字节码进阶之A…

代码随想录算法训练营第二十八天丨 回溯算法part04

491.递增子序列 思路 这个递增子序列比较像是取有序的子集。而且本题也要求不能有相同的递增子序列。 在90.子集II (opens new window)中是通过排序,再加一个标记数组来达到去重的目的。 而本题求自增子序列,是不能对原数组进行排序的,排…

前端工作方式要换了?HTMX简介:无需JavaScript的动态HTML

HTMX允许你使用扩展的HTML语法代替 JavaScript 来实现交互性。HTMX 在标记中直接为你提供HTTP 交互,并支持许多其他交互需求,无需求助于 JavaScript。这是一个有趣的想法,可能最终会影响到web前端的工作方式。让我们看看如何使用HTMX以及它的…

pytorch 入门 (三)案例一:mnist手写数字识别

本文为🔗小白入门Pytorch内部限免文章 🍨 本文为🔗小白入门Pytorch中的学习记录博客🍦 参考文章:【小白入门Pytorch】mnist手写数字识别🍖 原作者:K同学啊 目录 一、 前期准备1. 设置GPU2. 导入…

聊聊分布式架构09——分布式中的一致性协议

目录 01从集中式到分布式 系统特点 集中式特点 分布式特点 事务处理差异 02一致性协议与Paxos算法 2PC(Two-Phase Commit) 阶段一:提交事务请求 阶段二:执行事务提交 优缺点 3PC(Three-Phase Commit&#x…

kubeadm初始化搭建cri-dockerd记录 containerd.io

07.尚硅谷_搭建K8s集群(kubeadm方式)-部署master节点_哔哩哔哩_bilibili 视频里的版本只有1.17而现在(2023.10.20)kubernetes最新版本是1.28,需要搭载cri-dockerd, 先去网站下载了对应的rpm包cri-dockerd…

计算机算法分析与设计(14)---贪心算法(会场安排问题和最优服务次序问题)

文章目录 一、会场安排问题1.1 问题描述1.2 思路分析1.3 例题分析1.4 代码编写 二、最优服务次序问题2.1 问题描述2.2 思路分析2.3 代码编写 一、会场安排问题 1.1 问题描述 假设在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进…

kettle 导出Excel 日期信息为空bug

今天做个需求,跨库联表查询数据。导出为Excel ,但是日期数据除了问题。日期yyyy/mm/dd hh:mm:ss 竟然是空的 。 解决办法: 一、(网上给出最多的解决方案,但本人不实用。需要安装MySQL监听) to_char(日期,…