Search Unity

Official How to set up a Fastlane Gymfile and multiple provisioning profiles

Discussion in 'Unity Build Automation' started by dannyd, Aug 13, 2018.

  1. dannyd

    dannyd

    Unity Technologies

    Joined:
    Jun 3, 2014
    Posts:
    785
    Something that has come up a number of times are questions around supporting multiple provisioning profiles. We have finally made this available (along with more customization of the Xcode build process in Xcode 9+). Longer term, we are working on simplifying the process around supporting multiple provisioning profiles since it's a common use case, but I wanted to provide this example for others who might want to modify the Xcode build process that runs in Unity Cloud Build in some way.

    As some background, Unity Cloud Build relies on Fastlane for building Xcode projects (at least for Xcode 9+), so what is being added here is the ability to customize the Fastlane process when building in Unity Cloud Build. All of the configuration options are going to be very specific to Fastlane, so some basic familiarity with the toolset is helpful.

    The easiest way to describe what is available is probably by providing a basic example of how you might configure your project to build with multiple profiles currently. The following example assumes you are building an app with an application identifier of "com.unity3d.cloudbuild.base" and a stickers extension with an app identifier of "com.unity3d.cloudbuild.base.stickers".

    This setup currently requires adding three extra files to your repository:

    1. A JSON options file that controls the paths to your custom Fastfile/Gymfile and which lanes in the Fastfile should be run. This file can be placed wherever you want in the repo, but is placed at Assets/ucb_xcode_fastlane.json in this example. Supports the following properties (all of which are optional):
    • fastfile - a path to your custom Fastfile, relative to the root of your repository.
    • gymfile - a path to your custom Gymfile, relative to the root of your repository.
    • lanes - lanes within the Fastfile referenced above.
      • pre_build - lane to run before the actual Xcode build steps.
      • post_build - lane to run after the actual Xcode build steps.

    Example "Assets/ucb_xcode_fastlane.json":
    Code (JavaScript):
    1. {
    2.     "fastfile": "Assets/ucb/Fastfile",
    3.     "gymfile": "Assets/ucb/Gymfile",
    4.     "lanes": {
    5.         "pre_build": "use_stickers_profile",
    6.         "post_build": ""
    7.     }
    8. }

    2. A custom Fastfile to install the provisioning profile and update the provisioning settings in the Xcode project. This file can be placed wherever you want in the repo, but it needs to match the path of the "fastfile" specified in ucb_xcode_fastlane.json above.

    If you've configured pre_build/post_build lanes, an options hash is passed to those lanes when they run containing:
    * project_dir - root of the repo this project is building from.
    * build_target - build target identifier for this build.
    * output_directory - final output directory where the Xcode project will build to.

    In this example, we are installing the provisioning profile at "Assets/ucb/Stickers.mobileprovision" in the repo, and updating the "Unity-iPhone-Stickers" target in the Xcode project to use that profile.


    Example "Assets/ucb/Fastfile":
    Code (CSharp):
    1. lane :use_stickers_profile do |options|
    2.     profile_path = File.join(options[:project_dir], 'Assets/ucb/Stickers.mobileprovision')
    3.     FastlaneCore::ProvisioningProfile.install(profile_path)
    4.     update_project_provisioning(
    5.         xcodeproj: 'Unity-iPhone.xcodeproj',
    6.         target_filter: 'Unity-iPhone-Stickers',
    7.         profile: profile_path
    8.     )
    9. end

    3. A custom Gymfile to define the application identifier to provisioning profile mapping as part of customizing the export options. This file can be placed wherever you want in the repo, but it needs to match the path of the "gymfile" in ucb_xcode_fastlane.json above. For available options, see the fastlane docs.

    In this example, we are specifying that the "com.unity3d.cloudbuild.base.stickers" application identifier should map to a UUID of "1e33640e-9a55-4357-a632-ca6c48a53a96" (which is the UUID of the provisioning profile at "Assets/ucb/Stickers.mobileprovision").


    Example "Assets/ucb/Gymfile":
    Code (CSharp):
    1. export_options(
    2.     provisioningProfiles: {
    3.         "com.unity3d.cloudbuild.base.stickers" => "1e33640e-9a55-4357-a632-ca6c48a53a96"
    4.     }
    5. )

    All that's left is to update the Advanced Settings for your build target in the dashboard. Navigate to the iOS build target in the developer dashboard under "Config" and select "Edit Advanced Options" for the corresponding iOS build target. The option is called "Custom Fastlane Configuration Path", which is the path relative to the root of the project. In this example, you would set that as "Assets/ucb_xcode_fastlane.json".

    Screen Shot 2019-03-22 at 1.21.03 PM.png

    And that's it. Again, longer term we are working to simplify this process and make more of the Fastlane process customizable so if there is something specifically you want to see here please let us know.

    * Edited 3/22/19 to reflect updated workflow.
     
    Last edited: Mar 22, 2019
  2. hba_infinity

    hba_infinity

    Joined:
    May 30, 2016
    Posts:
    49
    Hey @dannyd ,

    Thanks for releasing this so we can get multiple provisioning profiles for iOS builds in Cloud Build.

    Now for the annoying part, I've followed the instructions above in a Unity project using the agens plugin and seem to be getting a Check Dependencies error. Further down, we also get the error

    From everything I have read up for fastlane and gym, it should be using the correct Provisioning Profile with the same development team as the one for our game as well.

    I have attached a couple of images of what Cloud Build is reporting.

    I have censored all the personal data from this image, but from my understanding, I am using the correct provisioning profiles, mapping them to the correct AppId and UUID. The correct Team_ID is also being used according to the codesign_identity.
    StickersError1.JPG.png

    Is there any help or things you can see which would be causing the error shown in the attached images?

    Thanks,

    hba
     

    Attached Files:

    Last edited: Aug 21, 2018
  3. dannyd

    dannyd

    Unity Technologies

    Joined:
    Jun 3, 2014
    Posts:
    785
    @hba_infinity - In general, that would suggest that target is set to use automatic signing rather than manual. We try to forcibly override all targets to use manual signing for this exact reason. Looking at your build log, it appears that you are running an "update_project_team" step in your custom lane - you almost certainly do NOT want that in there. Having the development team set is only relevant when using automatic signing.
     
  4. hba_infinity

    hba_infinity

    Joined:
    May 30, 2016
    Posts:
    49
    @dannyd Apologies about that, those screenshots were taken when playing around with Fastlane and attempting to get this to work. The original attempt definitely did not have "update_project_team" line in there, but still produced the same outcome.

    StickersError3.JPG.png

    From my understanding, from this first attempt, we were only using Automatic Signing, and our sticker pack is also using only Automatic Signing.

    Screenshot of our Unity Player Settings Identification area.
    StickersError5.JPG.png

    Screenshot of our Sticker Pack and using Automatic Signing
    StickersError4.JPG.png
     
  5. dannyd

    dannyd

    Unity Technologies

    Joined:
    Jun 3, 2014
    Posts:
    785
    @hba_infinity - I probably wasn't clear enough above. Unity Cloud Build can ONLY support manual signing (automatic signing would require being logged in to your Apple account which we obviously do not have credentials for). What does your "use_stickers_profile" lane look like? Does the profile being used for signing the stickers extension rely on the same certificate as the profile used to sign the app?
     
  6. hba_infinity

    hba_infinity

    Joined:
    May 30, 2016
    Posts:
    49
    @dannyd , I've double checked and the profile being used is the same one for both our main application and for the stickers.

    StickersError6.png

    The project xcode project file, .mobileprovision, and sticker names are (from everything I can see) correct, and seem to be linking up correctly.

    The Gymfile looks exactly like the example posted, but with the Application Identifier and UUID changed to be our personal values. The ucb_xcode_fastlane.json file also looks exactly like the one provided, but the Fastfile and Gymfile are located inside the same Assets/Editor/iOS/Fastlane folder as the mobileprovision.
     
  7. dannyd

    dannyd

    Unity Technologies

    Joined:
    Jun 3, 2014
    Posts:
    785
    @hba_infinity sorry for the slow response. I would uncheck "automatic signing" in the sticker pack for now. Will look for a proper fix and follow back up.
     
  8. dannyd

    dannyd

    Unity Technologies

    Joined:
    Jun 3, 2014
    Posts:
    785
    @hba_infinity - try adding this after the "update_project_provisioning" step in your custom lane:

     
  9. hba_infinity

    hba_infinity

    Joined:
    May 30, 2016
    Posts:
    49
    Hey @dannyd ,

    It seems like adding the 'disable_automatic_code_signing(path: 'Unity-iPhone.xcodeproj')' line seemed to fix the problem. Our Cloud Build is now set up and can build with stickers on iOS with the provided Provisioning Profile.

    Thanks for all the help, and we appreciate the work you and the rest of the Unity team is doing to get all these awesome features available in a not-so-painful way!
     
  10. hba_infinity

    hba_infinity

    Joined:
    May 30, 2016
    Posts:
    49
    Hey @dannyd,

    Apologies to bother again, but it seems there is another roadblock with adding Stickers to our project. This time it is during the submission process where we are getting the error

    From everything I can tell from Cloud Build, the Stickers pack is being Signed and Built correctly, although now it seems they are not being added to the final IPA.

    Any help on this matter would be appreciated.
     
  11. hba_infinity

    hba_infinity

    Joined:
    May 30, 2016
    Posts:
    49
    Hey @dannyd,

    Just thought I would provide some more information about the problem mentioned above. From what I can tell by exploring the ipa file from our built game with Stickers, it looks like Stickers are being included into the build and are signed correctly, the only problem is that the MessagesApplicationExtensionSupport folder inside the ipa is empty, to which I am not sure what should be added into there using Fastlane or Cloud Build.

    Here are some images of the structure of our ipa file -

    This is the folder structure of the main directory of the ipa folder. MessagesApplicationExtensionSupport folder is located here and is in the correct directory -
    ipaDirectory.JPG

    Unfortunately, there are no files inside the MessagesApplicationExtensionSupport folder.
    MessageAppSupportDirectory.JPG

    Just exploring the ipa, the Unity-iPhone-Stickers project has been built into the project using all the information we provided from the information in the original posts.
    StickerDirectory.JPG

    Any help on this issue would be appreciated.

    Thanks,

    hba
     
  12. dannyd

    dannyd

    Unity Technologies

    Joined:
    Jun 3, 2014
    Posts:
    785
    @hba_infinity - sorry for the slow response, I've been out of the office on leave (and am still out for a few weeks so unlikely to respond very quickly). I don't really have any more insight into what's going on there. Are you able to produce a working binary locally when manually archiving through Xcode? Might also be worth checking with the author of the plugin to see if they have any additional insight as they are likely much more familiar with the stickers process and potential pitfalls.
     
  13. unity_2CJsTDGbiKcAXw

    unity_2CJsTDGbiKcAXw

    Joined:
    Oct 8, 2018
    Posts:
    1
    всем привет, подскажите пожалуйста как мне к установленной Unity добавить еще одну платформу для сборки, которую ранее я посчитал не нужной скачивать
     
  14. hba_infinity

    hba_infinity

    Joined:
    May 30, 2016
    Posts:
    49
    @dannyd - I ended up finding out what the problem was, it wasn't anything on the Unity Cloud Build side and was actually a bug in the Stickers plugin we were using. I've got the creators of that plugin to fix it, so hopefully it is all aok on their end. Once that was updated, the build looked to have everything in order. Now to go through the iTunes Connect side of things again to face the next (inevitable) problem.

    Thanks for your help.
     
  15. GoodCatchUnity3

    GoodCatchUnity3

    Joined:
    Jun 13, 2018
    Posts:
    2
    Hello,
    Thank you for this thread, we are edging ever-closer to making use of UCB. We are now able to sign a sticker extension target in Xcode using UCB. Here a summary of issues and fixes. Hopefully it can help others.

    Initial setup
    -We are able to manually code-sign in a locally built project.
    -Auto-Signing is marked as off in Unity Proj settings. Profiles build fine on a manually signed local build (no scripts used for signing, needs manual adjusting).
    -Our target XCode version is 9.4. The Unity version used for the project is 2018.1.9f2, UCB is set to use the latest of 2018.1

    Fix 1
    Fix 2
    Fix 3
    Useful information can also be gathered from fastlane and gym forums that deal with XCode builds and auto-code signing but are not directly related to unity Cloud Build.

    Hope this helps,
    Thomas

    PS: it has also been an ordeal to post this message. The Forum keeps telling me that I am posting spam and the rules are not clear. Therefore some errors above are posted as keywords.
     
    Last edited: Nov 23, 2018
  16. vrobel-lte

    vrobel-lte

    Joined:
    Dec 23, 2018
    Posts:
    3
    @dannyd Our project build started failing for because it thinks I provided custom fastlane config. But in logs it provides empty path for that. It started happening after I added first CUSTOM_DEFINES. Log below. I'm signing with AppStore key if it helps in any way.

    Code (JavaScript):
    1. 3969: + Building with Xcode 10.1
    2. 3970: /BUILD_PATH/.rvm/gems/ruby-2.1.1/gems/fastimage-2.1.3/lib/fastimage.rb:68: warning: already initialized constant URI::DEFAULT_PARSER
    3. 3971: /BUILD_PATH/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/uri/common.rb:545: warning: previous definition of DEFAULT_PARSER was here
    4. 3972: Sending anonymous analytics information
    5. 3973: Learn more at https://docs.fastlane.tools/#metrics
    6. 3974: No personal or sensitive data is sent.
    7. 3975: You can disable this by adding `opt_out_usage` at the top of your Fastfile
    8. 3976: ----------------------------------------
    9. 3977: --- Step: Verifying fastlane version ---
    10. 3978: ----------------------------------------
    11. 3979: Your fastlane version 2.102.0 matches the minimum requirement of 2.0.0  ✅
    12. 3980: ------------------------------
    13. 3981: --- Step: default_platform ---
    14. 3982: ------------------------------
    15. 3983: Driving the lane 'ios build'
    16. 3984: Found user UCB fastlane options at
    17. 3985: +------------------+-----------+
    18. 3986: |         Lane Context         |
    19. 3987: +------------------+-----------+
    20. 3988: | DEFAULT_PLATFORM | ios       |
    21. 3989: | PLATFORM_NAME    | ios       |
    22. 3990: | LANE_NAME        | ios build |
    23. 3991: +------------------+-----------+
    24. 3992: Error in your Fastfile at line 62
    25. 3993:     60:        if user_fastlane_options_path && File.exists?(user_fastlane_options_path)
    26. 3994:     61:          puts "Found user UCB fastlane options at #{user_fastlane_options_filename}"
    27. 3995:  => 62:          user_fastlane_options = JSON.parse(File.read(user_fastlane_options_path))
    28. 3996:     63:          target_id = options[:build_target]
    29. 3997:     64:          if user_fastlane_options.has_key? target_id
    30. 3998: Is a directory @ io_fread - /BUILD_PATH/learn-teach-explore.shapes-labs.appstore-ios/
    31. 3999: +------+----------------------------+-------------+
    32. 4000: |                fastlane summary                 |
    33. 4001: +------+----------------------------+-------------+
    34. 4002: | Step | Action                     | Time (in s) |
    35. 4003: +------+----------------------------+-------------+
    36. 4004: | 1    | Verifying fastlane version | 0           |
    37. 4005: | 2    | default_platform           | 0           |
    38. 4006: +------+----------------------------+-------------+
    39. 4007: fastlane finished with errors
    40. 4008: Fastfile:62:in `read': [!] Is a directory @ io_fread - /BUILD_PATH/learn-teach-explore.shapes-labs.appstore-ios/ (Errno::EISDIR)
    41. 4009:     from Fastfile:62:in `block (2 levels) in parsing_binding'
    42. 4010:     from /BUILD_PATH/.rvm/gems/ruby-2.1.1/gems/fastlane-2.102.0/fastlane/lib/fastlane/lane.rb:33:in `call'
    43. 4011:     from /BUILD_PATH/.rvm/gems/ruby-2.1.1/gems/fastlane-2.102.0/fastlane/lib/fastlane/lane.rb:33:in `call'
    44. 4012:     from /BUILD_PATH/.rvm/gems/ruby-2.1.1/gems/fastlane-2.102.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
     
  17. vrobel-lte

    vrobel-lte

    Joined:
    Dec 23, 2018
    Posts:
    3
    I created a new config that is exactly the same as the last one and it built the project without any issues. So it looks like it saved an empty string as an config or a space or something like that.
     
  18. victorw

    victorw

    Joined:
    Sep 14, 2016
    Posts:
    459
    vrobel-lte likes this.
  19. firegate666

    firegate666

    Joined:
    Nov 20, 2015
    Posts:
    19
    Just stumbled across this awesome new feature since I recently updated.
    Thank you for this possibility!

    If I understand correctly, we need to push the provisioning profiles with our repository? Is it somewhere considered to make it more safe?
     
  20. HugoAtLion

    HugoAtLion

    Joined:
    Mar 25, 2020
    Posts:
    4
    I like to know is it possible to use this feature (costum prebuild process) to change Info.Plist. Like

    lane :handle_info_plist do
    set_info_plist_value(
    path: "Info.plist",
    key: "NSAppTransportSecurity",
    subkey: "NSAllowsArbitraryLoadsInWebContent",
    value: false
    )
    end

    and if it's possible to use upload_to_testflight in the post build process ?
     
  21. passerbycmc

    passerbycmc

    Joined:
    Feb 12, 2015
    Posts:
    1,741
    Is it possible to get some clarification to what paths are relative too?
    the OP say repository root, but then i see some stuff that looks like its based on the project root. These two things are often the same path but not always since it is possible to have the Unity project not be the repo root and define what folder it is in CloudBuild.
     
  22. Vecna

    Vecna

    Joined:
    Apr 2, 2014
    Posts:
    32
    I keep getting unexpected token at '{ (JSON::parserError) on my fastFile, what am I doing wrong?

    fastFile
    Code (CSharp):
    1. lane :build do
    2.   xcodeproj: 'Unity-iPhone.xcworkspace',
    3.  xcversion(version: "8.1")
    4. end

    fastlane.json
    Code (JavaScript):
    1. {
    2.     "fastfile": "Assets\Editor\Fastfile",
    3.     "lanes": {
    4.         "pre_build": "build",
    5.         "post_build": ""
    6.     }
    7. }
     
  23. victorw

    victorw

    Joined:
    Sep 14, 2016
    Posts:
    459
    \ is an escape character. Using / instead would work, or you could try using \\ (not sure if that's supported).
     
  24. passerbycmc

    passerbycmc

    Joined:
    Feb 12, 2015
    Posts:
    1,741
    so when needing to build with multiple Provisioning profiles, do i need to define both of them in my Fastfile and Gymfile, or just the additional one i am adding. I am still hitting problems in the signing stage, and these are what my FastFile and Gymfile look like.

    Fastfile:
    Code (csharp):
    1. lane :use_swrve_service_extension do |options|
    2.   profile_path = File.join(options[:project_dir], "AdHoc_ServiceExtension.mobileprovision")
    3.   FastlaneCore::ProvisioningProfile.install(profile_path)
    4.  
    5.   update_project_provisioning(
    6.     xcodeproj: 'Unity-iPhone.xcworkspace',
    7.     target_filter: 'SwrvePushExtension',
    8.     profile: profile_path
    9.   )
    10. end
    11.  
    Gymfile:
    Code (csharp):
    1. export_options(
    2.   provisioningProfiles: {
    3.     "com.company.product.ServiceExtension" => "1e33640e-9a55-4357-a632-ca6c48a53a96"
    4.   }
    5. )
    6.  
     
  25. victorw

    victorw

    Joined:
    Sep 14, 2016
    Posts:
    459
    You only need to define the provisioning profile that you will be using as your override for signing the extension. Is that Gymfile just an example of what it looks like, or are those the exact contents of the file? Because both the application identifier and the UUID are (presumably) wrong if that's exactly what it looks like.
     
  26. passerbycmc

    passerbycmc

    Joined:
    Feb 12, 2015
    Posts:
    1,741
    its the same file, i just removed any reference to the product this is for due to nda reasons.
    how can you tell if the UUID is wrong, that UUID i just got by opening the mobileprovision in a editor and finding the UUID inside of it
     
  27. victorw

    victorw

    Joined:
    Sep 14, 2016
    Posts:
    459
    The UUID you listed is the same UUID as the one given in the example at the top of the page.
     
  28. passerbycmc

    passerbycmc

    Joined:
    Feb 12, 2015
    Posts:
    1,741
    it seems missed a copy and past somewhere along the way, will see if that solves the issues thanks

    edit: it was correct for my main project just wrong uuid in my test one,
    going to try with the `disable_automatic_code_signing` bit next and see if that resolves my issues
     
    Last edited: Sep 15, 2020
  29. passerbycmc

    passerbycmc

    Joined:
    Feb 12, 2015
    Posts:
    1,741
    Am still getting failures but at this step
    Code (CSharp):
    1. 17629: ** ARCHIVE FAILED **
    2. 17630: The following build commands failed:
    3. 17631:     CompileC /BUILD_PATH/Library/Developer/Xcode/DerivedData/Unity-iPhone-diftyioiohhzokfmgtkitgsnrjlu/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/IntermediateBuildFilesPath/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Objects-normal/armv7/AppsFlyeriOSWrapper.o /BUILD_PATH/org.product.testbuild-ios/Game/temp20200915-6340-to3fm4/Libraries/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.mm normal armv7 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
    4. 17632: (1 failure)
    5. 17633: Exit status: 65
    6.  
    When building locally there are no problems, since anything that should be done is done in my PostProcessor, so i can just open in XCode and hit Archive

    Looking at the logs, it seems CloudBuild is trying to use XCode 11.4 while locally i am using 11.7
     
  30. nratcliff

    nratcliff

    Joined:
    Jul 5, 2014
    Posts:
    66
    Just stumbled on this thread while looking at ways to move our current CI workflow to Cloud Build. Is it possible to use produce and match during the pre_build lane to automate signing/provisioning profile management? We currently use both so that we don't need to touch App Store Connect for any of that stuff, plus we have a shared signing identity used across our team.
     
    mboyle likes this.
  31. tarmo-jussila

    tarmo-jussila

    Joined:
    Jun 4, 2015
    Posts:
    42
    Thanks for this guide @dannyd! I was able to automate our deployment pipeline from Unity Cloud Build to TestFlight with the hints provided here. It has saved us a lot of time.

    Currently I'm looking for a way to automate our deployment pipeline to Google Play for Android build targets. Fastlane provides pretty good documentation about the process for Android and Google Play. However, it seems the "Custom Fastlane Configuration Path" setting is not available on Android targets, so I can't directly use that to set up the build pipeline.

    Are there guides for setting up the Fastlane (Supply) pipeline for Google Play using Unity Cloud Build?
     
  32. ValeryNikulina

    ValeryNikulina

    Unity Technologies

    Joined:
    Oct 26, 2020
    Posts:
    138
    Hi! What Unity version are you using locally and in UCB?

    Also, do you use URP in your project?
     
  33. DrizzleGames

    DrizzleGames

    Joined:
    Apr 2, 2016
    Posts:
    16
    The Unity version is 2019.4.34f1 and I do not use URP. For reference, if it helps, here is my setup for these files. It should be extremely similar to what is demonstrated above:

    Fastfile
    Code (csharp):
    1. lane :use_stickers_profile do |options|
    2.     profile_path = File.join(options[:project_dir], 'Assets/Editor/CloudBuild/ProvisioningProfiles/ios_distribution/gutsy_stickers.mobileprovision')
    3.     FastlaneCore::ProvisioningProfile.install(profile_path)
    4.     update_project_provisioning(
    5.         xcodeproj: 'Unity-iPhone.xcodeproj',
    6.         target_filter: 'Unity-iPhone-Stickers',
    7.         profile: profile_path,
    8.     )
    9. end
    10.  
    Gymfile
    Code (csharp):
    1.  
    2. export_options(
    3.     provisioningProfiles: {
    4.         "com.drizzlegames.gutsy.stickers" => "###",
    5.         "com.drizzlegames.gutsy.stickers.dev" => "###"
    6.     }
    7. )
    ucb_xcode_fastlane.json
    Code (csharp):
    1.  
    2. {
    3.   "fastfile": "Assets/Editor/CloudBuild/Fastfile",
    4.   "gymfile": "Assets/Editor/CloudBuild/Gymfile",
    5.   "lanes": {
    6.     "pre_build": "use_stickers_profile",
    7.     "post_build": ""
    8.   }
    9. }
    10.  
     
  34. Sabre-Runner

    Sabre-Runner

    Joined:
    Mar 28, 2013
    Posts:
    6
    @dannyd Can you help with setting up Build Automation with just one provisioning profile?
    I followed the tutorial and inputted everything in the configuration. I'm trying to also set up auto upload but currently the export is failing in Fastlane on error 65 about firebase libraries not compiling.