苹果官网对xcode版本的要求

苹果官网对xcode版本的要求

  • xcode版本的要求
    • 英文
    • 中文
    • 对比
  • 下载
  • Xcode对macOS版本的要求
    • 升级macOS版本
  • Xcode 更改默认版本 xcode-select
  • 删除描述文件(Provisioning Profiles)
    • 为什么要删
    • 怎么删
    • 更新证书之后,通过命令行打包时读取的配置需要相应地更新
  • 信任证书密钥
  • app与stick等外加组件的描述文件对应的证书需要保持一致

xcode版本的要求

英文

https://developer.apple.com/ios/submit/
苹果官网对xcode版本的要求_第1张图片

中文

https://developer.apple.com/cn/app-store/submissions/
苹果官网对xcode版本的要求_第2张图片

对比

对比之下,充分说明了英文版的好。
“4月”和“April 30”,差好远。说好的信达雅呢?
所以,一定要学好英语。

下载

https://developer.apple.com/download/more/
苹果官网对xcode版本的要求_第3张图片
选一个合适的版本吧。
如上面的,要求11,11有这么多,选哪个?
选正式版。
正式版有11、11.1、11.2、11.2.1、11.3、11.3.1这6个,选哪个?
去官网、官方论坛、其它论坛看一下,哪个稳定用哪个。因为有些版本很坑爹,各种闪退。

Xcode对macOS版本的要求

下载到合适的Xcode版本之后,会发现,自己的macOS太低。
苹果官网对xcode版本的要求_第4张图片
其实更聪明的办法是,要提前知道Xcode对macOS版本的要求。苹果官网一般会在Xcode的Release Notes 里面有写这个要求。
我是怎么知道Release Notes有的?经验,猜的,一般都有的。好吧,不装逼了,用搜索引擎搜出来的。比如,这样子 “xcode 11.2” requires “macos” (引号是必须要有的意思)苹果官网对xcode版本的要求_第5张图片

升级macOS版本

如果你的mascOS版本太低,就升级到要求的版本吧。
如果直接升级到最新,会有兼容问题(如果,Unity2017.4.26f1在macOS 10.15+的版本会有音频导入失败等问题,要升级到Unity2017.4.34f1+)。所以,升级系统时,只升级一个小版本号,或者升级到指定版本号,而不是最新版本的话,可以在Apple Support Downloads site 下载(参考:几种OS X更新(升级)的不同方式)。

Xcode 更改默认版本 xcode-select

Xcode版本路径

xcode-select -p
#or xcode-select --print-path

查看xcode-select版本

xcode-select -v
# or xcode-select --version

修改Xcode使用版本

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
# or sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

删除描述文件(Provisioning Profiles)

为什么要删

为什么要删除?因为如果旧的走,新的导入了,可能Xcode还是用旧的,导致打不了包。

怎么删

所有Provisioning Profiles所在路径:~/Library/MobileDevice/Provisioning Profiles
苹果官网对xcode版本的要求_第6张图片
但,它的命名用了一个不知道什么id(uuid?)
怎么知道当前用的是哪个,要删除哪个呢?

这样了,拉一出来,就能看到名字。看动画:
苹果官网对xcode版本的要求_第7张图片

然后回到Provisioning Profiles,根据名字删除。

更新证书之后,通过命令行打包时读取的配置需要相应地更新

一般会有profile_xxx.plist这个plist配置来指定命令行打包时用哪个证书

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>uploadSymbols</key>
	<true/>
	<key>provisioningProfiles</key>
	<dict>
		<key>com.xxx.xxx.sticker</key>
		<string>abcc467f-c4c8-abc7-abc6-abc6ef847bc7</string>
		<key>com.xxx.xxx</key>
		<string>abcbc229-abca-abc6-abc1-abc137241056</string>
	</dict>
	<key>complieBitcode</key>
	<false/>
	<key>method</key>
	<string>enterprise</string>
</dict>
</plist>

类似这样,这时你要打开Provisioning Profiles文件,就是上面的xxxx.mobileprovision,找到uuid,填到plist
苹果官网对xcode版本的要求_第8张图片
[Q]升级Xcode之后,会自动选了旧的描述文件?抑或自动删除了新的描述文件?

另外,xcode工程中的描述文件的记录也是有点迷哦。如下:

git中版本
//工程可视化
com.tencnet.swy
com.tencent.swy Development
profile:4b7030ca-61a4-47ca-81b3-31d94e30aed2
//工程文本:
PROVISIONING_PROFILE = “344ad087-f784-4f83-96c5-128faaa31146”;
PROVISIONING_PROFILE_SPECIFIER = “com.tencent.swy Development”;

//打包配置:4b7030ca-61a4-47ca-81b3-31d94e30aed2

//换成不合法的com.tencent.swy AppStore描述文件
//只改了PROVISIONING_PROFILE_SPECIFIER这个,注意,PROVISIONING_PROFILE没有变。
PROVISIONING_PROFILE_SPECIFIER = “com.tencent.swy AppStore”;

信任证书密钥

不然打包过程中会弹出来问你,在CI机上,第一次要人看着,不友好。

这样子,类似(并不是完全一样的),要点一下。
苹果官网对xcode版本的要求_第9张图片
导入了之后,马上这样操作一下,就好啦,CI无人值守:
钥匙串访问-我的证书-双击你刚刚导入的证书-点左侧三角,展开证书对应的密钥,设置信任codesign使用密钥(直接全部信任也行)。

苹果官网对xcode版本的要求_第10张图片
苹果官网对xcode版本的要求_第11张图片

app与stick等外加组件的描述文件对应的证书需要保持一致

苹果官网对xcode版本的要求_第12张图片
只更新了stick的证书和描述文件,没有更新app的描述文件。导致打包报错,不匹配,不能打包。

即:
app用的描述文件中使用的是证书A。
stick用的描述文件中使用的是证书B。
这时,打包会报错,报stick用的证书和stick的老豆(即app)用的证书不一致。

所以,现在需要更新app的描述文件,使它包含和stick一致的证书。

你可能感兴趣的:(iOS)