一、学习目标
续接上篇iOS开发 objective-c-CSDN博客,程序开发最终目的是在实体机上运行。本文记录了程序在实体机上调测、打包上架APP store的流程及问题。
材料:
MAC系统电脑 | 虚拟机上安装MAC系统也可以,有需要可以参考:vmware workstation pro 17.5 安装 macos 13.5.2 虚拟机超详细图文教程_vmware workstation 17.5.0 pro unlocker & oem bios -CSDN博客 |
Xcode | 若需上传App Store,请注意版本不能太低,2024.4.29之后要求版本最低为15。 |
iPhone | 保证手机开发者模式是开启的,可以获取UDID(设备标识)。 |
数据线 | 也可以使MAC和iPhone处于同一无线网,在Xcode的simulators处配置。 |
Apple developer账号 | 网址为iOS 17 - Apple Developer |
App Store Connect账号 | 网址为https://appstoreconnect.apple.com/login。 |
二、学习内容
(一)实体机调测
本章节主要介绍的是通过数据线将MAC虚拟机(windows系统通过VMware安装MAC 14系统)和iPhone连接实现实体机调试。
1.流程
Xcode中的流程,可参见:
证书配置流程,可参考:iOS测试发布证书、配置文件配置_ios 证书生成配置-CSDN博客。
2.问题及处理
(1)获取不到iPhone的UDID
在电脑上安装“爱思助手”(有需要可参考:苹果手机助手电脑版_爱思苹果手机助手电脑版官方下载_爱思助手电脑版官网),将电脑和iPhone使用数据线连接。打开“爱思助手”->“我的设备”->"设备信息",如图:
(2)虚拟机没有识别到iPhone
①查看虚拟机设置。
②如图,依次点击框中的选项。
③如果虚拟机没有发现依旧iPhone的话,可以尝试重启或更换数据线。
(3)Xcode不支持高版本的iPhone
方法一:更新Xcode到新版;
方法二:仅添加iPhone对应版本的配置
①下载iPhone版本的SDK(iOS 8.0-16.4版本):iOS-DeviceSupport/DeviceSupport/16.0.zip at master · iGhibli/iOS-DeviceSupport · GitHub。
②更改Xcode的配置:
https://blog.51cto.com/u_15318120/3235982。
(4)将ios_development.cer导入电脑时提示无效
查看电脑上是否有“AppleWWDRCAG3.cer”证书(可在钥匙串中搜索证书全称“Apple WorldWide Developer Relations Certification Authority”),若没有可在此链接下载https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer。下载后双击安装即可。
(二)打包上架APP store
本章节介绍打包上传APP store以及添加testflight(测试)的方式。
1.打包上传APP store
(1)流程
①Xcode配置,可参见:
https://jingyan.baidu.com/article/6b97984ddef0a85da2b0bfe6.html。
②证书配置,可参见:
iOS测试发布证书、配置文件配置_ios 证书生成配置-CSDN博客。
③在App Store Connect上创建APP。
④先将选择的构建类型为“Generic iOS Device”(不同版本Xcode表述不同);再点击“product”->“Archive”,归档后Xcode会自动弹,如图依次点击,等待进度条结束即可。
(2)问题及处理
①上传报错:“SDK Version Issue.This app was built with the iOS 15.5 SDK……included in Xcode 14.1 or later.”。
Xcode版本过低,将Xcode版本升级到错误提示版本及以上。
MAC系统版本也会影响Xcode版本,MAC OS和Xcode版本对应关系可参见:Xcode - 支持 - Apple Developer。
②将项目从MAC A转移到MAC B上运行失败。
a.确保程序中包含的图片路径可以再MAC B上存在;
b.如果在MAC A中编码时使用了pod install,在MAC B中也要将pod准备好(如果下载pod之后不可用,可以根据pod install时报错信息,将MAC A中的配置文件直接拷贝到MAC B对应位置);
c.将MAC A中的CSR(CertificateSigningRequest.certSigningRequest)、证书、profiles、p12证书放到MAC B中并导入响应的证书;
③ 配置没有问题,上传报错select accounting:“Unable to authenticate with App store connect .No app store connect access for the team.”。
a.确保网络无问题,可以访问App Store Connect网站。
b.删除Xcode中的accoun,关闭Xcode,重启虚拟机。重新添加用户后再次上传。
④上传后登录App Store Connect发现APP的状态“缺少出口合规证明”。
在项目的plist文件中添加如下键值对:
2.添加testflight
①App Store Connect添加测试员并对测试员发送邀请(测试员邮箱将会收到请求方的邮件)。
②测试员在iPhone上下载并运行TestFlight;测试员登录邮箱打开邮件,邮件中包含TestFlight的兑换码(这个兑换码只有第一次打开邮件的时候才能有),将邮件的兑换码输入就可以下载APP测试了(意外关闭邮件可以让请求方重复邀请)。
③APP更新:测试员邮箱会受到邮件,在TestFlight上点击“更新”按钮即可更新APP。
三、结语
iOS开发系列文章更新完结,感谢阅读。