8

I'm trying to setup a CI pipeline to build an application for iOS; specifically my goal, apart from building the app, is to also setup the automatic signing and push it to Testflight in the end. When I try to run the fastlane command to build the app locally it works as expected, however, every time I try to build it on circleci with fastlane I always get a "There are no local code signing identities found" error and then the certificates and provisioning profiles are installed from the repository, but in the end my build fails with an error: "error: There are no accounts registered with Xcode. Add your developer account to Xcode...".

I'm not sure exactly what's the issue with this and I've changed my fastfile many times to include or exclude various options that I've found while debugging this, but I'm still getting the same errors.

Here is how the pipeline looks on circleci:

/Users/distiller/project/********
[⠋]  [⠙]  [⠹]  [⠸]  [⠼]  [⠴]  [⠦]  [⠧]  [⠇]  [⠏]  [⠋]  [⠙]  [⠹]  [⠸]  [⠼]  [⠴]  [⠦]  [⠧]  [⠇]  [✔]  
[09:00:06]: Sending anonymous analytics information
[09:00:06]: Learn more at https://docs.fastlane.tools/#metrics
[09:00:06]: No personal or sensitive data is sent.
[09:00:06]: You can disable this by adding `opt_out_usage` at the top of your Fastfile
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[09:00:06]: ----------------------------------------
[09:00:06]: --- Step: Verifying fastlane version ---
[09:00:06]: ----------------------------------------
[09:00:06]: Your fastlane version 2.190.0 matches the minimum requirement of 2.171.0  ✅
[09:00:06]: Driving the lane 'ios beta' 
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[09:00:06]: --------------------------------------
[09:00:06]: --- Step: Switch to ios build lane ---
[09:00:06]: --------------------------------------
[09:00:06]: Cruising over to lane 'ios build' 
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[09:00:06]: -----------------------------
[09:00:06]: --- Step: setup_circle_ci ---
[09:00:06]: -----------------------------
[09:00:06]: Creating temporary keychain: "fastlane_tmp_keychain".
[09:00:06]: $ security list-keychains -d user
[09:00:06]: ▸ "/Users/distiller/Library/Keychains/fastlane_tmp_keychain-db"
[09:00:06]: Found keychain '/Users/distiller/Library/Keychains/fastlane_tmp_keychain-db' in list-keychains, adding to search list skipped
[09:00:06]: Enabling match readonly mode.
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[09:00:06]: -------------------
[09:00:06]: --- Step: is_ci ---
[09:00:06]: -------------------
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[09:00:06]: -------------------
[09:00:06]: --- Step: match ---
[09:00:06]: -------------------
[09:00:06]: Successfully loaded '/Users/distiller/project/********/fastlane/Matchfile' 

+----------------+-----------------------------------------------------------------+
|                   Detected Values from './fastlane/Matchfile'                    |
+----------------+-----------------------------------------------------------------+
| git_url        | git@***********************.git |
| storage_mode   | git                                                             |
| type           | adhoc                                                           |
| app_identifier | com.********.app                                            |
| username       | ****@************.****                                   |
+----------------+-----------------------------------------------------------------+


+--------------------------------+-----------------------------------------------------------------+
|                                    Summary for match 2.190.0                                     |
+--------------------------------+-----------------------------------------------------------------+
| type                           | adhoc                                                           |
| readonly                       | true                                                            |
| generate_apple_certs           | true                                                            |
| skip_provisioning_profiles     | false                                                           |
| app_identifier                 | ["com.********.app"]                                        |
| username                       | ****@************.***                                     |
| team_id                        | ***********|
| storage_mode                   | git                                                             |
| git_url                        | git@***********************.git |
| git_branch                     | master                                                          |
| shallow_clone                  | false                                                           |
| clone_branch_directly          | false                                                           |
| keychain_name                  | fastlane_tmp_keychain                                           |
| force                          | false                                                           |
| force_for_new_devices          | false                                                           |
| skip_confirmation              | false                                                           |
| skip_docs                      | false                                                           |

| platform                       | ios                                                             |
| derive_catalyst_app_identifier | false                                                           |
| fail_on_name_taken             | false                                                           |
| skip_certificate_matching      | false                                                           |
| skip_set_partition_list        | false                                                           |
| verbose                        | false                                                           |
+--------------------------------+-----------------------------------------------------------------+

[09:00:06]: Cloning remote git repo...
[09:00:06]: If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.
[09:00:11]: Checking out branch master...
[09:00:11]:   Successfully decrypted certificates repo
[09:00:11]: Installing certificate...
[09:00:12]: There are no local code signing identities found.
You can run `security find-identity -v -p codesigning fastlane_tmp_keychain` to get this output.
This Stack Overflow thread has more information: https://stackoverflow.com/q/35390072/774.
(Check in Keychain Access for an expired WWDR certificate: https://stackoverflow.com/a/35409835/774 has more info.)
[09:00:12]: Setting key partition list... (this can take a minute if there are a lot of keys installed)
[09:00:12]: security: SecItemCopyMatching: The specified item could not be found in the keychain.
[09:00:12]: Setting key partition list... (this can take a minute if there are a lot of keys installed)

+-------------------+-----------------------------------------+
|                    Installed Certificate                    |
+-------------------+-----------------------------------------+
| User ID           | **********                              |
| Common Name       | *********************                   |
| Organisation Unit | **********                              |
| Organisation      | *****                                   |
| Country           | **                                      |
| Start Datetime    | 2021-07-13 10:57:41 UTC                 |
| End Datetime      | 2022-07-13 10:57:40 UTC                 |
+-------------------+-----------------------------------------+

[09:00:12]: Installing provisioning profile...

+---------------------+----------------------------------------------+------------------------------------------------------------------------------------------------------------------+
|                                                                            Installed Provisioning Profile                                                                             |
+---------------------+----------------------------------------------+------------------------------------------------------------------------------------------------------------------+
| Parameter           | Environment Variable                         | Value                                                                                                            |
+---------------------+----------------------------------------------+------------------------------------------------------------------------------------------------------------------+
| App Identifier      |                                              | com.********.app                                                                                             |
| Type                |                                              | adhoc                                                                                                            |
| Platform            |                                              | ios                                                                                                              |
| Profile UUID        | sigh_com.********.app_adhoc              | g611aca9-****-*****-****-*****                                                                             |
| Profile Name        | sigh_com.********.app_adhoc_profile-name | match AdHoc com.********.app                                                                                 |
| Profile Path        | sigh_com.********.app_adhoc_profile-path | /Users/distiller/Library/MobileDevice/Provisioning Profiles/g611aca9-****-*****-****-*****.mobileprovision |
| Development Team ID | sigh_com.********.app_adhoc_team-id      | ****************                                                                                                       |
+---------------------+----------------------------------------------+------------------------------------------------------------------------------------------------------------------+

[09:00:12]: All required keys, certificates and provisioning profiles are installed 
[09:00:12]: Setting Provisioning Profile type to 'ad-hoc'
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[09:00:12]: ----------------------------------------------------------
[09:00:12]: --- Step: ns prepare ios --clean --release --env.stage ---
[09:00:12]: ----------------------------------------------------------
[09:00:12]: $ ns prepare ios --clean --release --env.stage
[09:01:48]: ▸ 
[09:01:48]: ▸ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
[09:01:48]: ▸ *                                                                             *
[09:01:48]: ▸ *  Using material components 5.x the N tabs component                         *
[09:01:48]: ▸ *  will not be fonctional anymore.                                            *
[09:01:48]: ▸ *  If you need it migrate to using @nativescript-community/ui-material-tabs   *
[09:01:48]: ▸ *  or go back the 4.x                                                         *
[09:01:48]: ▸ *                                                                             *
[09:01:48]: ▸ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
[09:01:48]: ▸ Copying template files...
[09:01:53]: ▸ Platform ios successfully added. v8.0.0
[09:01:53]: ▸ Preparing project...
...................................................................
[09:14:59]: ▸ Project successfully prepared (ios)
[09:14:59]: ▸ Configure firebase
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[09:15:00]: ------------------------------------------
[09:15:00]: --- Step: update_code_signing_settings ---
[09:15:00]: ------------------------------------------

+-----------------------+---------------------------------------+
|               Summary for code signing settings               |
+-----------------------+---------------------------------------+
| use_automatic_signing | true                                  |
| team_id               | **********                            |
| path                  | ./platforms/ios/********.xcodeproj |
+-----------------------+---------------------------------------+

[09:15:00]: Updating the Automatic Codesigning flag to enabled for the given project '/Users/distiller/project/********/platforms/ios/********.xcodeproj/project.pbxproj'
[09:15:00]: Set Team id to: ********* for target: ******** for build configuration: Debug
[09:15:00]: Set Team id to: ********* for target: ******** for build configuration: Release
[09:15:00]: Successfully updated project settings to use Code Sign Style = 'Automatic'
[09:15:00]: Modified Targets:
[09:15:00]:      * ********
[09:15:00]: Modified Build Configurations:
[09:15:00]:      * Debug
[09:15:00]:      * Release
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[09:15:00]: -----------------------
[09:15:00]: --- Step: build_app ---
[09:15:00]: -----------------------
[09:15:00]: Resolving Swift Package Manager dependencies...
[09:15:00]: $ xcodebuild -resolvePackageDependencies -workspace ./platforms/ios/********.xcworkspace -scheme ********
[09:15:06]: ▸ resolved source packages: 
[09:15:06]: $ xcodebuild -showBuildSettings -workspace ./platforms/ios/********.xcworkspace -scheme ********
[09:15:09]: Command timed out after 3 seconds on try 1 of 4, trying again with a 6 second timeout...
[09:15:12]: Detected provisioning profile mapping: {:"com.********.app"=>"match AdHoc com.********.app"}

+----------------------------------------------------------+--------------------------------------------------------------+
|                                                 Summary for gym 2.190.0                                                 |
+----------------------------------------------------------+--------------------------------------------------------------+
| xcargs                                                   | -allowProvisioningUpdates                                    |
| scheme                                                   | ********                                                  |
| workspace                                                | ./platforms/ios/********.xcworkspace                      |
| export_method                                            | ad-hoc                                                       |
| export_options.provisioningProfiles.com.********.app | match AdHoc com.********.app                             |
| clean                                                    | false                                                        |
| output_directory                                         | ~/project/output/gym                                         |
| output_name                                              | ********                                                  |
| silent                                                   | false                                                        |
| skip_package_ipa                                         | false                                                        |
| skip_package_pkg                                         | false                                                        |
| build_path                                               | /Users/distiller/Library/Developer/Xcode/Archives/2021-08-03 |
| result_bundle                                            | false                                                        |
| buildlog_path                                            | ~/project/output/buildlogs/gym                               |
| destination                                              | generic/platform=iOS                                         |
| skip_profile_detection                                   | false                                                        |
| skip_package_dependencies_resolution                     | false                                                        |
| disable_package_automatic_updates                        | false                                                        |
| use_system_scm                                           | false                                                        |
| xcode_path                                               | /Applications/Xcode-11.GM.Seed.2.app                         |
+----------------------------------------------------------+--------------------------------------------------------------+

[09:15:12]: $ set -o pipefail && xcodebuild -workspace ./platforms/ios/********.xcworkspace -scheme ******** -destination 'generic/platform=iOS' -archivePath /Users/distiller/Library/Developer/Xcode/Archives/2021-08-03/********\ 2021-08-03\ 09.15.12.xcarchive -allowProvisioningUpdates archive | tee /Users/distiller/project/output/buildlogs/gym/********-********.log | xcpretty
[09:15:18]: ▸ ❌  error: There are no accounts registered with Xcode. Add your developer account to Xcode (in target '********' from project '********')
[09:15:18]: ▸ ❌  error: No profiles for 'com.********.app' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.********.app'. (in target '********' from project '********')
[09:15:18]: ▸ ** ARCHIVE FAILED **

❌  error: There are no accounts registered with Xcode. Add your developer account to Xcode (in target '********' from project '********')



❌  error: No profiles for 'com.********.app' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.********.app'. (in target '********' from project '********')


** ARCHIVE FAILED **
[09:15:18]: Exit status: 65
[09:15:18]: 
[09:15:18]: Maybe the error shown is caused by using the wrong version of Xcode
[09:15:18]: Found multiple versions of Xcode in '/Applications/'
[09:15:18]: Make sure you selected the right version for your project
[09:15:18]: This build process was executed using '/Applications/Xcode-11.GM.Seed.2.app'
[09:15:18]: If you want to update your Xcode path, either
[09:15:18]: 
[09:15:18]: - Specify the Xcode version in your Fastfile
[09:15:18]: ▸ xcversion(version: "8.1") # Selects Xcode 8.1.0
[09:15:18]: 
[09:15:18]: - Specify an absolute path to your Xcode installation in your Fastfile
[09:15:18]: ▸ xcode_select "/Applications/Xcode8.app"
[09:15:18]: 
[09:15:18]: - Manually update the path using
[09:15:18]: ▸ sudo xcode-select -s /Applications/Xcode.app
[09:15:18]: 

+---------------+--------------------------------------+
|                  Build environment                   |
+---------------+--------------------------------------+
| xcode_path    | /Applications/Xcode-11.GM.Seed.2.app |
| gym_version   | 2.190.0                              |
| export_method | ad-hoc                               |
| sdk           | iPhoneOS13.0.sdk                     |
+---------------+--------------------------------------+

[09:15:18]: ▸ note: Using new build system
[09:15:18]: ▸ note: Planning build
[09:15:18]: ▸ note: Constructing build description
[09:15:18]: ▸ error: There are no accounts registered with Xcode. Add your developer account to Xcode (in target '********' from project '********')
[09:15:18]: ▸ error: No profiles for 'com.********.app' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.********.app'. (in target '********' from project '********')
[09:15:18]: 
[09:15:18]: ⬆️  Check out the few lines of raw `xcodebuild` output above for potential hints on how to solve this error
[09:15:18]:   For the complete and more detailed error log, check the full log at:
[09:15:18]:   /Users/distiller/project/output/buildlogs/gym/********-********.log
[09:15:18]: 
[09:15:18]: Looks like fastlane ran into a build/archive error with your project
[09:15:18]: It's hard to tell what's causing the error, so we wrote some guides on how
[09:15:18]: to troubleshoot build and signing issues: https://docs.fastlane.tools/codesigning/getting-started/
[09:15:18]: Before submitting an issue on GitHub, please follow the guide above and make
[09:15:18]: sure your project is set up correctly.
[09:15:18]: fastlane uses `xcodebuild` commands to generate your binary, you can see the
[09:15:18]: the full commands printed out in yellow in the above log.
[09:15:18]: Make sure to inspect the output above, as usually you'll find more error information there
[09:15:18]: 
+------------------------------------+--------------------------------------------------------------+
|                                           Lane Context                                            |
+------------------------------------+--------------------------------------------------------------+
| PLATFORM_NAME                      | ios                                                          |
| LANE_NAME                          | ios beta                                                     |
| KEYCHAIN_PATH                      | ~/Library/Keychains/fastlane_tmp_keychain                    |
| ORIGINAL_DEFAULT_KEYCHAIN          | "/Users/distiller/Library/Keychains/login.keychain-db"       |
| SIGH_PROFILE_TYPE                  | ad-hoc                                                       |
| MATCH_PROVISIONING_PROFILE_MAPPING | {"com.********.app"=>"match AdHoc com.********.app"} |
+------------------------------------+--------------------------------------------------------------+
[09:15:18]: Error building the application - see the log above

+------+----------------------------------------------+-------------+
|                         fastlane summary                          |
+------+----------------------------------------------+-------------+
| Step | Action                                       | Time (in s) |
+------+----------------------------------------------+-------------+
| 1    | Verifying fastlane version                   | 0           |
| 2    | Switch to ios build lane                     | 0           |
| 3    | setup_circle_ci                              | 0           |
| 4    | is_ci                                        | 0           |
| 5    | match                                        | 5           |
| 6    | ns prepare ios --clean --release --env.stage | 887         |
| 7    | update_code_signing_settings                 | 0           |
|    | build_app                                    | 18          |
+------+----------------------------------------------+-------------+

[09:15:18]: fastlane finished with errors

[!] Error building the application - see the log above
failed or skipped
cat: /Users/distiller/Library/Logs/gym/********-********.log: No such file or directory
log not found

Some things that I've tried on the fastfile is to:

  • create a temporary keychain and unlock it by using create_keychain(...) and unlock_keychain()

  • include keychain_name and keychain_password on match(...)

  • use setup_circle_ci which is an option for circleci to create a temporary keychain for you.

Lastly, this is what my fastfile looks like:

fastlane_version '2.171.0'


platform :ios do

  before_all do
    setup_circle_ci
  end


 desc 'Fetch certificates and provisioning profiles'
 lane :certificates do
    match(type: 'development')
    match(type: "appstore")

 end

 desc 'Build the iOS application.'
 lane :build do
    # setup_circle_ci

    # sh("security", "list-keychains", "-d", "user")

    # create_keychain(
    #   name: "login.keychain",
    #   password: "test",
    #   default_keychain: true,
    #   unlock: true,
    #   timeout: 3600,
    #   lock_when_sleeps: false,
    #   add_to_search_list: true
    # )

    # unlock_keychain(
    #   path: "/Users/distiller/Library/Keychains/login.keychain",
    #   add_to_search_list: :replace,
    #   password: "test",
    # )

    # sh("security", "find-identity", "-v", "-p", "codesigning", "login.keychain")

    match(
      type: "appstore",
      readonly: is_ci,
      keychain_name: "fastlane_tmp_keychain",
      keychain_password: "",
      verbose: true
    )

    # sh("security", "find-identity", "-v", "-p", "codesigning", "login.keychain")

    sh("ns", "prepare", "ios", "--clean", "--release",  "--env.stage")

    update_code_signing_settings(
      use_automatic_signing: true,
      team_id: "*****",
      path: "./platforms/ios/*******.xcodeproj"
    )

  #   update_project_provisioning(
  #     xcodeproj: "./platforms/ios/*******.xcodeproj",
  #     profile: ENV["sigh_com.*******.app_adhoc_profile-path"]
  #     # build_configuration: "Release"
  #  )

    build_app(
      xcargs: "-allowProvisioningUpdates",
      scheme: "*******",
      workspace: './platforms/ios/*******.xcworkspace',
      export_method: "app-store"
      # export_options: {
      #   provisioningProfiles: {
      #     "com.*******.app" => "match Appstore com.********.app"
      #   }
      # }
    )

 end

 desc 'Ship to Testflight.'
 lane :beta do
    build

    changelog_from_git_commits

    upload_to_testflight(
      beta_app_feedback_email: "****@*******.****",
      beta_app_description: "Test deployment",
      demo_account_required: false,
      distribute_external: false,
      groups: [],
      notify_external_testers: false,
      skip_submission: true
    )

 end

end

If anyone can help me with this you'll be saving me! Thanks!

dinosng
  • 81
  • 3
  • Any luck @dinosng? Running into the same issue using Bamboo and it seems to do with either running non-interactively or somehow under/unprivileged. – spacesuitdiver Nov 02 '22 at 04:27
  • Hello @spacesuitdiver - sorry for the late reply on your comment. I've figured it out after all yes! Basically, I started from scratch and followed the processes explained by Josh Holtz in these videos: https://www.youtube.com/watch?v=6Jz-Ywxki0U https://www.youtube.com/watch?v=yPsinc7WZCI Just make sure that you have admin access to AppleStoreConnect (if you're account holder you should be fine) as you'd require access to the API. – dinosng Nov 10 '22 at 09:44
  • Regarding the "There are no local code signing identities found" message, I think it's just something that gets shown by fastlane, but doens't affect the pipeline afterwards if the process is setup correctly. – dinosng Nov 10 '22 at 09:46

0 Answers0