Xcode的各种坑

作为一个iOS萌新,使用Xcode的过程真是一言难尽,遇到各种奇怪的耽误事儿的问题。这里就占个楼专门总结使用中碰到的问题,以后遇到了也有的参考。

什么?还需要开发者账号?

第一次使用Xcode的时候,我以为它和VS、Eclipse什么的一样就是一个简单的开发环境。后来才知道苹果对开发者管控的很严格,开发者需要注册开发者账号才能具备签名打包工程,发布到Apple Store的资格。

一般来说,开发者需要到苹果开发者网站注册开发者账号。
具体的流程为:

  1. 注册apple id (注意国籍中国 + 年龄>18)
  2. 加入apple developer计划
  3. 根据自己的身份进行填写注册
  4. 完成付款,个人是每年99刀

在这之后就可以创建证书和包了

不过自15年之后,也就是Xcode7.x之后,开发者可以用中间的apple id申请一个免费的开发账号。不过这个账号只有测试功能,且权限有限,只支持三个测试设备,用的时候要很节省。

Bundle Identifier?那是什么东西?

在我刚开始尝试OC的时候,我就像自己学习C或Java一样,疯狂建了一堆类似“TEST”、“HelloWorld”、“MyFirstApp”这样的OC工程。
建工程之前会让你填写Team或者Bundle Identifier之类的信息,年轻的我以为这只是一些工程或者组织信息描述,就随手填了名字。
没想到,在我疯狂建了各种名字的工程之后,突然有天再新建时提示我Bundle Identifier满了…
原来一个账号的Bundle Identifier是有限的,尤其是上架之后不能与其他人的重复。满了之后再想用只能等之前的过期了。
另外,测试设备的数量也是有限的,占用了之后只能等每年Apple清理掉了。

打开工程时一直loading转圈?

有一天,我打开一个大工程时,Xcode一直右下角在loading。而且只能通过杀死进程的方法才能关掉。
解决办法:Xcode打开工程假死
不过我当时好像是把整个工程都删了,文件夹清理一遍才好。

添加账号时一直loading转圈?

这个问题是最让我烦躁的,填了账户密码之后就一直转圈,一点反应没有。
有人说是因为验证的服务器有问题,不过我试了之后发现输了错误的密码之后是有错误提示的。说明验证是能验证的,应该是接下来的步骤卡死。
这个问题在某一天突然解决,又在某一天突然出现,毫无防备。

如果在虚拟机上出现该问题,参考文章解决Mac虚拟机(VirtualBox)无法登陆Xcode的开发账号问题

使用低版本SDK

有时在开发中,我们升级Xcode为较高的版本,或者由于mac系统版本限制只能使用某个较高版本的Xcode,而可其支持的最低版本iOS SDK却比我们需要的版本高。
这时就需要将较低版本的SDK移过来。
首先,从旧版本Xcode中将SDK拷贝出来,路径为:
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
然后将其拷贝到新版本的对应位置
再打开/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist文件
改变MinimumSDKVersion的值,重启Xcode会识别大于等于MinimumSDKVersion的所有SDK

Xcode版本和Mac OS版本的限制

Xcode要求的最低Mac版本,以及对应的SDK、模拟器、swift版本
参考:Xcode Support

低版本Xcode不支持高版本iOS真机调试(14.0)

下载新版本的调试包,解压到以下路径:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport