iOS 代码签名快速通道匹配错误

iOS Code Signing Fastlane Match Error

我在尝试使用 Fastlane 将我的应用程序部署到 iTunes Connect 时收到以下信息。

不久前还可以,但我不确定为什么现在突然失效了。我最近从 CircleCI 1.0 升级到 CircleCI 2.0,那是它开始失败的时候。上次在 CircleCI 1.0 上的部署是成功的,但是 CircleCI 2.0 上的所有人都失败了。

关于如何使用 Fastlane 修复此代码签名错误的任何想法?

+-----------------------+-------------------------------------------------+
|                        Summary for match 2.94.0                         |
+-----------------------+-------------------------------------------------+
| type                  | appstore                                        |
| app_identifier        | ["com.charliefish.ios.test"]             |
| force                 | true                                            |
| git_url               | https://github.com/fishcharlie/myprivatedataA.git |
| git_branch            | master                                          |
| username              | charlie@test.com                              |
| keychain_name         | login.keychain                                  |
| readonly              | false                                           |
| team_id               | 86LATJ1793                                      |
| verbose               | false                                           |
| skip_confirmation     | false                                           |
| shallow_clone         | false                                           |
| clone_branch_directly | false                                           |
| force_for_new_devices | false                                           |
| skip_docs             | false                                           |
| platform              | ios                                             |
+-----------------------+-------------------------------------------------+

[11:38:04]: Cloning remote git repo...
[11:38:04]: If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.
[11:38:10]: Installing certificate...
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
[11:38:11]: There are no local code signing identities found.
You can run `security find-identity -v -p codesigning` to get this output.
This Stack Overflow thread has more information: 
(Check in Keychain Access for an expired WWDR certificate:  has more info.)

+-------------------+------------------------------------------------+
|                       Installed Certificate                        |
+-------------------+------------------------------------------------+
| User ID           | 86LATJ1793                                     |
| Common Name       | iPhone Distribution: Charlie Fish (86LATJ1793) |
| Organisation Unit | 86LATJ1793                                     |
| Organisation      | Charlie Fish                                   |
| Country           | US                                             |
| Start Datetime    | 2018-05-03 18:13:05 UTC                        |
| End Datetime      | 2019-05-03 18:13:05 UTC                        |
+-------------------+------------------------------------------------+


+-------------------------------------+------------------------------------------------+
|                               Summary for sigh 2.94.0                                |
+-------------------------------------+------------------------------------------------+
| app_identifier                      | com.charliefish.ios.test                |
| username                            | charlie@test.com                             |
| force                               | true                                           |
| cert_id                             | PQ8B8T1T54                                     |
| provisioning_name                   | match AppStore com.charliefish.ios.test |
| ignore_profiles_with_different_name | true                                           |
| team_id                             | 86LATJ1793                                     |
| platform                            | ios                                            |
| adhoc                               | false                                          |
| development                         | false                                          |
| skip_install                        | false                                          |
| skip_fetch_profiles                 | false                                          |
| skip_certificate_verification       | false                                          |
| readonly                            | false                                          |
+-------------------------------------+------------------------------------------------+

[11:38:12]: Starting login with user 'charlie@test.com'
[11:38:13]: Successfully logged in
[11:38:13]: Fetching profiles...
[11:38:14]: Verifying certificates...
[11:38:14]: There are no local code signing identities found.
You can run `security find-identity -v -p codesigning` to get this output.
This Stack Overflow thread has more information: 
(Check in Keychain Access for an expired WWDR certificate:  has more info.)
[11:38:14]: Certificate for Provisioning Profile 'match AppStore com.charliefish.ios.test' not available locally: PQ8B8T1T54, skipping this one...
[11:38:14]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[11:38:15]: There are no local code signing identities found.
You can run `security find-identity -v -p codesigning` to get this output.
This Stack Overflow thread has more information: 
(Check in Keychain Access for an expired WWDR certificate:  has more info.)
[11:38:15]: No certificates for filter: Certificate ID: 'PQ8B8T1T54' 
+------------------+-------------+
|          Lane Context          |
+------------------+-------------+
| DEFAULT_PLATFORM | ios         |
| PLATFORM_NAME    | ios         |
| LANE_NAME        | ios release |
+------------------+-------------+
[11:38:15]: Could not find a matching code signing identity for type 'AppStore'. It is recommended to use match to manage code signing for you, more information on https://codesigning.guide. If you don't want to do so, you can also use cert to generate a new one: https://fastlane.tools/cert

+------+------------------+-------------+
|           fastlane summary            |
+------+------------------+-------------+
| Step | Action           | Time (in s) |
+------+------------------+-------------+
| 1    | default_platform | 0           |
|    | match            | 11          |
+------+------------------+-------------+

[11:38:15]: fastlane finished with errors

[!] Could not find a matching code signing identity for type 'AppStore'. It is recommended to use match to manage code signing for you, more information on https://codesigning.guide. If you don't want to do so, you can also use cert to generate a new one: https://fastlane.tools/cert

编辑

在之前添加设置 CircleCI 任务后,我现在遇到了不同的错误。

看起来 repo 正在将 .mobileprovision 添加到配置文件的末尾。但它正在搜索非 .mobileprovision 版本。

+-----------------------+-------------------------------------------------+
|                        Summary for match 2.94.0                         |
+-----------------------+-------------------------------------------------+
| type                  | appstore                                        |
| app_identifier        | ["com.charliefish.ios.test"]             |
| force                 | true                                            |
| git_url               | https://github.com/fishcharlie/myprivatedataA.git |
| git_branch            | master                                          |
| username              | charlie@test.com                              |
| keychain_name         | fastlane_tmp_keychain                           |
| readonly              | true                                            |
| team_id               | 08RTYN1272                                      |
| verbose               | false                                           |
| skip_confirmation     | false                                           |
| shallow_clone         | false                                           |
| clone_branch_directly | false                                           |
| force_for_new_devices | false                                           |
| skip_docs             | false                                           |
| platform              | ios                                             |
+-----------------------+-------------------------------------------------+

[14:04:47]: Cloning remote git repo...
[14:04:47]: If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.
[14:04:48]:   Successfully decrypted certificates repo
[14:04:48]: Installing certificate...
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
[14:04:49]: There are no local code signing identities found.
You can run `security find-identity -v -p codesigning` to get this output.
This Stack Overflow thread has more information: 
(Check in Keychain Access for an expired WWDR certificate:  has more info.)

+-------------------+------------------------------------------------+
|                       Installed Certificate                        |
+-------------------+------------------------------------------------+
| User ID           | 08RTYN1272                                     |
| Common Name       | iPhone Distribution: Charlie Fish (08RTYN1272) |
| Organisation Unit | 08RTYN1272                                     |
| Organisation      | Charlie Fish                                   |
| Country           | US                                             |
| Start Datetime    | 2018-05-03 18:13:05 UTC                        |
| End Datetime      | 2019-05-03 18:13:05 UTC                        |
+-------------------+------------------------------------------------+

[14:04:49]: No matching provisioning profiles found for 'AppStore_com.charliefish.ios.test'
[14:04:49]: A new one cannot be created because you enabled `readonly`
[14:04:49]: Provisioning profiles in your repo for type `appstore`:
[14:04:49]: - 'AppStore_com.charliefish.ios.test.mobileprovision'
[14:04:49]: If you are certain that a profile should exist, double-check the recent changes to your match repository
+---------------------------+--------------------------------------------------------+
|                                    Lane Context                                    |
+---------------------------+--------------------------------------------------------+
| DEFAULT_PLATFORM          | ios                                                    |
| PLATFORM_NAME             | ios                                                    |
| LANE_NAME                 | ios release                                            |
| ORIGINAL_DEFAULT_KEYCHAIN | "/Users/distiller/Library/Keychains/login.keychain-db" |
+---------------------------+--------------------------------------------------------+
[14:04:49]: No matching provisioning profiles found and can not create a new one because you enabled `readonly`. Check the output above for more information.

+------+----------------------------+-------------+
|                fastlane summary                 |
+------+----------------------------+-------------+
| Step | Action                     | Time (in s) |
+------+----------------------------+-------------+
| 1    | Verifying fastlane version | 0           |
| 2    | default_platform           | 0           |
| 3    | setup_circle_ci            | 0           |
|    | match                      | 2           |
+------+----------------------------+-------------+

[14:04:49]: fastlane finished with errors

[!] No matching provisioning profiles found and can not create a new one because you enabled `readonly`. Check the output above for more information.

此错误可能有很多原因,您应该尝试以下操作:

  • 确保在本地而不是在系统中安装证书。
  • 检查 WWDR 证书到期日期。
  • 确保在您的项目目标中定义了有效的代码签名身份。当您 select 不将代码签名作为代码签名身份时,可能会发生这种情况。

我在 Upwork 读了你的 post。

我可以通过回头查看我的 v1.0 配置来解决这个问题。我在 CI 配置中设置了 read_only: false。我认为这不是最佳做法。但它现在没有抛出任何错误并且工作正常。我很确定我仍然收到警告 security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.,但即使有那个警告它也能正常工作。

我的配置中也有 setup_circle_ci