diff --git a/README.md b/README.md
index ef47686..4025d13 100644
--- a/README.md
+++ b/README.md
@@ -33,8 +33,6 @@
 
 Codecov's Action currently supports five inputs from the user: `token`, `file`, `flags`,`name`, and `fail_ci_if_error`. These inputs, along with their descriptions and usage contexts, are listed in the table below:
 
->**Update**: We've removed the `yml` parameter with the latest release of this action. Please put your custom codecov yaml file at the root of the repo because other locations will no longer be supported in the future.
-
 | Input  | Description | Usage |
 | :---:     |     :---:   |    :---:   |
 | `token`  | Used to authorize coverage report uploads  | *Required for private repos* |
@@ -47,6 +45,9 @@
 | `fail_ci_if_error`  | Specify if CI pipeline should fail when Codecov runs into errors during upload. *Defaults to **false*** | Optional
 | `path_to_write_report` | Write upload file to path before uploading | Optional
 | `verbose` | Specify whether the Codecov output should be verbose | Optional
+| `working-directory` | Directory in which to execute `codecov.sh` | Optional
+| `xcode_derived_data` | Custom Derived Data Path for Coverage.profdata and gcov processing | Optional
+| `xcode_package` | Specify packages to build coverage. Uploader will only build these packages. This can significantly reduces time to build coverage reports. -J 'MyAppName' Will match "MyAppName" and "MyAppNameTests" -J '^ExampleApp$' Will match only "ExampleApp" not "ExampleAppTests" | Optional
 
 ### Example `workflow.yml` with Codecov Action
 
diff --git a/action.yml b/action.yml
index fb6c391..106a666 100644
--- a/action.yml
+++ b/action.yml
@@ -32,6 +32,9 @@
   verbose:
     description: 'Specify whether the Codecov output should be verbose'
     required: false
+  working-directory:
+    description: 'Directory in which to execute codecov.sh'
+    required: false
 branding:
   color: 'red'
   icon: 'umbrella'
diff --git a/index.js b/index.js
index f15e76e..2aea6a8 100644
--- a/index.js
+++ b/index.js
@@ -14,6 +14,9 @@
   const dir = core.getInput("directory");
   const write_path = core.getInput("path_to_write_report");
   const verbose = core.getInput("verbose");
+  const working_dir = core.getInput("working-directory");
+  const xcode_derived_data = core.getInput("xcode_derived_data");
+  const xcode_package = core.getInput("xcode_package");
 
   fail_ci = core.getInput("fail_ci_if_error").toLowerCase();
 
@@ -135,6 +138,22 @@
           );
         }
 
+        if (working_dir) {
+          options.cwd = working_dir;
+        }
+
+        if (xcode_derived_data) {
+          execArgs.push(
+            "-D", `${xcode_derived_data}`
+          );
+        }
+
+        if (xcode_package) {
+          execArgs.push(
+            "-J", `${xcode_package}`
+          );
+        }
+
         exec.exec("bash", execArgs, options)
           .catch(err => {
             if (fail_ci) {
diff --git a/package-lock.json b/package-lock.json
index 36e9141..b8d442f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "codecov-action",
-  "version": "1.0.14",
+  "version": "1.0.15",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -988,9 +988,9 @@
       }
     },
     "@types/jest": {
-      "version": "26.0.15",
-      "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz",
-      "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==",
+      "version": "26.0.19",
+      "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.19.tgz",
+      "integrity": "sha512-jqHoirTG61fee6v6rwbnEuKhpSKih0tuhqeFbCmMmErhtu3BYlOZaXWjffgOstMM4S/3iQD31lI5bGLTrs97yQ==",
       "requires": {
         "jest-diff": "^26.0.0",
         "pretty-format": "^26.0.0"
@@ -4634,9 +4634,9 @@
       }
     },
     "requestretry": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-4.1.1.tgz",
-      "integrity": "sha512-sV2lkWitASDXpIK+m0scC7dHBkW42EKj5iao6Cp8GCXsXY7qS4Q/min6PP5YBuqgV9W38lsA7LUhEkOezl1/Og==",
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-4.1.2.tgz",
+      "integrity": "sha512-N1WAp+8eOy8NfsVBChcSxNCKvPY1azOpliQ4Sby4WDe0HFEhdKywlNZeROMBQ+BI3Jpc0eNOT1KVFGREawtahA==",
       "requires": {
         "extend": "^3.0.2",
         "lodash": "^4.17.15",
@@ -5384,9 +5384,9 @@
       }
     },
     "typescript": {
-      "version": "4.0.5",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz",
-      "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ=="
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz",
+      "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ=="
     },
     "union-value": {
       "version": "1.0.1",
diff --git a/package.json b/package.json
index b2ee917..874b944 100644
--- a/package.json
+++ b/package.json
@@ -24,15 +24,15 @@
   "dependencies": {
     "@actions/core": "^1.2.6",
     "@actions/exec": "^1.0.4",
-    "@types/jest": "^26.0.15",
+    "@types/jest": "^26.0.19",
     "@zeit/ncc": "^0.22.3",
     "fs": "0.0.1-security",
     "jest": "^26.6.3",
     "jest-junit": "^12.0.0",
     "request": "^2.88.2",
-    "requestretry": "^4.1.1",
+    "requestretry": "^4.1.2",
     "ts-jest": "^26.4.4",
-    "typescript": "^4.0.5",
+    "typescript": "^4.1.2",
     "yarn": "^1.22.10"
   },
   "devDependencies": {}
