Add support for aarch64-apple-ios-sim (#1304)

This adds / improves support for for the arm64 iOS simulator that's used
on M1 macs. Previously there was ambiguity in the constraints used for
this platform because bazel does not pick the best match, so this adds
the device constraint in this case to disambiguate. Ideally we could
rely on not having the `sim` suffix to be enough to add the device
constraint, but older triples like `x86_64-apple-ios` break this
pattern. I broke this logic out into a new function since it relies on
more info from the triple than just the ABI now.

https://github.com/bazelbuild/bazel/issues/11454

Co-authored-by: UebelAndre <github@uebelandre.com>
diff --git a/docs/crate_universe.md b/docs/crate_universe.md
index cf5d14e..ff0026e 100644
--- a/docs/crate_universe.md
+++ b/docs/crate_universe.md
@@ -283,7 +283,7 @@
 | <a id="crates_repository-rust_toolchain_rustc_template"></a>rust_toolchain_rustc_template |  The template to use for finding the host <code>rustc</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), <code>{cfg}</code> (eg. 'exec'), and <code>{tool}</code> (eg. 'cargo.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}//:bin/{tool}" |
 | <a id="crates_repository-rust_version"></a>rust_version |  The version of Rust the currently registered toolchain is using. Eg. <code>1.56.0</code>, or <code>nightly-2021-09-08</code>   | String | optional | "1.60.0" |
 | <a id="crates_repository-splicing_config"></a>splicing_config |  The configuration flags to use for splicing Cargo maniests. Use <code>//crate_universe:defs.bzl\%rsplicing_config</code> to generate the value for this field. If unset, the defaults defined there will be used.   | String | optional | "" |
-| <a id="crates_repository-supported_platform_triples"></a>supported_platform_triples |  A set of all platform triples to consider when generating dependencies.   | List of strings | optional | ["i686-apple-darwin", "i686-pc-windows-msvc", "i686-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-linux-android", "i686-unknown-freebsd", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd"] |
+| <a id="crates_repository-supported_platform_triples"></a>supported_platform_triples |  A set of all platform triples to consider when generating dependencies.   | List of strings | optional | ["i686-apple-darwin", "i686-pc-windows-msvc", "i686-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-linux-android", "i686-unknown-freebsd", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd"] |
 
 
 <a id="#crates_vendor"></a>
@@ -357,7 +357,7 @@
 | <a id="crates_vendor-packages"></a>packages |  A set of crates (packages) specifications to depend on. See [crate.spec](#crate.spec).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="crates_vendor-repository_name"></a>repository_name |  The name of the repository to generate for <code>remote</code> vendor modes. If unset, the label name will be used   | String | optional | "" |
 | <a id="crates_vendor-splicing_config"></a>splicing_config |  The configuration flags to use for splicing Cargo maniests. Use <code>//crate_universe:defs.bzl\%rsplicing_config</code> to generate the value for this field. If unset, the defaults defined there will be used.   | String | optional | "" |
-| <a id="crates_vendor-supported_platform_triples"></a>supported_platform_triples |  A set of all platform triples to consider when generating dependencies.   | List of strings | optional | ["i686-apple-darwin", "i686-pc-windows-msvc", "i686-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-linux-android", "i686-unknown-freebsd", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd"] |
+| <a id="crates_vendor-supported_platform_triples"></a>supported_platform_triples |  A set of all platform triples to consider when generating dependencies.   | List of strings | optional | ["i686-apple-darwin", "i686-pc-windows-msvc", "i686-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-linux-android", "i686-unknown-freebsd", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd"] |
 | <a id="crates_vendor-vendor_path"></a>vendor_path |  The path to a directory to write files into. Absolute paths will be treated as relative to the workspace root   | String | optional | "crates" |
 
 
diff --git a/examples/crate_universe/cargo_aliases/Cargo.Bazel.lock b/examples/crate_universe/cargo_aliases/Cargo.Bazel.lock
index ea1d68d..419adad 100644
--- a/examples/crate_universe/cargo_aliases/Cargo.Bazel.lock
+++ b/examples/crate_universe/cargo_aliases/Cargo.Bazel.lock
@@ -1,5 +1,5 @@
 {
-  "checksum": "9ad48990a8663e815687344f038d7a5f809b2c5697e6bc0c5743814b0602587f",
+  "checksum": "4db863fcdc1f3dee93107cadf3262fa2c3a004faf707a8765b083a653da41b12",
   "crates": {
     "aho-corasick 0.7.18": {
       "name": "aho-corasick",
@@ -150,7 +150,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -269,13 +269,13 @@
       },
       "license": "MIT/Apache-2.0"
     },
-    "clap 3.1.8": {
+    "clap 3.1.12": {
       "name": "clap",
-      "version": "3.1.8",
+      "version": "3.1.12",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/clap/3.1.8/download",
-          "sha256": "71c47df61d9e16dc010b55dba1952a57d8c215dbb533fd13cdd13369aac73b1c"
+          "url": "https://crates.io/api/v1/crates/clap/3.1.12/download",
+          "sha256": "7c167e37342afc5f33fd87bbc870cedd020d2a6dffa05d45ccd9241fbdd146db"
         }
       },
       "targets": [
@@ -320,6 +320,10 @@
               "target": "bitflags"
             },
             {
+              "id": "clap_lex 0.1.1",
+              "target": "clap_lex"
+            },
+            {
               "id": "indexmap 1.8.1",
               "target": "indexmap"
             },
@@ -328,10 +332,6 @@
               "target": "lazy_static"
             },
             {
-              "id": "os_str_bytes 6.0.0",
-              "target": "os_str_bytes"
-            },
-            {
               "id": "strsim 0.10.0",
               "target": "strsim"
             },
@@ -356,7 +356,7 @@
           ],
           "selects": {}
         },
-        "version": "3.1.8"
+        "version": "3.1.12"
       },
       "license": "MIT OR Apache-2.0"
     },
@@ -406,11 +406,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -421,6 +421,48 @@
       },
       "license": "MIT OR Apache-2.0"
     },
+    "clap_lex 0.1.1": {
+      "name": "clap_lex",
+      "version": "0.1.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/clap_lex/0.1.1/download",
+          "sha256": "189ddd3b5d32a70b35e7686054371742a937b0d99128e76dde6340210e966669"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "clap_lex",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "clap_lex",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "os_str_bytes 6.0.0",
+              "target": "os_str_bytes"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
     "ctor 0.1.22": {
       "name": "ctor",
       "version": "0.1.22",
@@ -452,11 +494,11 @@
         "deps": {
           "common": [
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -579,7 +621,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ]
@@ -696,7 +738,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             }
           ],
@@ -848,13 +890,13 @@
       },
       "license": "MIT/Apache-2.0"
     },
-    "libc 0.2.122": {
+    "libc 0.2.125": {
       "name": "libc",
-      "version": "0.2.122",
+      "version": "0.2.125",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.122/download",
-          "sha256": "ec647867e2bf0772e28c8bcde4f0d19a9216916e890543b5a03ed8ef27b8f259"
+          "url": "https://crates.io/api/v1/crates/libc/0.2.125/download",
+          "sha256": "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"
         }
       },
       "targets": [
@@ -891,14 +933,14 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "build_script_build"
             }
           ],
           "selects": {}
         },
         "edition": "2015",
-        "version": "0.2.122"
+        "version": "0.2.125"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -1145,7 +1187,7 @@
         "deps": {
           "common": [
             {
-              "id": "clap 3.1.8",
+              "id": "clap 3.1.12",
               "target": "clap"
             },
             {
@@ -1229,7 +1271,7 @@
         "deps": {
           "common": [
             {
-              "id": "clap 3.1.8",
+              "id": "clap 3.1.12",
               "target": "clap"
             },
             {
@@ -1282,19 +1324,8 @@
           "**"
         ],
         "crate_features": [
-          "default",
-          "memchr",
           "raw_os_str"
         ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            }
-          ],
-          "selects": {}
-        },
         "edition": "2018",
         "version": "6.0.0"
       },
@@ -1393,11 +1424,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -1482,7 +1513,7 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             }
           ],
@@ -1574,13 +1605,13 @@
       },
       "license": "MIT OR Apache-2.0"
     },
-    "quote 1.0.17": {
+    "quote 1.0.18": {
       "name": "quote",
-      "version": "1.0.17",
+      "version": "1.0.18",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/quote/1.0.17/download",
-          "sha256": "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
+          "url": "https://crates.io/api/v1/crates/quote/1.0.18/download",
+          "sha256": "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
         }
       },
       "targets": [
@@ -1616,7 +1647,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.0.17"
+        "version": "1.0.18"
       },
       "license": "MIT OR Apache-2.0"
     },
@@ -1671,7 +1702,7 @@
           "selects": {
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ]
@@ -1904,13 +1935,13 @@
       },
       "license": "MIT"
     },
-    "syn 1.0.91": {
+    "syn 1.0.92": {
       "name": "syn",
-      "version": "1.0.91",
+      "version": "1.0.92",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/syn/1.0.91/download",
-          "sha256": "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
+          "url": "https://crates.io/api/v1/crates/syn/1.0.92/download",
+          "sha256": "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52"
         }
       },
       "targets": [
@@ -1961,11 +1992,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "build_script_build"
             },
             {
@@ -1976,7 +2007,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.0.91"
+        "version": "1.0.92"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -2509,6 +2540,7 @@
     "cfg(unix)": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
diff --git a/examples/crate_universe/cargo_workspace/Cargo.Bazel.lock b/examples/crate_universe/cargo_workspace/Cargo.Bazel.lock
index 676a97c..8123470 100644
--- a/examples/crate_universe/cargo_workspace/Cargo.Bazel.lock
+++ b/examples/crate_universe/cargo_workspace/Cargo.Bazel.lock
@@ -1,5 +1,5 @@
 {
-  "checksum": "8821fea6b6cb36398a73044fedda8c07079cb7805c4da2f713c515329d157060",
+  "checksum": "0e1cf60cfb70bf002c6db0504a6cfeb73938d3f34220fe052eea2644769eea56",
   "crates": {
     "ansi_term 0.12.1": {
       "name": "ansi_term",
@@ -84,7 +84,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -389,7 +389,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ]
@@ -439,7 +439,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             }
           ],
@@ -450,13 +450,13 @@
       },
       "license": "MIT/Apache-2.0"
     },
-    "libc 0.2.122": {
+    "libc 0.2.125": {
       "name": "libc",
-      "version": "0.2.122",
+      "version": "0.2.125",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.122/download",
-          "sha256": "ec647867e2bf0772e28c8bcde4f0d19a9216916e890543b5a03ed8ef27b8f259"
+          "url": "https://crates.io/api/v1/crates/libc/0.2.125/download",
+          "sha256": "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"
         }
       },
       "targets": [
@@ -493,14 +493,14 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "build_script_build"
             }
           ],
           "selects": {}
         },
         "edition": "2015",
-        "version": "0.2.122"
+        "version": "0.2.125"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -683,7 +683,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ]
@@ -1383,6 +1383,7 @@
     "cfg(not(target_os = \"emscripten\"))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -1406,6 +1407,7 @@
     "cfg(not(windows))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -1436,6 +1438,7 @@
     "cfg(unix)": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
diff --git a/examples/crate_universe/extra_workspace_members/Cargo.Bazel.lock b/examples/crate_universe/extra_workspace_members/Cargo.Bazel.lock
index 4b3e538..e77cbfe 100644
--- a/examples/crate_universe/extra_workspace_members/Cargo.Bazel.lock
+++ b/examples/crate_universe/extra_workspace_members/Cargo.Bazel.lock
@@ -1,5 +1,5 @@
 {
-  "checksum": "261553cf6429e8b335c0e0b5b40d50bde214a6e803050916a1ce08a9b54c7da5",
+  "checksum": "41b9ac211fdc6f618e5b0953e7255e1eadffdde7649fe8e4b9bc9be28ee06573",
   "crates": {
     "adler32 1.2.0": {
       "name": "adler32",
@@ -121,7 +121,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -458,7 +458,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             },
             {
@@ -881,7 +881,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             }
           ],
@@ -945,7 +945,7 @@
               "alias": "jpeg"
             },
             {
-              "id": "num-iter 0.1.42",
+              "id": "num-iter 0.1.43",
               "target": "num_iter"
             },
             {
@@ -1091,13 +1091,13 @@
       },
       "license": "MIT/Apache-2.0"
     },
-    "libc 0.2.122": {
+    "libc 0.2.125": {
       "name": "libc",
-      "version": "0.2.122",
+      "version": "0.2.125",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.122/download",
-          "sha256": "ec647867e2bf0772e28c8bcde4f0d19a9216916e890543b5a03ed8ef27b8f259"
+          "url": "https://crates.io/api/v1/crates/libc/0.2.125/download",
+          "sha256": "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"
         }
       },
       "targets": [
@@ -1138,14 +1138,14 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "build_script_build"
             }
           ],
           "selects": {}
         },
         "edition": "2015",
-        "version": "0.2.122"
+        "version": "0.2.125"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -1272,13 +1272,13 @@
       },
       "license": "MIT OR Apache-2.0"
     },
-    "num-iter 0.1.42": {
+    "num-iter 0.1.43": {
       "name": "num-iter",
-      "version": "0.1.42",
+      "version": "0.1.43",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/num-iter/0.1.42/download",
-          "sha256": "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
+          "url": "https://crates.io/api/v1/crates/num-iter/0.1.43/download",
+          "sha256": "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
         }
       },
       "targets": [
@@ -1323,7 +1323,7 @@
               "target": "num_integer"
             },
             {
-              "id": "num-iter 0.1.42",
+              "id": "num-iter 0.1.43",
               "target": "build_script_build"
             },
             {
@@ -1334,7 +1334,7 @@
           "selects": {}
         },
         "edition": "2015",
-        "version": "0.1.42"
+        "version": "0.1.43"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -1540,7 +1540,7 @@
             ],
             "cfg(not(windows))": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ]
@@ -1775,11 +1775,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -1864,7 +1864,7 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             }
           ],
@@ -1956,13 +1956,13 @@
       },
       "license": "MIT OR Apache-2.0"
     },
-    "quote 1.0.17": {
+    "quote 1.0.18": {
       "name": "quote",
-      "version": "1.0.17",
+      "version": "1.0.18",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/quote/1.0.17/download",
-          "sha256": "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
+          "url": "https://crates.io/api/v1/crates/quote/1.0.18/download",
+          "sha256": "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
         }
       },
       "targets": [
@@ -1998,7 +1998,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.0.17"
+        "version": "1.0.18"
       },
       "license": "MIT OR Apache-2.0"
     },
@@ -2450,11 +2450,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -2465,13 +2465,13 @@
       },
       "license": "Apache-2.0/MIT"
     },
-    "syn 1.0.91": {
+    "syn 1.0.92": {
       "name": "syn",
-      "version": "1.0.91",
+      "version": "1.0.92",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/syn/1.0.91/download",
-          "sha256": "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
+          "url": "https://crates.io/api/v1/crates/syn/1.0.92/download",
+          "sha256": "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52"
         }
       },
       "targets": [
@@ -2522,11 +2522,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "build_script_build"
             },
             {
@@ -2537,7 +2537,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.0.91"
+        "version": "1.0.92"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -2579,7 +2579,7 @@
           "selects": {
             "cfg(not(windows))": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -3200,6 +3200,7 @@
     "cfg(not(target_arch = \"wasm32\"))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -3221,6 +3222,7 @@
     "cfg(not(windows))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -3247,6 +3249,7 @@
     "cfg(unix)": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
diff --git a/examples/crate_universe/multi_package/Cargo.Bazel.lock b/examples/crate_universe/multi_package/Cargo.Bazel.lock
index dfc2ddf..315e4fe 100644
--- a/examples/crate_universe/multi_package/Cargo.Bazel.lock
+++ b/examples/crate_universe/multi_package/Cargo.Bazel.lock
@@ -1,5 +1,5 @@
 {
-  "checksum": "90b9c257f171dc9e59d7ef965338906459e097f90614c213ad8ee023ef0b8474",
+  "checksum": "b404572292eecc6acc29d70389ff9f9f77c43bb94dcece6c00f161c71385ce8a",
   "crates": {
     "aho-corasick 0.7.18": {
       "name": "aho-corasick",
@@ -47,13 +47,13 @@
       },
       "license": "Unlicense/MIT"
     },
-    "anyhow 1.0.56": {
+    "anyhow 1.0.57": {
       "name": "anyhow",
-      "version": "1.0.56",
+      "version": "1.0.57",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/anyhow/1.0.56/download",
-          "sha256": "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27"
+          "url": "https://crates.io/api/v1/crates/anyhow/1.0.57/download",
+          "sha256": "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc"
         }
       },
       "targets": [
@@ -94,14 +94,14 @@
         "deps": {
           "common": [
             {
-              "id": "anyhow 1.0.56",
+              "id": "anyhow 1.0.57",
               "target": "build_script_build"
             }
           ],
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.0.56"
+        "version": "1.0.57"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -454,7 +454,7 @@
           "selects": {
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -651,7 +651,7 @@
                 "target": "async_io"
               },
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               },
               {
@@ -773,7 +773,7 @@
               "target": "once_cell"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
@@ -810,7 +810,7 @@
                 "target": "futures_channel"
               },
               {
-                "id": "gloo-timers 0.2.3",
+                "id": "gloo-timers 0.2.4",
                 "target": "gloo_timers"
               },
               {
@@ -913,11 +913,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -1005,7 +1005,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -1677,7 +1677,7 @@
               "target": "core_foundation_sys"
             },
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             }
           ],
@@ -1913,11 +1913,11 @@
         "deps": {
           "common": [
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -1983,11 +1983,11 @@
               "target": "build_script_build"
             },
             {
-              "id": "curl-sys 0.4.53+curl-7.82.0",
+              "id": "curl-sys 0.4.54+curl-7.83.0",
               "target": "curl_sys"
             },
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             },
             {
@@ -2028,7 +2028,7 @@
         "deps": {
           "common": [
             {
-              "id": "curl-sys 0.4.53+curl-7.82.0",
+              "id": "curl-sys 0.4.54+curl-7.83.0",
               "target": "curl_sys"
             }
           ],
@@ -2037,13 +2037,13 @@
       },
       "license": "MIT"
     },
-    "curl-sys 0.4.53+curl-7.82.0": {
+    "curl-sys 0.4.54+curl-7.83.0": {
       "name": "curl-sys",
-      "version": "0.4.53+curl-7.82.0",
+      "version": "0.4.54+curl-7.83.0",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/curl-sys/0.4.53+curl-7.82.0/download",
-          "sha256": "8092905a5a9502c312f223b2775f57ec5c5b715f9a15ee9d2a8591d1364a0352"
+          "url": "https://crates.io/api/v1/crates/curl-sys/0.4.54+curl-7.83.0/download",
+          "sha256": "25debbc3365c3e7ee79e30918df5759e84dbd4485807a18829188abf1786ec4e"
         }
       },
       "targets": [
@@ -2076,7 +2076,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             },
             {
@@ -2084,7 +2084,7 @@
               "target": "libnghttp2_sys"
             },
             {
-              "id": "libz-sys 1.1.5",
+              "id": "libz-sys 1.1.6",
               "target": "libz_sys"
             }
           ],
@@ -2108,7 +2108,7 @@
           "@libssh2"
         ],
         "edition": "2018",
-        "version": "0.4.53+curl-7.82.0"
+        "version": "0.4.54+curl-7.83.0"
       },
       "license": "MIT"
     },
@@ -2304,7 +2304,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -2961,7 +2961,7 @@
               "target": "parking"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
@@ -3011,11 +3011,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -3202,7 +3202,7 @@
               "target": "memchr"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
@@ -3354,7 +3354,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ]
@@ -3365,13 +3365,13 @@
       },
       "license": "MIT OR Apache-2.0"
     },
-    "gloo-timers 0.2.3": {
+    "gloo-timers 0.2.4": {
       "name": "gloo-timers",
-      "version": "0.2.3",
+      "version": "0.2.4",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/gloo-timers/0.2.3/download",
-          "sha256": "4d12a7f4e95cfe710f1d624fb1210b7d961a5fb05c4fd942f4feab06e61f590e"
+          "url": "https://crates.io/api/v1/crates/gloo-timers/0.2.4/download",
+          "sha256": "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9"
         }
       },
       "targets": [
@@ -3421,7 +3421,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "0.2.3"
+        "version": "0.2.4"
       },
       "license": "MIT/Apache-2.0"
     },
@@ -3476,7 +3476,7 @@
               "target": "futures_util"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
@@ -3488,7 +3488,7 @@
               "target": "slab"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
@@ -3496,7 +3496,7 @@
               "target": "tokio_util"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             }
           ],
@@ -3577,7 +3577,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             }
           ],
@@ -3621,13 +3621,13 @@
       },
       "license": "MIT OR Apache-2.0"
     },
-    "http 0.2.6": {
+    "http 0.2.7": {
       "name": "http",
-      "version": "0.2.6",
+      "version": "0.2.7",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/http/0.2.6/download",
-          "sha256": "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03"
+          "url": "https://crates.io/api/v1/crates/http/0.2.7/download",
+          "sha256": "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb"
         }
       },
       "targets": [
@@ -3667,9 +3667,9 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "0.2.6"
+        "version": "0.2.7"
       },
-      "license": "MIT/Apache-2.0"
+      "license": "MIT OR Apache-2.0"
     },
     "http-body 0.4.4": {
       "name": "http-body",
@@ -3706,11 +3706,11 @@
               "target": "bytes"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             }
           ],
@@ -3721,13 +3721,13 @@
       },
       "license": "MIT"
     },
-    "httparse 1.6.0": {
+    "httparse 1.7.1": {
       "name": "httparse",
-      "version": "1.6.0",
+      "version": "1.7.1",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/httparse/1.6.0/download",
-          "sha256": "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4"
+          "url": "https://crates.io/api/v1/crates/httparse/1.7.1/download",
+          "sha256": "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
         }
       },
       "targets": [
@@ -3768,14 +3768,14 @@
         "deps": {
           "common": [
             {
-              "id": "httparse 1.6.0",
+              "id": "httparse 1.7.1",
               "target": "build_script_build"
             }
           ],
           "selects": {}
         },
         "edition": "2015",
-        "version": "1.6.0"
+        "version": "1.7.1"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -3897,7 +3897,7 @@
               "target": "hyper"
             },
             {
-              "id": "isahc 1.7.0",
+              "id": "isahc 1.7.1",
               "target": "isahc"
             },
             {
@@ -3933,7 +3933,7 @@
               "target": "similar"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
@@ -4019,7 +4019,7 @@
               "target": "h2"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
@@ -4027,7 +4027,7 @@
               "target": "http_body"
             },
             {
-              "id": "httparse 1.6.0",
+              "id": "httparse 1.7.1",
               "target": "httparse"
             },
             {
@@ -4039,7 +4039,7 @@
               "target": "itoa"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
@@ -4047,7 +4047,7 @@
               "target": "socket2"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
@@ -4055,7 +4055,7 @@
               "target": "tower_service"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             },
             {
@@ -4113,7 +4113,7 @@
               "target": "native_tls"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
@@ -4163,7 +4163,7 @@
               "target": "matches"
             },
             {
-              "id": "unicode-bidi 0.3.7",
+              "id": "unicode-bidi 0.3.8",
               "target": "unicode_bidi"
             },
             {
@@ -4295,13 +4295,13 @@
       },
       "license": "BSD-3-Clause"
     },
-    "ipnet 2.4.0": {
+    "ipnet 2.5.0": {
       "name": "ipnet",
-      "version": "2.4.0",
+      "version": "2.5.0",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/ipnet/2.4.0/download",
-          "sha256": "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c"
+          "url": "https://crates.io/api/v1/crates/ipnet/2.5.0/download",
+          "sha256": "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b"
         }
       },
       "targets": [
@@ -4326,18 +4326,18 @@
         "crate_features": [
           "default"
         ],
-        "edition": "2015",
-        "version": "2.4.0"
+        "edition": "2018",
+        "version": "2.5.0"
       },
       "license": "MIT OR Apache-2.0"
     },
-    "isahc 1.7.0": {
+    "isahc 1.7.1": {
       "name": "isahc",
-      "version": "1.7.0",
+      "version": "1.7.1",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/isahc/1.7.0/download",
-          "sha256": "437f8808009c031df3c1d532c8fd7e3d73239dfe522ebf0b94b5e34d5d01044b"
+          "url": "https://crates.io/api/v1/crates/isahc/1.7.1/download",
+          "sha256": "480d9158c9977bff0bc024a11dcad04efcd3955c1e55301092b13fc439d41720"
         }
       },
       "targets": [
@@ -4398,7 +4398,7 @@
               "target": "curl"
             },
             {
-              "id": "curl-sys 0.4.53+curl-7.82.0",
+              "id": "curl-sys 0.4.54+curl-7.83.0",
               "target": "curl_sys"
             },
             {
@@ -4414,11 +4414,11 @@
               "target": "futures_lite"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
-              "id": "isahc 1.7.0",
+              "id": "isahc 1.7.1",
               "target": "build_script_build"
             },
             {
@@ -4446,7 +4446,7 @@
               "target": "sluice"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             },
             {
@@ -4465,7 +4465,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.7.0"
+        "version": "1.7.1"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -4869,13 +4869,13 @@
       },
       "license": "MIT"
     },
-    "libc 0.2.122": {
+    "libc 0.2.125": {
       "name": "libc",
-      "version": "0.2.122",
+      "version": "0.2.125",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.122/download",
-          "sha256": "ec647867e2bf0772e28c8bcde4f0d19a9216916e890543b5a03ed8ef27b8f259"
+          "url": "https://crates.io/api/v1/crates/libc/0.2.125/download",
+          "sha256": "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"
         }
       },
       "targets": [
@@ -4916,14 +4916,14 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "build_script_build"
             }
           ],
           "selects": {}
         },
         "edition": "2015",
-        "version": "0.2.122"
+        "version": "0.2.125"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -4978,7 +4978,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             },
             {
@@ -5009,13 +5009,13 @@
       },
       "license": "MIT/Apache-2.0"
     },
-    "libz-sys 1.1.5": {
+    "libz-sys 1.1.6": {
       "name": "libz-sys",
-      "version": "1.1.5",
+      "version": "1.1.6",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/libz-sys/1.1.5/download",
-          "sha256": "6f35facd4a5673cb5a48822be2be1d4236c1c99cb4113cab7061ac720d5bf859"
+          "url": "https://crates.io/api/v1/crates/libz-sys/1.1.6/download",
+          "sha256": "92e7e15d7610cce1d9752e137625f14e61a28cd45929b6e12e47b50fe154ee2e"
         }
       },
       "targets": [
@@ -5055,18 +5055,18 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             },
             {
-              "id": "libz-sys 1.1.5",
+              "id": "libz-sys 1.1.6",
               "target": "build_script_build"
             }
           ],
           "selects": {}
         },
         "edition": "2015",
-        "version": "1.1.5"
+        "version": "1.1.6"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -5466,7 +5466,7 @@
           "selects": {
             "cfg(target_os = \"wasi\")": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               },
               {
@@ -5476,7 +5476,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -5597,7 +5597,7 @@
                 "target": "lazy_static"
               },
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               },
               {
@@ -5788,7 +5788,7 @@
             ],
             "cfg(not(windows))": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ]
@@ -5926,7 +5926,7 @@
               "target": "foreign_types"
             },
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             },
             {
@@ -6047,7 +6047,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             },
             {
@@ -6256,7 +6256,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -6513,11 +6513,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -6528,13 +6528,13 @@
       },
       "license": "Apache-2.0 OR MIT"
     },
-    "pin-project-lite 0.2.8": {
+    "pin-project-lite 0.2.9": {
       "name": "pin-project-lite",
-      "version": "0.2.8",
+      "version": "0.2.9",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/pin-project-lite/0.2.8/download",
-          "sha256": "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
+          "url": "https://crates.io/api/v1/crates/pin-project-lite/0.2.9/download",
+          "sha256": "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
         }
       },
       "targets": [
@@ -6557,7 +6557,7 @@
           "**"
         ],
         "edition": "2018",
-        "version": "0.2.8"
+        "version": "0.2.9"
       },
       "license": "Apache-2.0 OR MIT"
     },
@@ -6653,7 +6653,7 @@
         "deps": {
           "common": [
             {
-              "id": "anyhow 1.0.56",
+              "id": "anyhow 1.0.57",
               "target": "anyhow"
             },
             {
@@ -6806,7 +6806,7 @@
           "selects": {
             "cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -6927,13 +6927,13 @@
       },
       "license": "MIT OR Apache-2.0"
     },
-    "quote 1.0.17": {
+    "quote 1.0.18": {
       "name": "quote",
-      "version": "1.0.17",
+      "version": "1.0.18",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/quote/1.0.17/download",
-          "sha256": "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
+          "url": "https://crates.io/api/v1/crates/quote/1.0.18/download",
+          "sha256": "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
         }
       },
       "targets": [
@@ -6969,7 +6969,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.0.17"
+        "version": "1.0.18"
       },
       "license": "MIT OR Apache-2.0"
     },
@@ -7268,7 +7268,7 @@
               "target": "bytes"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
@@ -7323,7 +7323,7 @@
                 "target": "hyper_tls"
               },
               {
-                "id": "ipnet 2.4.0",
+                "id": "ipnet 2.5.0",
                 "target": "ipnet"
               },
               {
@@ -7348,11 +7348,11 @@
                 "target": "percent_encoding"
               },
               {
-                "id": "pin-project-lite 0.2.8",
+                "id": "pin-project-lite 0.2.9",
                 "target": "pin_project_lite"
               },
               {
-                "id": "tokio 1.17.0",
+                "id": "tokio 1.18.0",
                 "target": "tokio"
               },
               {
@@ -7613,7 +7613,7 @@
               "target": "core_foundation_sys"
             },
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             },
             {
@@ -7667,7 +7667,7 @@
               "target": "core_foundation_sys"
             },
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             }
           ],
@@ -7802,7 +7802,7 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
@@ -7810,7 +7810,7 @@
               "target": "build_script_build"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -8048,7 +8048,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             },
             {
@@ -8103,7 +8103,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             }
           ],
@@ -8344,7 +8344,7 @@
           "selects": {
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -8419,13 +8419,13 @@
       },
       "license": "MIT / Apache-2.0"
     },
-    "syn 1.0.91": {
+    "syn 1.0.92": {
       "name": "syn",
-      "version": "1.0.91",
+      "version": "1.0.92",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/syn/1.0.91/download",
-          "sha256": "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
+          "url": "https://crates.io/api/v1/crates/syn/1.0.92/download",
+          "sha256": "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52"
         }
       },
       "targets": [
@@ -8479,11 +8479,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "build_script_build"
             },
             {
@@ -8494,7 +8494,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.0.91"
+        "version": "1.0.92"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -8549,7 +8549,7 @@
           "selects": {
             "cfg(any(unix, target_os = \"wasi\"))": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -8712,11 +8712,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -8794,13 +8794,13 @@
       },
       "license": "CC0-1.0"
     },
-    "tinyvec 1.5.1": {
+    "tinyvec 1.6.0": {
       "name": "tinyvec",
-      "version": "1.5.1",
+      "version": "1.6.0",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/tinyvec/1.5.1/download",
-          "sha256": "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
+          "url": "https://crates.io/api/v1/crates/tinyvec/1.6.0/download",
+          "sha256": "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
         }
       },
       "targets": [
@@ -8837,7 +8837,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.5.1"
+        "version": "1.6.0"
       },
       "license": "Zlib OR Apache-2.0 OR MIT"
     },
@@ -8874,13 +8874,13 @@
       },
       "license": "MIT OR Apache-2.0 OR Zlib"
     },
-    "tokio 1.17.0": {
+    "tokio 1.18.0": {
       "name": "tokio",
-      "version": "1.17.0",
+      "version": "1.18.0",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/tokio/1.17.0/download",
-          "sha256": "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee"
+          "url": "https://crates.io/api/v1/crates/tokio/1.18.0/download",
+          "sha256": "0f48b6d60512a392e34dbf7fd456249fd2de3c83669ab642e021903f4015185b"
         }
       },
       "targets": [
@@ -8946,7 +8946,7 @@
               "target": "once_cell"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
@@ -8957,7 +8957,7 @@
           "selects": {
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               },
               {
@@ -8983,7 +8983,7 @@
           ],
           "selects": {}
         },
-        "version": "1.17.0"
+        "version": "1.18.0"
       },
       "license": "MIT"
     },
@@ -9022,11 +9022,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -9072,7 +9072,7 @@
               "target": "native_tls"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             }
           ],
@@ -9131,15 +9131,15 @@
               "target": "futures_sink"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             }
           ],
@@ -9183,13 +9183,13 @@
       },
       "license": "MIT"
     },
-    "tracing 0.1.33": {
+    "tracing 0.1.34": {
       "name": "tracing",
-      "version": "0.1.33",
+      "version": "0.1.34",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing/0.1.33/download",
-          "sha256": "80b9fa4360528139bc96100c160b7ae879f5567f49f1782b0b02035b0358ebf3"
+          "url": "https://crates.io/api/v1/crates/tracing/0.1.34/download",
+          "sha256": "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09"
         }
       },
       "targets": [
@@ -9229,11 +9229,11 @@
               "target": "log"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
-              "id": "tracing-core 0.1.24",
+              "id": "tracing-core 0.1.26",
               "target": "tracing_core"
             }
           ],
@@ -9243,23 +9243,23 @@
         "proc_macro_deps": {
           "common": [
             {
-              "id": "tracing-attributes 0.1.20",
+              "id": "tracing-attributes 0.1.21",
               "target": "tracing_attributes"
             }
           ],
           "selects": {}
         },
-        "version": "0.1.33"
+        "version": "0.1.34"
       },
       "license": "MIT"
     },
-    "tracing-attributes 0.1.20": {
+    "tracing-attributes 0.1.21": {
       "name": "tracing-attributes",
-      "version": "0.1.20",
+      "version": "0.1.21",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-attributes/0.1.20/download",
-          "sha256": "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b"
+          "url": "https://crates.io/api/v1/crates/tracing-attributes/0.1.21/download",
+          "sha256": "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c"
         }
       },
       "targets": [
@@ -9288,28 +9288,28 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
           "selects": {}
         },
         "edition": "2018",
-        "version": "0.1.20"
+        "version": "0.1.21"
       },
       "license": "MIT"
     },
-    "tracing-core 0.1.24": {
+    "tracing-core 0.1.26": {
       "name": "tracing-core",
-      "version": "0.1.24",
+      "version": "0.1.26",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-core/0.1.24/download",
-          "sha256": "90442985ee2f57c9e1b548ee72ae842f4a9a20e3f417cc38dbc5dc684d9bb4ee"
+          "url": "https://crates.io/api/v1/crates/tracing-core/0.1.26/download",
+          "sha256": "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f"
         }
       },
       "targets": [
@@ -9345,7 +9345,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "0.1.24"
+        "version": "0.1.26"
       },
       "license": "MIT"
     },
@@ -9389,7 +9389,7 @@
               "target": "pin_project"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             }
           ],
@@ -9492,13 +9492,13 @@
       },
       "license": "MIT OR Apache-2.0"
     },
-    "unicode-bidi 0.3.7": {
+    "unicode-bidi 0.3.8": {
       "name": "unicode-bidi",
-      "version": "0.3.7",
+      "version": "0.3.8",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-bidi/0.3.7/download",
-          "sha256": "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
+          "url": "https://crates.io/api/v1/crates/unicode-bidi/0.3.8/download",
+          "sha256": "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
         }
       },
       "targets": [
@@ -9522,12 +9522,13 @@
         ],
         "crate_features": [
           "default",
+          "hardcoded-data",
           "std"
         ],
         "edition": "2018",
-        "version": "0.3.7"
+        "version": "0.3.8"
       },
-      "license": "MIT / Apache-2.0"
+      "license": "MIT OR Apache-2.0"
     },
     "unicode-normalization 0.1.19": {
       "name": "unicode-normalization",
@@ -9564,7 +9565,7 @@
         "deps": {
           "common": [
             {
-              "id": "tinyvec 1.5.1",
+              "id": "tinyvec 1.6.0",
               "target": "tinyvec"
             }
           ],
@@ -10089,11 +10090,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             },
             {
@@ -10199,7 +10200,7 @@
         "deps": {
           "common": [
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
@@ -10252,11 +10253,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             },
             {
@@ -11190,6 +11191,7 @@
     "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
     "cfg(all(unix, not(target_os = \"macos\")))": [
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -11207,6 +11209,7 @@
     "cfg(any(target_os = \"macos\", target_os = \"ios\"))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "i686-apple-darwin",
       "x86_64-apple-darwin",
       "x86_64-apple-ios"
@@ -11214,6 +11217,7 @@
     "cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -11233,6 +11237,7 @@
     "cfg(any(unix, target_os = \"wasi\"))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -11269,6 +11274,7 @@
     "cfg(not(target_arch = \"wasm32\"))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -11290,6 +11296,7 @@
     "cfg(not(target_os = \"unknown\"))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -11312,6 +11319,7 @@
     "cfg(not(windows))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -11351,6 +11359,7 @@
     "cfg(unix)": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
diff --git a/examples/crate_universe/no_cargo_manifests/Cargo.Bazel.lock b/examples/crate_universe/no_cargo_manifests/Cargo.Bazel.lock
index 6652e43..ebe9b8d 100644
--- a/examples/crate_universe/no_cargo_manifests/Cargo.Bazel.lock
+++ b/examples/crate_universe/no_cargo_manifests/Cargo.Bazel.lock
@@ -1,5 +1,5 @@
 {
-  "checksum": "e363b114bfca318daf2672f5264190592878fe5d1826d721ea18d1508bbd578d",
+  "checksum": "cef01348656d976774c17d41287c660b3b471f580ca892c01c61093c05541cbb",
   "crates": {
     "ansi_term 0.12.1": {
       "name": "ansi_term",
@@ -96,11 +96,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -204,7 +204,7 @@
               "target": "futures_util"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
@@ -232,7 +232,7 @@
               "target": "percent_encoding"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
@@ -252,7 +252,7 @@
               "target": "sync_wrapper"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
@@ -327,7 +327,7 @@
               "target": "futures_util"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
@@ -503,7 +503,7 @@
               "target": "serde_json"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
@@ -515,7 +515,7 @@
               "target": "tower_http"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             },
             {
@@ -903,7 +903,7 @@
               "target": "build_script_build"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
@@ -974,7 +974,7 @@
               "target": "futures_util"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
@@ -986,7 +986,7 @@
               "target": "slab"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
@@ -994,7 +994,7 @@
               "target": "tokio_util"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             }
           ],
@@ -1075,7 +1075,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             }
           ],
@@ -1086,13 +1086,13 @@
       },
       "license": "MIT/Apache-2.0"
     },
-    "http 0.2.6": {
+    "http 0.2.7": {
       "name": "http",
-      "version": "0.2.6",
+      "version": "0.2.7",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/http/0.2.6/download",
-          "sha256": "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03"
+          "url": "https://crates.io/api/v1/crates/http/0.2.7/download",
+          "sha256": "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb"
         }
       },
       "targets": [
@@ -1132,9 +1132,9 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "0.2.6"
+        "version": "0.2.7"
       },
-      "license": "MIT/Apache-2.0"
+      "license": "MIT OR Apache-2.0"
     },
     "http-body 0.4.4": {
       "name": "http-body",
@@ -1171,11 +1171,11 @@
               "target": "bytes"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             }
           ],
@@ -1219,13 +1219,13 @@
       },
       "license": "MIT"
     },
-    "httparse 1.6.0": {
+    "httparse 1.7.1": {
       "name": "httparse",
-      "version": "1.6.0",
+      "version": "1.7.1",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/httparse/1.6.0/download",
-          "sha256": "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4"
+          "url": "https://crates.io/api/v1/crates/httparse/1.7.1/download",
+          "sha256": "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
         }
       },
       "targets": [
@@ -1266,14 +1266,14 @@
         "deps": {
           "common": [
             {
-              "id": "httparse 1.6.0",
+              "id": "httparse 1.7.1",
               "target": "build_script_build"
             }
           ],
           "selects": {}
         },
         "edition": "2015",
-        "version": "1.6.0"
+        "version": "1.7.1"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -1379,7 +1379,7 @@
               "target": "h2"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
@@ -1387,7 +1387,7 @@
               "target": "http_body"
             },
             {
-              "id": "httparse 1.6.0",
+              "id": "httparse 1.7.1",
               "target": "httparse"
             },
             {
@@ -1399,7 +1399,7 @@
               "target": "itoa"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
@@ -1407,7 +1407,7 @@
               "target": "socket2"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
@@ -1415,7 +1415,7 @@
               "target": "tower_service"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             },
             {
@@ -1571,13 +1571,13 @@
       },
       "license": "MIT/Apache-2.0"
     },
-    "libc 0.2.122": {
+    "libc 0.2.125": {
       "name": "libc",
-      "version": "0.2.122",
+      "version": "0.2.125",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.122/download",
-          "sha256": "ec647867e2bf0772e28c8bcde4f0d19a9216916e890543b5a03ed8ef27b8f259"
+          "url": "https://crates.io/api/v1/crates/libc/0.2.125/download",
+          "sha256": "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"
         }
       },
       "targets": [
@@ -1618,14 +1618,14 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "build_script_build"
             }
           ],
           "selects": {}
         },
         "edition": "2015",
-        "version": "0.2.122"
+        "version": "0.2.125"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -1981,7 +1981,7 @@
           "selects": {
             "cfg(target_os = \"wasi\")": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               },
               {
@@ -1991,7 +1991,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -2164,7 +2164,7 @@
             ],
             "cfg(not(windows))": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ]
@@ -2327,7 +2327,7 @@
             ],
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -2459,11 +2459,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -2474,13 +2474,13 @@
       },
       "license": "Apache-2.0 OR MIT"
     },
-    "pin-project-lite 0.2.8": {
+    "pin-project-lite 0.2.9": {
       "name": "pin-project-lite",
-      "version": "0.2.8",
+      "version": "0.2.9",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/pin-project-lite/0.2.8/download",
-          "sha256": "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
+          "url": "https://crates.io/api/v1/crates/pin-project-lite/0.2.9/download",
+          "sha256": "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
         }
       },
       "targets": [
@@ -2503,7 +2503,7 @@
           "**"
         ],
         "edition": "2018",
-        "version": "0.2.8"
+        "version": "0.2.9"
       },
       "license": "Apache-2.0 OR MIT"
     },
@@ -2607,13 +2607,13 @@
       },
       "license": "MIT OR Apache-2.0"
     },
-    "quote 1.0.17": {
+    "quote 1.0.18": {
       "name": "quote",
-      "version": "1.0.17",
+      "version": "1.0.18",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/quote/1.0.17/download",
-          "sha256": "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
+          "url": "https://crates.io/api/v1/crates/quote/1.0.18/download",
+          "sha256": "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
         }
       },
       "targets": [
@@ -2649,7 +2649,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.0.17"
+        "version": "1.0.18"
       },
       "license": "MIT OR Apache-2.0"
     },
@@ -3027,7 +3027,7 @@
         "deps": {
           "common": [
             {
-              "id": "libc 0.2.122",
+              "id": "libc 0.2.125",
               "target": "libc"
             }
           ],
@@ -3144,7 +3144,7 @@
           "selects": {
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               }
             ],
@@ -3161,13 +3161,13 @@
       },
       "license": "MIT OR Apache-2.0"
     },
-    "syn 1.0.91": {
+    "syn 1.0.92": {
       "name": "syn",
-      "version": "1.0.91",
+      "version": "1.0.92",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/syn/1.0.91/download",
-          "sha256": "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
+          "url": "https://crates.io/api/v1/crates/syn/1.0.92/download",
+          "sha256": "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52"
         }
       },
       "targets": [
@@ -3221,11 +3221,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "build_script_build"
             },
             {
@@ -3236,7 +3236,7 @@
           "selects": {}
         },
         "edition": "2018",
-        "version": "1.0.91"
+        "version": "1.0.92"
       },
       "build_script_attrs": {
         "data_glob": [
@@ -3320,13 +3320,13 @@
       },
       "license": "Apache-2.0/MIT"
     },
-    "tokio 1.17.0": {
+    "tokio 1.18.0": {
       "name": "tokio",
-      "version": "1.17.0",
+      "version": "1.18.0",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/tokio/1.17.0/download",
-          "sha256": "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee"
+          "url": "https://crates.io/api/v1/crates/tokio/1.18.0/download",
+          "sha256": "0f48b6d60512a392e34dbf7fd456249fd2de3c83669ab642e021903f4015185b"
         }
       },
       "targets": [
@@ -3401,7 +3401,7 @@
               "target": "parking_lot"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
@@ -3412,7 +3412,7 @@
           "selects": {
             "cfg(unix)": [
               {
-                "id": "libc 0.2.122",
+                "id": "libc 0.2.125",
                 "target": "libc"
               },
               {
@@ -3438,7 +3438,7 @@
           ],
           "selects": {}
         },
-        "version": "1.17.0"
+        "version": "1.18.0"
       },
       "license": "MIT"
     },
@@ -3477,11 +3477,11 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
@@ -3540,15 +3540,15 @@
               "target": "futures_sink"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             }
           ],
@@ -3617,11 +3617,11 @@
               "target": "pin_project"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
-              "id": "tokio 1.17.0",
+              "id": "tokio 1.18.0",
               "target": "tokio"
             },
             {
@@ -3637,7 +3637,7 @@
               "target": "tower_service"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             }
           ],
@@ -3703,7 +3703,7 @@
               "target": "futures_util"
             },
             {
-              "id": "http 0.2.6",
+              "id": "http 0.2.7",
               "target": "http"
             },
             {
@@ -3715,7 +3715,7 @@
               "target": "http_range_header"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
@@ -3731,7 +3731,7 @@
               "target": "tower_service"
             },
             {
-              "id": "tracing 0.1.33",
+              "id": "tracing 0.1.34",
               "target": "tracing"
             }
           ],
@@ -3808,13 +3808,13 @@
       },
       "license": "MIT"
     },
-    "tracing 0.1.33": {
+    "tracing 0.1.34": {
       "name": "tracing",
-      "version": "0.1.33",
+      "version": "0.1.34",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing/0.1.33/download",
-          "sha256": "80b9fa4360528139bc96100c160b7ae879f5567f49f1782b0b02035b0358ebf3"
+          "url": "https://crates.io/api/v1/crates/tracing/0.1.34/download",
+          "sha256": "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09"
         }
       },
       "targets": [
@@ -3854,11 +3854,11 @@
               "target": "log"
             },
             {
-              "id": "pin-project-lite 0.2.8",
+              "id": "pin-project-lite 0.2.9",
               "target": "pin_project_lite"
             },
             {
-              "id": "tracing-core 0.1.24",
+              "id": "tracing-core 0.1.26",
               "target": "tracing_core"
             }
           ],
@@ -3868,23 +3868,23 @@
         "proc_macro_deps": {
           "common": [
             {
-              "id": "tracing-attributes 0.1.20",
+              "id": "tracing-attributes 0.1.21",
               "target": "tracing_attributes"
             }
           ],
           "selects": {}
         },
-        "version": "0.1.33"
+        "version": "0.1.34"
       },
       "license": "MIT"
     },
-    "tracing-attributes 0.1.20": {
+    "tracing-attributes 0.1.21": {
       "name": "tracing-attributes",
-      "version": "0.1.20",
+      "version": "0.1.21",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-attributes/0.1.20/download",
-          "sha256": "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b"
+          "url": "https://crates.io/api/v1/crates/tracing-attributes/0.1.21/download",
+          "sha256": "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c"
         }
       },
       "targets": [
@@ -3913,28 +3913,28 @@
               "target": "proc_macro2"
             },
             {
-              "id": "quote 1.0.17",
+              "id": "quote 1.0.18",
               "target": "quote"
             },
             {
-              "id": "syn 1.0.91",
+              "id": "syn 1.0.92",
               "target": "syn"
             }
           ],
           "selects": {}
         },
         "edition": "2018",
-        "version": "0.1.20"
+        "version": "0.1.21"
       },
       "license": "MIT"
     },
-    "tracing-core 0.1.24": {
+    "tracing-core 0.1.26": {
       "name": "tracing-core",
-      "version": "0.1.24",
+      "version": "0.1.26",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-core/0.1.24/download",
-          "sha256": "90442985ee2f57c9e1b548ee72ae842f4a9a20e3f417cc38dbc5dc684d9bb4ee"
+          "url": "https://crates.io/api/v1/crates/tracing-core/0.1.26/download",
+          "sha256": "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f"
         }
       },
       "targets": [
@@ -3979,17 +3979,17 @@
           }
         },
         "edition": "2018",
-        "version": "0.1.24"
+        "version": "0.1.26"
       },
       "license": "MIT"
     },
-    "tracing-log 0.1.2": {
+    "tracing-log 0.1.3": {
       "name": "tracing-log",
-      "version": "0.1.2",
+      "version": "0.1.3",
       "repository": {
         "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-log/0.1.2/download",
-          "sha256": "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3"
+          "url": "https://crates.io/api/v1/crates/tracing-log/0.1.3/download",
+          "sha256": "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
         }
       },
       "targets": [
@@ -4026,14 +4026,14 @@
               "target": "log"
             },
             {
-              "id": "tracing-core 0.1.24",
+              "id": "tracing-core 0.1.26",
               "target": "tracing_core"
             }
           ],
           "selects": {}
         },
         "edition": "2018",
-        "version": "0.1.2"
+        "version": "0.1.3"
       },
       "license": "MIT"
     },
@@ -4097,11 +4097,11 @@
               "target": "thread_local"
             },
             {
-              "id": "tracing-core 0.1.24",
+              "id": "tracing-core 0.1.26",
               "target": "tracing_core"
             },
             {
-              "id": "tracing-log 0.1.2",
+              "id": "tracing-log 0.1.3",
               "target": "tracing_log"
             }
           ],
@@ -4959,6 +4959,7 @@
     "cfg(not(windows))": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
@@ -4989,6 +4990,7 @@
     "cfg(unix)": [
       "aarch64-apple-darwin",
       "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
       "aarch64-linux-android",
       "aarch64-unknown-linux-gnu",
       "arm-unknown-linux-gnueabi",
diff --git a/rust/platform/triple_mappings.bzl b/rust/platform/triple_mappings.bzl
index ad4dedb..f62e4da 100644
--- a/rust/platform/triple_mappings.bzl
+++ b/rust/platform/triple_mappings.bzl
@@ -22,6 +22,7 @@
 SUPPORTED_T2_PLATFORM_TRIPLES = [
     "aarch64-apple-darwin",
     "aarch64-apple-ios",
+    "aarch64-apple-ios-sim",
     "aarch64-linux-android",
     "aarch64-unknown-linux-gnu",
     "arm-unknown-linux-gnueabi",
@@ -189,13 +190,29 @@
 
     return ["@platforms//os:{}".format(sys_suffix)]
 
-def abi_to_constraints(abi):
-    # iOS simulator
-    if abi == "sim":
+def abi_to_constraints(_abi):
+    # TODO(acmcarther): Implement when C++ toolchain is more mature and we
+    # figure out how they're doing this
+    return []
+
+def extra_ios_constriants(triple):
+    """Add constraints specific to iOS targets.
+
+    Args:
+        triple: The full triple struct for the target
+
+    Returns:
+        A list of constraints to add to the target
+    """
+
+    # TODO: Simplify if https://github.com/bazelbuild/bazel/issues/11454 is fixed
+    if triple.system != "ios":
+        return []
+    if triple.abi == "sim":
         return ["@build_bazel_apple_support//constraints:simulator"]
+    elif triple.arch == "aarch64":  # Only add device for archs that have both
+        return ["@build_bazel_apple_support//constraints:device"]
     else:
-        # TODO(acmcarther): Implement when C++ toolchain is more mature and we
-        # figure out how they're doing this
         return []
 
 def triple_to_system(target_triple):
@@ -276,5 +293,6 @@
     constraint_set += vendor_to_constraints(triple_struct.vendor)
     constraint_set += system_to_constraints(triple_struct.system)
     constraint_set += abi_to_constraints(triple_struct.abi)
+    constraint_set += extra_ios_constriants(triple_struct)
 
     return constraint_set