Question: I'm writing a native iOS component for react native to fetch PHAsset(s) from camera roll. I'm struggling to show an upload a PHAsset as it's not giving a proper URI to use in react native and I'm writing an upload component too. How to achieve this.

Answer: 
I have solved this using the expo-media-library
<https://docs.expo.io/versions/latest/sdk/media-library>

```
     async myFunc() {
     let uri = "ph://ED7AC36B-A150-4C38-BB8C-B6D696F4F2ED/L0/001"
     let myAssetId = uri.slice(5);
     let returnedAssetInfo = await MediaLibrary.getAssetInfoAsync(myAssetId);
     console.log(returnedAssetInfo.localUri); // you local uri link to get the file

```

} }`
React Native currently has very mixed support for `PHAsset` (aka `PHImageLibrary`) URIs, eg `photos://A6A2CEBD-766E-4BD7-980C-71ED7828674E/L0/001`. It has much better support for the deprecated `ALAssetsLibrary` eg `assets-library://asset/asset.MOV?id=A6A2CEBD-766E-4BD7-980C-71ED7828674E&ext=MOV` (note that is a video, not a photo, but the idea is the same).

You'll notice the ID in there is the same, it's just prefix/suffix changes. Try string manipulating that yourself. 

Also, basically nothing supports a local URI that isn't prepended by `photos://` or `assets-library://`. `PHAssets` don't have that, because ~~~apple things~~~. Try prepending `photos://`.

Side note, these URIs will work for things in iCloud that aren't actually local.