一、背景
在使用Xcode14 beta版后如果你的pod库里有bundle资源文件则会在编译时报错,报error: Signing for "xxx" requires a development team. Select a development team in the Signing & Capabilities editor.如下图:
解决办法也很简单就是给
pod
库里的bundle
资源文件设置bundle identifier
和team
,让它和主工程一样就可以了。但pod
里的配置都是自动生成的在执行pod install
之后我们的配置就会消失,又得手动设置一遍。开发阶段改动小的话还能承受但打包平台没法手动改呀!为了解决这个问题我就写了一个CocoaPods
插件来处理这个问题。我写的插件叫cocoapods-pod-sign
,现在已经发布大家可以拉取使用。
二、cocoapods-pod-sign使用介绍
1、安装cocoapods-pod-sign
安装方式有两一种是用gem
安装另一种是用bundle
安装,我分别介绍一下两种方式:
1.1 gem命令安装
在终端执行下面的命令即可安装
gem install cocoapods-pod-sign
1.2 用bundle安装
这个方式我们需要先创建一个Gemfile
,在Podfile
的同级目录执行以下命令创建:
bundle init
执行完上面的命令后会得到一个Gemfile
文件,用编辑器打开Gemfile
文件,Gemfile
的内容如下图:
这个文件和
Podfile
文件一样并且操作也很像,内容里已给出例gem "rails"
。我们按这种方式在文件后面追加一行代码如下:
gem 'cocoapods-pod-sign'
然后用终端进到该目录下执行以下命令即可安装:
bundle install
如果你使用过其他CocoaPods
插件上面的不用讲也明白怎么回事。
2、使用插件
这个插件可自动从主工程获取bundle identifier
与team
并设置到pod
的资源bundle
上,如果你的项目自动设置不成功也可以选择手动配置。对了上面安装的方式不管是第一种还是第二种在使用插件这一步的时候都是需要Gemfile
文件,所以建议用上面的第二种方式安装。
2.1 自动设置
在Podfile
里添加以下代码:
# 这句可写在target外面也可写在里面
plugin 'cocoapods-pod-sign'
然后以下面的方式执行pod
命令即可:
bundle exec pod install
由于我们使用了Gemfile
文件所以前面要加上bundle exec
才行,如果觉得麻烦也有办法省略这个bundle exec
,请自己另外查询方法这里就不具体介绍了。
2.2 手动配置
有由项目的多样性,可能有些工程通过自动设置会失败所以又提供了一个手动设置的方式。例如我们debug
与release
环境使用bundle identifier
不一样或者有更多不一样的,我们以下面三个不同环境配置为例:
Debug
bundle identifier: com.aaa.bbb
team: ABCDEFG
Release
bundle identifier: com.ccc.ddd
team: HIJKLMN
Profile
bundle identifier: com.xxx.eee
team: ASDFGHJ
这情况正常情况下自动设置可以完成但也有例外,出现意外时我就要用下面的方式来设置:
# 手动设置,插件的引入这次代码还是要的
plugin 'cocoapods-pod-sign'
config_pod_bundle_id_and_team_id({
'Debug' => {:bundle_id => 'com.aaa.bbb', :team_id => 'ABCDEFG'},
'Release' => {:bundle_id => 'com.ccc.ddd', :team_id => 'HIJKLMN'},
'Profile' => {:bundle_id => 'com.xxx.eee', :team_id => 'ASDFGHJ'}
})
通过上面这种设置后再执行pod
命令后即可实现在bundle
资源设置上bundlie identifier
与team
。
bundle exec pod install
三、结语
由于插件写出来的时间不长可能还会有问题,如果遇到问题请在git仓库提issues。
网友评论