iOS App怎么上架到苹果TestFlight?

简介: iOS App怎么上架到苹果TestFlight?

下面就给大家详细讲解如何上架苹果TestFlight


环境: IDE xcode 11.3.1 (11C504)


1、确认您的xcode能顺利编译通过


2、Project-Archive


xcode会自动编译并且打包,并且完成后会弹出Archive对话框


3、点击右侧的Validate App


会自动连接App Store Connect来进行初步的验证。


勾选Strip Swift symbols来 减少 app size


4、选择发布的证书来完成发布(这个要在http://developer.apple.com的account中设置)


好了,下面就会自动检测了,如果不通过会给你一些提示。按提示来修改再次打包就可以了。


下面讲一下,我碰到的问题:


A valid provisioning profile for this executable was not found


字面意思就是app没有一个有效的配制文件


这里要说到一些概念:


Certificates, Identifiers & Profiles


Certificates:证书


Identifies:app的bundle identifier(图1)


Devices:测试设备(比如说你的iphone,ipad等等)


Profiles: 对证书、bundle identifier,devcies的一个总结吧,也就是包括了这些信息,这样你的xcode,还有苹果app store connect才会通过您的认证,


这样你才可以安装到你的测试设备上,或者发布到testflight(公测),最好上架到app store去供用户购买。


证书可以通过xcode来生成:Xcode - Preferences


开发、发布,根据情况来建立。


图1


在苹果开发者网站上,可以建一个app id ( Application Id)


注册一个App IDs:


加入一个测试手机:


这点,点击download, 下载您的设置到本地,然后双击,这样xcode就可以认到了。


这样的话,基本上就完成了设置工作。


下面我们来看一下xcode中,是如何设置的。


Debug与Release设置是一样的,配制文件不一样,一个选择dev,一个选择release。


还有一个地方也是报错,也是我碰到的


最后还得搞一张图,打包的时候一直报错,大体是这样的错,但都跟 libPods-工程名.framework有关系:


1、Invalid Swift Support : The file 工程.app/Frameworks/libPods-工程.framework doesn't have the corrent file type for this location.


2、Invalid Bundle Structure: The binary file '工程.app/Frameworks/libPods-工程.framework' is not permitted. Your app can't contain standalone


executables or libraries, other than a valid CFBundle Executable of Supprted bundles.


以上是我记忆中的解决方法及打包发布到testflight应该处理的。


时间一长就会忘记,还是记录下,当然如果您碰到了相关的问题,希望能帮到您。


不当之处,可以相互学习,共同提高。


下面讲一下打包成功后,上传到Apple Store Connect


打包成功后,可以导出来


然后选择发布证书,然后就可以导出来了。


导出来以后,会有一个ipa文件,这个文件就是我们需要上传的文件,可以安装一个Transporter


第一次打开用您的app id登录,然后将导出的ipa文件,直接拖进去,然后一般通过了Validate App的话,


直接拖进去就可以了,然后再点提交。


提交完后,apple会在很短的时候里,给你回邮件email,还给我发了几个需要调整的地方:


ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSBluetoothPeripheralUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string


这个意思其实很简单:就是你用的权限中没有明确的指出干嘛用的,也就是在value里面加入一个说明即可


比如,蓝牙是用来连接打印机的


到此上传到App Store Connect就成功了,到此,还需要登录到http://developer.apple.com -- Account


打开会员中心,然后点击App Store Connect,去构建您的项目,这样就可以提交到TestFlight


让专业人员去帮你审核了,审核通过,都会给你发Email。


只要在App Store Connect后台加入测试人员的email


如果没有收到email的话,可以再点击发送邀请,这样就会收到一封邀请,


1)打开邮件,您会看到一个TestFlight前往的按钮,点一下,就会弹出来一个对话框,里面有一个邀请码,拷贝。


2)然后在手机上的TestFlight “兑换”,帖上您的邀请码,确认。


3)然后就可以看到待安装的App了,安装,打开,输入账号密码,开启测试。


下面我们再来看看mac, xcode, 手机,开发者服务(apple),这些家伙究竟是咱根据证书还有配制文件,


来处理一些下载到手机安装,打包发布等等工作的。


Code Signing Identity 是咱个工作原理,这里帖个图:


Xcode 中配置的 Code Signing Identity(entitlements、certificate)必须与 Provisioning Profile 匹配,


并且配置的 Certificate 必须在本机 Keychain Access 中存在对应 Public/Private Key Pair,否则编译会报错。


Xcode 所在的 Mac 设备(系统)使用 CA 证书(WWDRCA.cer)来判断 Code Signing Identity 中 Certificate 的合法性:


若用 WWDRCA 公钥能成功解密出证书并得到公钥(Public Key)和内容摘要(Signature),证明此证书确乃 AppleWWDRCA 颁布,即证书来源可信; 再对证书本身使用哈希算法计算摘要,若与上一步得到的摘要一致,则证明此证书未被篡改过,即证书完整。


Verify Code Signature with Certificate


iOS/Mac 设备(系统)使用 App Provisioning Profile(Code Signing Identity)中的开发证书来判断App的合法性:


若用证书公钥能成功解密出 App(executable bundle)的内容摘要(_CodeSignature),证明此 App 确乃认证开发者发布,即来源可信; 再对 App(executable bundle)本身使用哈希算法计算摘要,若与上一步得到的摘要一致,则证明此 App 未被篡改过,即内容完整。


总结


基于 Provisioning Profile 校验了 CodeSign 的一致性;


基于 Certificate 校验 App 的可靠性和完整性;


启动时,真机的 device ID(UDID)必须在 Provisioning - Profile 的 ProvisionedDevices 授权之列。


无论是 Xcode 对 APP 进行签名打包还是真机运行 APP 进行校验,都使用了基于证书体系的非对称加密机制。


我的理解:


1、我们在xcode中进行了配制,这样xcode就可以通过我们提供的Provisioning Profile证书来安装APP到手机上,


手机上也会有一份这样的配制,不然,启动APP的时候也不会成功。


还记得以前用免费的APP ID进行开发的时候,有时候第二天就过期,有时候过个3,5天过期,一点就一闪,其实是证书过期了,


每次安装APP的时候,都会连网去验证合法性。


2、一般情况下,只要配制到位了,那肯定不会有Validate App不通过的情况,也就是说不通过一般是配制不到位,不是这里少了,就是这里多了。


或者比如说我们手工设置了,就不要让xcode自动生成了。


这样懂得了原理,我们工作就可以事半功倍了。

相关文章
|
11天前
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
55 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
13天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
40 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
13天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
46 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
2天前
|
人工智能 程序员 API
iOS|记一名 iOS 开发新手的前两次 App 审核经历
啥,这玩意也有新手保护期?
9 0
|
9月前
|
iOS开发 开发者
苹果iOS App Store上架操作流程详解:从开发者账号到应用发布
很多开发者在开发完iOS APP、进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store的具体流程,如有未涉及到的部分,大家可以及时咨询,共同探讨。
|
9月前
|
安全 数据安全/隐私保护 iOS开发
iOS App 上架流程图文教学
在上架App 之前必须先准备好开发者帐号,但申请开发者帐号因法兰克早在之前已经申请好了,故就跳过此步骤,直接从产生凭证到上传App开始讲起。首先,要将自己辛苦写好的App 送审的话,则要依序做完下列几件事情即可。
|
9月前
|
安全 数据安全/隐私保护 开发者
|
Web App开发 数据安全/隐私保护 iOS开发
app优化ios,iOS app上架流程问题集锦,ASO新手小白必看(上)
app优化ios,iOS app上架流程问题集锦,ASO新手小白必看(上)
|
9月前
|
iOS开发
|
9月前
|
iOS开发 开发者 UED
2023年iOS App Store上架流程详解(上)
在2023年,随着苹果发布机制的微调,有些关于iOS App上架流程的资料已经过时。本文将根据最新的要求和经验,详细介绍iOS App上架的流程。

热门文章

最新文章

  • 1
    MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
  • 2
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
  • 3
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 4
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 5
    【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
  • 6
    【Azure Function】Function App出现System.IO.FileNotFoundException异常
  • 7
    1688APP 原数据 API 接口的开发、应用与收益
  • 8
    PiliPala:开源项目真香,B站用户狂喜!这个开源APP竟能自定义主题+去广告?PiliPala隐藏功能大揭秘
  • 9
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 10
    语音app系统软件源码开发搭建新手启蒙篇
  • 1
    iOS|记一名 iOS 开发新手的前两次 App 审核经历
    9
  • 2
    iOS各个证书生成细节
    22
  • 3
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    121
  • 4
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    40
  • 5
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    55
  • 6
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    46
  • 7
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    40
  • 8
    uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
    155
  • 9
    【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
    310
  • 10
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    106