Fastlane 从标识符中检索配置文件路径
Fastlane retrieve provisioning profile path from identifier
是否有任何 fastlane/CLI 工具可以根据 UDID 找到配置文件的路径和名称?
我正在尝试设置 fastlane 来进行代码签名。我正在使用 match
,但它不适用于我的用例,因为配置文件需要更改。
我有 2 条通道,都使用 RELEASE 配置:
submit_app_store
,使用 match App Store
配置文件,将发布版本上传到 Test Flight
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 种不同的配置:
- 开发(测试版)
- 开发(生产)
- 即席(测试版)
- 临时(产品)*
- AppStore(产品)*
* 我原来的RELEASE
配置,发这个问题的时候
这样,我可以为每个配置定义单独的证书和配置文件,我不再需要从 fastlane 更改它们。
如果您在 Build Settings
中定义了一些用户定义的属性,请避免使用 .xcconfig
文件重复它们 5 次。您可以阅读更多关于它们的信息 here for example.
Hacky解决方案,直接回答我的问题
我不建议这样做,而是使用单独的配置。但是如果你需要一个临时的快速修复,那么:
不幸的是(或者幸运的是)没有非 hacky 的方法可以做到这一点。
我注意到 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
)
...
是否有任何 fastlane/CLI 工具可以根据 UDID 找到配置文件的路径和名称?
我正在尝试设置 fastlane 来进行代码签名。我正在使用 match
,但它不适用于我的用例,因为配置文件需要更改。
我有 2 条通道,都使用 RELEASE 配置:
submit_app_store
,使用match App Store
配置文件,将发布版本上传到 Test Flightdeploy_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 种不同的配置:
- 开发(测试版)
- 开发(生产)
- 即席(测试版)
- 临时(产品)*
- AppStore(产品)*
* 我原来的RELEASE
配置,发这个问题的时候
这样,我可以为每个配置定义单独的证书和配置文件,我不再需要从 fastlane 更改它们。
如果您在 Build Settings
中定义了一些用户定义的属性,请避免使用 .xcconfig
文件重复它们 5 次。您可以阅读更多关于它们的信息 here for example.
Hacky解决方案,直接回答我的问题
我不建议这样做,而是使用单独的配置。但是如果你需要一个临时的快速修复,那么:
不幸的是(或者幸运的是)没有非 hacky 的方法可以做到这一点。
我注意到 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
)
...