使用Circle.CI和FastLane导入.ProvisionProfile

问题描述:

对于我的个人项目,我使用Circle.ci来测试和部署OSX应用程序(通过上载挂钩到S3,将其分发到AppStore之外 - 使用与开发人员签署的ID分配方法)。我正在使用FastLane构建应用程序,该应用程序在从本地终端进行构建时运行良好,但在使用CI服务器时无法通过代码签名步骤。使用Circle.CI和FastLane导入.ProvisionProfile

这个问题很简单,钥匙串不会导入提供的个人资料,我可以从构建前阶段告诉:

1 key imported. 
No provisioning profiles found in repository. 
You must add a provisioning profile to your repository 
to enable CircleCI code-signing support. 

Currently installed Code-Signing identities: 

Policy: Code Signing 
    Matching identities 
    0 identities found 

    Valid identities only 
    0 valid identities found 

我有我的私钥和证书的.p12上传到存储库,没有问题。我还将.provisionprofile添加到存储库(根目录,甚至是不同的位置),但无济于事。该文档指出(https://circleci.com/docs/ios-code-signing/)需要.mobileprovision,但只涵盖iOS,而不是OSX,而​​系统应该几乎相同,所以我认为它也可以。

因此,TLDR的问题是:如何在Circle.CI中导入OSX发行版的配置文件,以便钥匙串接受该条目?还是有办法绕过它 - 就像跳过签名步骤(在XCode中禁用它)并用一些.sh手动签名它?

谢谢大家!

我将使用CircleCI部署iOS应用程序的经验分享给Testflight。也许这有帮助。

  1. 将提供配置文件放入项目目录的根目录中。确保它是一个普通的“分发配置文件”而不是App Store提交配置文件。

  2. 只需在CircleCI的项目设置中添加.p12键即可。从存储库中删除所有其他证书/ .p12文件。

  3. 我试过使用fastlane来构建和分发构建,但它在CircleCI中失败。我在Fastfile测试版环境中执行了这三个步骤。

increment_build_number gym(scheme: "myScheme”) pilot

我改变了只是
increment_build_number

  1. 我的圈子CI文件

    machine: 
    
        environment: 
         GYM_CODE_SIGNING_IDENTITY: "iPhone Distribution: Company Name (XXXXXX)" 
    
        xcode: 
         version: "8.0" 
    
    test: 
        override: 
         - set -o pipefail && xcodebuild -workspace 'my.xcworkspace' -scheme 'myscheme' clean build test -sdk iphonesimulator -destination 'id=AC291080-8EFE-4095-8C55-B1E952EFFC36' CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= PROVISIONING_PROFILE= 
    
    dependencies: 
        pre: 
         - gem update fastlane 
    
    deployment: 
        beta_distribution: 
         branch: master 
         commands: 
          - fastlane beta  
          - gym --scheme "myscheme" --workspace "my.xcworkspace" --export_method app-store --use_legacy_build_api false  
          - pilot upload 
    
开始=>
+0

不幸的是,这不解决t不过,他感谢你的配置。我有很多基于iOS的Circle.CI项目,它们工作正常,没有问题。虽然OSX版本有一个区别 - Circle.CI找不到OSX的配置文件(对于iOS,您有.mobileprovision,而对于OSX,您有.provisionprofile)。 –