Firelands128 / photo_gallery

A Flutter plugin that retrieves images and videos from mobile native gallery.
BSD 3-Clause "New" or "Revised" License
68 stars 62 forks source link

Crashing in IOS #69

Closed Ashhad08 closed 9 months ago

Ashhad08 commented 9 months ago

After giving permission the app crashed in IOS and this error was logged

photo_gallery/SwiftPhotoGalleryPlugin.swift:295: Fatal error: Unexpectedly found nil while unwrapping an Optional value Lost connection to device. Exception: Unable to terminate com.connectummah.connectUmmah on A3641B21-842C-48EF-BB2D-6CC533970713: ProcessException: Process exited abnormally:

Command: xcrun simctl terminate A3641B21-842C-48EF-BB2D-6CC533970713 com.connectummah.connectUmmah the Dart compiler exited unexpectedly.

Ashhad08 commented 9 months ago

Replace this code let assets = albumId == "__ALL__" ? PHAsset.fetchAssets(with: fetchOptions) : PHAsset.fetchAssets(in: self.assetCollections.first(where: { (collection) -> Bool in collection.localIdentifier == albumId })!, options: fetchOptions)

by this code in SwiftPhotoGalleryPlugin.swift

var assets: PHFetchResult<PHAsset>

if albumId == "__ALL__" {
    assets = PHAsset.fetchAssets(with: fetchOptions)
} else if let collection = self.assetCollections.first(where: { $0.localIdentifier == albumId }) {
    assets = PHAsset.fetchAssets(in: collection, options: fetchOptions)
} else {
    // Handle the case where the collection is nil
    print("Error: Collection with ID \(albumId) not found")
    // You might want to provide a default value or handle this case according to your app's logic
    // For now, let's just assign an empty fetch result
    assets = PHAsset.fetchAssets(with: fetchOptions)
}