Files
ux/ios/ux.podspec
agra 0b5618948a camera podspec: mirror darwin/Camera on every build, not just pod install
`prepare_command` runs only on `pod install`. Mid-iteration Swift
edits to `darwin/Camera/*.swift` would never reach the built binary
until the user ran pod install or cleaned the Pods dir — confusing
during debugging (NSLog/diag additions silently absent from the
running app).

Add a `script_phases` build phase to both podspecs that rsyncs
darwin/Camera into Classes/Camera-shared before each compile. The
existing `prepare_command` stays as the install-time primer that
gives CocoaPods the initial file set to glob; the build phase keeps
contents fresh on every Swift edit thereafter. Verified: the resulting
binary now contains the NSLog strings that the prior build was
missing.

(Adding new files to darwin/Camera/ still requires pod install so
CocoaPods' source_files glob picks them up — script_phases only
refreshes content of files CocoaPods already knows about.)
2026-05-13 21:20:39 +03:00

38 lines
1.5 KiB
Ruby

Pod::Spec.new do |s|
s.name = 'ux'
s.version = '0.9.0'
s.summary = 'UX Kit — Flutter plugin: keyboard, sensor, file, QR scanner, and camera.'
s.homepage = 'https://swipelab.co/ux.html'
s.license = { :file => '../LICENSE' }
s.author = { 'Swipelab' => 'hello@swipelab.co' }
s.source = { :path => '.' }
# Mirror the shared `darwin/Camera/` Swift files into a local
# `Classes/Camera-shared/` so CocoaPods picks them up via the
# normal glob — neither symlinks nor `../` escapes work
# (Pathname.glob bails on both).
#
# `prepare_command` only runs on `pod install`. Swift edits in
# `darwin/Camera/` between installs would never reach the built
# binary — the mirror would be stale. The build script phase
# below re-runs the mirror before each compile to keep contents
# fresh.
s.prepare_command = 'rm -rf Classes/Camera-shared && cp -R ../darwin/Camera Classes/Camera-shared'
s.script_phases = [{
:name => 'Mirror darwin/Camera',
:execution_position => :before_compile,
:script => <<-CMD
set -e
SRC="${PODS_TARGET_SRCROOT}/../darwin/Camera"
DEST="${PODS_TARGET_SRCROOT}/Classes/Camera-shared"
[ -d "$SRC" ] || exit 0
mkdir -p "$DEST"
rsync -a --delete "$SRC/" "$DEST/"
CMD
}]
s.source_files = 'Classes/**/*.swift'
s.frameworks = ['AVFoundation', 'CoreMedia', 'CoreVideo', 'Photos', 'PhotosUI']
s.dependency 'Flutter'
s.ios.deployment_target = '13.0'
s.swift_version = '5.0'
end