Skip to content

To release or reject iOS app version that App store connect status is "Pending developer release".

License

Notifications You must be signed in to change notification settings

andrew54068/fastlane-plugin-taiwan_number_one

Repository files navigation

taiwan_number_one plugin

fastlane Plugin Badge

Getting Started

This project is a fastlane plugin. To get started with fastlane-plugin-taiwan_number_one, add it to your project by running:

fastlane add_plugin taiwan_number_one

Start from v0.2.7 we use this workaround to solve issue while using App Store Connect Api key.

About taiwan_number_one

To approve or reject if status is Pending Developer Release, otherwise do nothing.

This feature is requsted for a while:

Release app using fast lane (change status from "Pending Developer Release" to released fastlane/fastlane#11842

Ability to "Release This Version" from "Pending Developer Release" fastlane/fastlane#3481

Cancel "Pending developer release"? https://developer.apple.com/forums/thread/53463

deliver not updating version number if app Pending Developer Release fastlane/fastlane#14154

[Deliver] - Not able to reject the app version which is in Pending Developer Release fastlane/fastlane#17539

Usage

Install plugin for fastlane

install instructions

bundle exec fastlane add_plugin taiwan_number_one

but I personally prefer adding plugin in Gemfile like this to avoid additional Pluginfile in ~'your_ios_project_dir'/fastlane

bundle add fastlane-plugin-taiwan_number_one
Show info
bundle exec fastlane action taiwan_number_one
Use in a Fastfile

you can create a custom lane like this:

desc "handle app release decision"
lane :release_decision do |options|
  taiwan_number_one(
    username: username,
    app_identifier: app_identifier,
    app_decision: options[:app_decision],
    api_key: api_key
  )
end

and this:

desc "release App store version"
lane :release_app do
  result = release_decision(app_decision: Fastlane::Actions::TaiwanNumberOneAction::DecisionType::RELEASE)
  if result == Fastlane::Actions::TaiwanNumberOneAction::ActionResult::SUCCESS
    # do your thing here!
  end
end

or this:

desc "reject App store version"
lane :reject_app do
  api_key = app_store_connect_api_key(
    key_id: ENV["ASC_API_KEY_ID"],
    issuer_id: ENV["ISSUER_ID"],
    key_content: ENV["ASC_API_KEY"]
  )
  release_decision(app_decision: Fastlane::Actions::TaiwanNumberOneAction::DecisionType::REJECT)
end

*for more info about app_store_connect_api_key, please refer to here and here

Since there might have some problem in reject_if_possible of Deliver, so it's better to call this Action before Deliver everytime.

something like this:

desc "build and upload production app with info to App Store Connet"
lane :upload_production_and_testFlight do |options|
  ...
  release_decision(app_decision: options[:app_decision])
  deliver(...)
  ...
end

or

release_decision(app_decision: Fastlane::Actions::TaiwanNumberOneAction::DecisionType::RELEASE)

release_decision(app_decision: Fastlane::Actions::TaiwanNumberOneAction::DecisionType::REJECT)

Use in terminal

Run taiwan_number_one to release or reject only when the reviewed version status is Pending Developer Release, otherwise do nothing.

bundle exec fastlane release_decision app_decision:"reject" username:"your apple id" app_identifier:"bundle id"
bundle exec fastlane release_decision app_decision:"release" username:"your apple id" app_identifier:"bundle id"
Default values

taiwan_number_one has a default release app_decision, which allow you to release the Pending Developer Release version when you don’t provide a specific app_decision value.

Parameters

Key Description Default
app_decision A description of your decision, should be release or reject. release
username Your Apple ID Username
app_identifier The bundle identifier of your app
team_id The ID of your App Store Connect team if you're in multiple teams. (optional)
team_name The name of your App Store Connect team if you're in multiple teams. (optional)
api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)

Action Return

Fastlane::Actions::TaiwanNumberOneAction::ActionResult::SUCCESS or Fastlane::Actions::TaiwanNumberOneAction::ActionResult::DO_NOTHING

Run tests for this plugin

Not supported right now.

Issues and Feedback

For any other issues and feedback about this plugin, please submit it to this repository.

Troubleshooting

If you have trouble using plugins, check out the Plugins Troubleshooting guide.

Using fastlane Plugins

For more information about how the fastlane plugin system works, check out the Plugins documentation.

About fastlane

fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out fastlane.tools.

Contributing

Simply create a PR. I'll take a look as soon as possible.

Contact

[email protected]

About

To release or reject iOS app version that App store connect status is "Pending developer release".

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages