如何使用fastlane的pilot将ios包上传到testflight并自动提交beta审核 通知测试人员 汇总

 

通过一些基础知识可以知道pilot是专门管理testflight打包审核的,但在百度搜索”pilot fastlane“搜不到完整命令如何写的。

所以在这篇进行一个中间人跳转。

 

https://www.jianshu.com/p/eafa2fa37c1b 《 iOS项目的 fastlane / jenkins 实践》这篇博客里有fastlane上传testflight并提交beta审核的命令。

 

 

补充一下文章里面的代码,

自定义文件位置 lane :build_appstore下面添加

 output_directory: './testflight',
 output_name: 'TestDemo.ipa'

然后  lane :upload_testflight下面的

ipa: "XXX"   改为 ipa: "testflight/TestDemo.ipa"

 

 

上传失败的经历:

0.要给终端完全磁盘权限,部分文件夹也需要chmod 777

1.工程的证书配置是测试的,手动设置,fastlane里面是生产的。导致上传失败。

2.fastlane里面没设置版本号,导致在工程里面改了版本号也会被fastlane变成1

3.上传testflight,要把忽略截图写上

4.双重认证设置

5.beta_app_review_info。value must be a Hash! Found String instead. 去掉这个字段

6.false不要拼错 

7 Could not set beta_app_feedback_email and/or beta_app_description: Server error got 504

8.家里的长城宽带,传8次7次503,504。

在公司联通LTE网,不行,等不了200k

在家里联通LTE网慢点,但没报错。

在家里电信4G网快,但经常报错,443或者读取ipa错误。

9.FASTLANE_XCODEBUILD_SETTINGS_RETRIES 设置大点 经常报超时

10.[Transporter Error Output]: An exception has occurred: Broken pipe (Write failed)

 

最终我完善后的fastlane命令是,可以提交testflight审核,提测,通知测试人员

  # -------------- testflight -------------- #
  desc "Build and upload a PROD app to TestFlight"
  lane :release_testflight do
        build_appstore
        upload_testflight
  end

  lane :build_appstore do
        increment_build_number_in_plist(
            target: '~~~~~',
            build_number: '1.0.4.444444'
        )

        increment_version_number_in_plist(
            target: '~~~~~~~',
            version_number: '1.0.3'
        )
        gym(
              configuration: "Release",
              scheme: "~~~~~~~",
              clean: true,
              include_bitcode: true,
              include_symbols: true,
              export_method: 'app-store',
              export_xcargs: "-allowProvisioningUpdates",
              output_directory: './testflightNew',
              output_name: 'TestDemo.ipa'
        )
  end

  lane :upload_testflight do

        upload_to_testflight(

           beta_app_review_info: {
            contact_email: "111@qq.com",
            contact_first_name: "ww",
            contact_last_name: "分",
            contact_phone: "123",
            demo_account_name: "123",
            demo_account_password: "111",
            notes: "适用于fastlane自动打包上传提审等操作 thank you for reviewing"
          },
          localized_build_info: {
            "default": {
              whats_new: "适用于fastlane自动打包上传提审等操作",
            },
            "en-GB": {
              whats_new: "适用于fastlane自动打包上传提审等操作",
            }
          },

        #  true就不自动提审了
            skip_waiting_for_build_processing: false,
            skip_submission:false,
            username: "123@qq.com",
            app_identifier: "com.123",
            beta_app_feedback_email:"123@qq.com",
            beta_app_description:"适用于fastlane自动打包上传提审等操作",
            demo_account_required: true,
        #构建是否应该分发给外部测试人员?
            distribute_external: true,
              notify_external_testers: true,
            groups:"122222",
            changelog:"适用于fastlane自动打包上传提审等操作",
            beta_app_feedback_email:"22222@qq.com",
                 ipa: "testflightNew/TestDemo.ipa"
        )

  end
  # -------------- testflight -------------- #

 

 

在官网有这些字段的介绍

https://docs.fastlane.tools/actions/testflight/

Key Description Default
username Your Apple ID Username *
app_identifier The bundle identifier of the app to upload or manage testers (optional) *
app_platform The platform to use (optional) ios
apple_id Apple ID property in the App Information section in App Store Connect *
ipa Path to the ipa file to upload *
demo_account_required Do you need a demo account when Apple does review? false
beta_app_review_info Beta app review information for contact info and demo account  
localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy  
beta_app_description Provide the 'Beta App Description' when uploading a new build  
beta_app_feedback_email Provide the beta app email when uploading a new build  
localized_build_info Localized beta app test info for what's new  
changelog Provide the 'What to Test' text when uploading a new build. skip_waiting_for_build_processing: false is required to set the changelog  
skip_submission Skip the distributing action of pilot and only upload the ipa file false
skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false
update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false
uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false
distribute_external Should the build be distributed to external testers? false
notify_external_testers Should notify external testers? true
first_name The tester's first name  
last_name The tester's last name  
email The tester's email  
testers_file_path Path to a CSV file of testers ./testers.csv
groups Associate tester to one group or more by group name / group id. E.g. -g "Team 1","Team 2"  
team_id The ID of your App Store Connect team if you're in multiple teams *
team_name The name of your App Store Connect team if you're in multiple teams *
dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! *
itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off. The short names of providers should be listed in the second column  
wait_processing_interval Interval in seconds to wait for App Store Connect processing 30
wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false
reject_build_waiting_for_review Expire previous if it's 'waiting for review' false

 

 

 

 

 

 

 

上一篇:IDL8.3 ENVI 5.1安装


下一篇:IDL语言简明教程