前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >iOS App怎么上架到苹果TestFlight?

iOS App怎么上架到苹果TestFlight?

作者头像
iOS Magician
发布于 2023-03-21 06:34:15
发布于 2023-03-21 06:34:15
1.4K0
举报

下面就给大家详细讲解如何上架苹果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自动生成了。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
教你如何把App上架到苹果官方认可的内测分发渠道testflight
近期由于ios企业签名的动荡出现的频繁掉签,超级签名的价格也一直居高不下。TF签名再度出现到大家的视野,它独有的稳定性和超级大容量的安装设备,价格似乎也比较合适,因此广受APP运营商的追捧。今天跟大家聊一下TF签名TestFlight上架的优势以及教你如何把App上架到苹果官方认可的内测分发渠道testflight详细教程。
jiang chen
2020/11/05
9.6K0
教你如何把App上架到苹果官方认可的内测分发渠道testflight
ios开发证书详解
关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做iOS开发的同学没少被折腾。对于一个iOS开发小白、半吊子(比如像我自己)抑或老兵,或多或少会有或曾有过以下不详、疑问、疑惑甚至困惑:
iOS Magician
2023/03/22
2.1K0
ios开发证书详解
iOS开发各种证书详解
关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做iOS开发的同学没少被折腾。对于一个iOS开发小白、半吊子(比如像我自己)抑或老兵,或多或少会有或曾有过以下不详、疑问、疑惑甚至困惑:
iOS程序应用
2023/04/13
2K0
iOS打包——从入门到放弃(一)
1970年代,在Unix上运行program/软件,不需要额外获取权限访问系统的硬件、数据(因为程序是自己写的——你应该不会给自己电脑「下毒」)。
iOS Development
2022/12/05
1.4K0
iOS打包——从入门到放弃(一)
iOS帮客户打包App上架的正确姿势
帮客户开发的App,要以客户名义(客户开发者账号)上架,但是客户又不提供账号密码,然后也不能在iTunes Connect邀请你作为开发者。
iOS Development
2019/02/14
1.6K0
​​苹果上架app需要什么条件​​
当我们开发完app后,需要将ipa/ap【上传IPA】使用一门Ipa上传小助手把安装包上传到appstoreconnect等待审核 专用密码上传IPA
iOS程序应用
2023/01/09
4400
iOS 证书幕后原理
http://chuquan.me/2020/03/22/ios-certificate-principle/[1],转载已获得作者「楚权」授权。
卤代烃
2021/03/03
1.3K0
iOS 证书幕后原理
iOS 应用上架流程(提交到AppStore)
1.1 登录苹果开发者中心 https://developer.apple.com/
iOS Magician
2023/03/22
7490
iOS 程序从开发完到上 AppStore 那点事儿
邱禄瑜
2017/05/04
5.4K0
iOS 程序从开发完到上 AppStore 那点事儿
iOS上架详细通关教程(提交到AppStore)
1.1 登录苹果开发者中心 https://developer.apple.com/
iOS程序应用
2022/11/01
1.1K0
iOS上架详细通关教程(提交到AppStore)
<转>关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
刚接触iOS开发的人难免会对苹果的各种证书、配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解。这篇文章就对Certificate、Provisioning Profile等做个总结。
tandaxia
2018/09/27
5600
<转>关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
iOS不上架怎么安装
当我们开发完app后,需要将ipa/apk提交给测试人员测试,然后才能上线。下面就来看一下如何打包ipa文件,并上传托管平台。
爱学iOS的小麦子
2023/01/04
1.5K0
苹果软件上架条件
当我们开发完app后,需要将ipa/apk提交给测试人员测试,然后才能上线。下面就来看一下如何打包ipa文件,并上传托管平台。
iOS程序应用
2023/01/06
6430
iOS不想上架?
本文介绍了如何从Mac OS X Catalina将IPA文件上传到App Store的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
iOS程序应用
2023/01/06
4470
ios苹果app上架流程
什麼都是假的,只有 App 上架 Store 才是真的。千辛萬苦完成 App 後,下一步、也是最重要的一步,就是把 App 送審上架!為了讓新手都能一次就送審成
iOS程序应用
2023/02/10
1.4K0
ios苹果app上架流程
怎样在ios上上架app
在上架App之前想要 真机测试的同学 请查看 iOS- 最全的真机测试教程 里面包含怎么让多台电脑同时 上架App和同时真机调试。P12文件的使用详解
iOS程序应用
2023/01/13
5410
iOS-最全的App上架教程
重点: 一般一个开发者帐号创建一个发布证书就够了,如果以后需要在其他电脑上上架App,只需要在钥匙串访问中创建p12文件,把p12文件安装到其他电脑上。这相当于给予了其他电脑发布App的权限。
用户6808043
2022/02/25
1.3K0
iOS-最全的App上架教程
iOS App的上架和版本更新流程
作为一名iOSDeveloper,把开发出来的App上传到App Store是必要的。下面就来详细讲解一下具体流程步骤。
iOS Magician
2023/10/11
3.8K0
iOS App的上架和版本更新流程
最新版iOS及APP Store上架
当我们开发完app后,需要将ipa/ap【上传IPA】使用一门Ipa上传小助手把安装包上传到appstoreconnect等待审核 专用密码上传IPA
iOS Magician
2023/03/22
2380
iOS小技能:打包注意事项(私有API检测)
为了能更好的协作管理项目,今天分享下第三方库管理规范,以Cocoapods为案例。
公众号iOS逆向
2022/12/19
1.2K0
iOS小技能:打包注意事项(私有API检测)
相关推荐
教你如何把App上架到苹果官方认可的内测分发渠道testflight
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文