通过CircleCI fastlane部署进行内部测试,无法在iTunes Connect上构建

时间:2017-08-02 21:37:16

标签: ios react-native itunesconnect testflight fastlane

我目前正在尝试使用Fastlane通过CircleCI为React-Native应用程序设置iOS部署,而我遇到的问题是我的fastlane脚本中的pilot,我将构建上传到iTunes连接,但构建从用于TestFlight内部测试器消失。如果我在本地存档并将构建内容上传到iTunes Connect,它将可用于测试。

我的Fastfile,使用版本2.51.0

platform :ios do
  lane :deploy_staging do
    match(
      type: "adhoc",
      force: true
    )

    increment_build_number(
      xcodeproj: './ios/MyApp.xcodeproj'
    )

    gym(
      export_method: "ad-hoc",
      scheme: "MyApp Staging",
      project: "./ios/MyApp.xcodeproj"
    )
    pilot(
      skip_submission: false,
      distribute_external: false,
    )

    clean_build_artifacts
    git_add(
      path: '.'
    )
    git_commit(
      path: '.',
      message: "Deployed new staging version #{lane_context[SharedValues::BUILD_NUMBER]} [skip ci]",
    )
    push_to_git_remote(
      local_branch: ENV["CIRCLE_BRANCH"],
      remote_branch: ENV["CIRCLE_BRANCH"]
    )
  end
end

我的circle.yml

machine:
  environment:
    PATH: '$PATH:$HOME/node/node-v8.1.3-darwin-x64/bin'
  xcode:
    version: 8.3.3

dependencies:
  cache_directories:
    - $HOME/node
  pre:
    - "ls \"$HOME/node/node-v8.1.3-darwin-x64\" || mkdir \"$HOME/node\""
    - "ls \"$HOME/node/node-v8.1.3-darwin-x64\" || curl -L \"https://nodejs.org/dist/v8.1.3/node-v8.1.3-darwin-x64.tar.gz\" -o \"$HOME/node/node-v8.1.3-darwin-x64.tar.gz\""
    - "ls \"$HOME/node/node-v8.1.3-darwin-x64\" || tar -xzf \"$HOME/node/node-v8.1.3-darwin-x64.tar.gz\" -C \"$HOME/node/\""
    - "rm -f \"$HOME/node/node-v8.1.3-darwin-x64.tar.gz\""
  override:
    - npm install -g react-native-cli
    - npm install

test:
  override:
    - npm test
  post:
    - mkdir -p $CIRCLE_TEST_REPORTS/junit/
    - find . -type f -regex ".*/test_out/.*xml" -exec cp {} $CIRCLE_TEST_REPORTS/junit/ \;

deployment:
  pre:
    - gem install fastlane
  staging:
    branch: staging
    commands:
      - npm run build:ios
      - fastlane deploy_staging

CircleCI测试的输出

CircleCI results

在iTunes Connect上构建完成的处理

iTunes Connect

在TestFlight选项卡上构建不可用(不可见)

TestFlight

我尝试通过使用相同的证书和配置文件在本地存档来调试它,但它上传成功,我可以在TestFlight上分发给内部测试人员。

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

找到了解决此问题的解决方案。

两个部分似乎有助于解决它

  1. 将使用的个人资料从adhoc更改为appstore

    一个。我必须通过匹配生成appstore配置文件:

     fastlane match appstore -a com.myapp.app.staging
    
  2. include_symbolsinclude_bitcode添加到我的gym构建参数中。

  3. 处理花费的时间比平时长,但在处理之后,它会返回到pilot识别它的构建列表,并将其发布到TestFlight。

    我的新Fastfile:

      lane :deploy_staging do    
        match(
          type: "appstore"
        )
    
        increment_build_number(
          xcodeproj: './ios/MyApp.xcodeproj'
        )
    
        gym(
          include_symbols: true,
          include_bitcode: true,
          export_method: "app-store",
          scheme: "MyApp Staging",
          project: "./ios/MyApp.xcodeproj"
        ) # Build your app - more options available
    
        pilot
    
        clean_build_artifacts
        git_add(
          path: '.'
        )
        git_commit(
          path: '.',
          message: "Deployed new staging version #{lane_context[SharedValues::BUILD_NUMBER]} [skip ci]",
        )
        push_to_git_remote(
          local_branch: ENV["CIRCLE_BRANCH"],
          remote_branch: ENV["CIRCLE_BRANCH"]
        )
    
      end