是否有任何快速通道/CLI 工具可以根据 UDID 找到预配配置文件的路径和名称?
我正在尝试设置快速通道来进行代码签名。我正在使用match
,但它不适用于我的用例,因为需要更改预配配置文件。
我有 2 条车道,都使用RELEASE配置:
submit_app_store
,使用match App Store
配置文件,将发布版本上传到试飞版deploy_qa_prod
,使用match AdHoc
配置文件,将发布版本上传到我们的 QA 平台
我正在尝试调用update_project_provisioning
,但我需要给它一个配置文件的路径,并且我只有配置文件的说明符,例如match AdHoc APP_ID
。
我想要一个将此说明符转换为路径的命令。
快车道代码:
lane :deploy_qa_prod do
configuration = "Release"
app_identifier = ...
provisioning_profile = "match AdHoc #{app_identifier}"
# In the other lane: provisioning_profile = "match AppStore #{app_identifier}"
sync_code_signing(
type: "adhoc",
app_identifier: app_identifier,
readonly: true
)
update_project_provisioning(
xcodeproj: ...,
target_filter: ...,
# profile: provisioning_profile, <--- This is the problematic line
build_configuration: configuration
)
build_app(
scheme: ...,
workspace: ...,
configuration: configuration
export_options: {
method: "ad-hoc",
provisioningProfiles: {
app_identifier => provisioning_profile
}
}
)
pilot(......)
# In the other lane: upload_to_qa(......)
推荐的解决方案:
我不再只使用DEBUG
和RELEASE
配置。
相反,我定义了 5 种不同的配置:
- 开发(测试版(
- 开发(产品(
- 临时(测试版(
- 临时 (产品( *
- 应用商店 (产品( *
* 我原来的RELEASE
配置,发布这个问题时。
这样,我可以为每个配置定义单独的证书和预配配置文件,并且不再需要从快速通道更改它们。
如果在Build Settings
中定义了某些用户定义的属性,请避免使用.xcconfig
文件复制它们 5 次。例如,您可以在此处阅读有关它们的更多信息。
>黑客解决方案,直接回答我的问题我不建议这样做,而是使用单独的配置。但是,如果您需要临时快速修复,则:
不幸的是(或幸运的是(,没有非黑客的方法可以做到这一点。
我注意到的是,sync_code_signing
(又名match
(在后台调用sigh
,这将为下载的配置文件创建环境变量。
这些变量的名称遵循以下格式:sigh_#{app_identifier}_#{match_type}_profile-path
(例如:sigh_com.yourDomain.yourAppName_adhoc_profile-path
(
然后,您可以在调用update_project_provisioning
时使用此变量:
app_identifier = ...
match_type = "adhoc"
configuration = "Release"
sync_code_signing(
type: match_type,
app_identifier: app_identifier,
readonly: true
)
profile_path = ENV["sigh_#{app_identifier}_#{match_type}_profile-path"]
update_project_provisioning(
xcodeproj: ...,
target_filter: ...,
profile: profile_path,
build_configuration: configuration
)
...