2c1e1c7ca5
Photos/Files bug: the lightbox download handed nativeSaveFile a bare "/files/<id>" with no name, extension, or mime. Empty mime made bzSaveToPhotos short-circuit as "notmedia" — so saveToAlbum (and its permission prompt) never ran, and the image landed in the generic Files folder as an extension-less blob. Now nativeSaveFile trusts the server's Content-Type when the mime is unknown and appends a real extension (bzExtForMime/bzEnsureExt), so images reach the Images folder AND Photos. File preview: replace the @capacitor/share "share sheet" open with a new native FileOpener plugin (QLPreviewController). bzOpenFile now prefers a real Quick Look preview and only falls back to the share sheet if the plugin isn't in the build. Wired file-opener into mobile/package.json and the codemagic SPM diagnostics loop. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
23 lines
1015 B
Ruby
23 lines
1015 B
Ruby
require 'json'
|
|
|
|
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
|
|
|
|
Pod::Spec.new do |s|
|
|
# NOTE: the pod name MUST be 'FileOpener' (PascalCase of the npm package name 'file-opener').
|
|
# `cap sync` writes `pod 'FileOpener', :path => '../../plugins/file-opener'` into the generated Podfile,
|
|
# and CocoaPods then looks for a file literally named FileOpener.podspec whose s.name is 'FileOpener'.
|
|
# Any other name → "No podspec found for `FileOpener`" and pod install fails. (Same trap that broke the
|
|
# AudioRoute build — see mobile/plugins/audio-route/AudioRoute.podspec.)
|
|
s.name = 'FileOpener'
|
|
s.version = package['version']
|
|
s.summary = package['description']
|
|
s.license = package['license']
|
|
s.homepage = 'https://bizgaze.com'
|
|
s.author = 'BizGaze'
|
|
s.source = { :git => 'https://bizgaze.com/file-opener.git', :tag => s.version.to_s }
|
|
s.source_files = 'ios/Sources/**/*.{swift,h,m}'
|
|
s.ios.deployment_target = '15.0'
|
|
s.dependency 'Capacitor'
|
|
s.swift_version = '5.1'
|
|
end
|