@nitra/capacitor-plugin-smartmerch-camera
v9.0.0
Published
-
Readme
@nitra/capacitor-plugin-smartmerch-camera
Install
npm install @nitra/capacitor-plugin-smartmerch-camera
npx cap syncsmcamera_swiftios вже включений у опублікований пакет (готовий SPM-модуль) — жодних додаткових мережевих запитів чи доступу до приватного GitLab на боці споживача не потрібно.
CocoaPods (legacy)
Потрібно додати джерело приватного репо в Podfile додатку:
source 'https://<SM_GIT_CREDENTIALS>@smartmerch-infotek.gitlab.yandexcloud.net/mobile/smcamera_swiftios'iOS — SPM міграція
Як реалізовано
smcamera_swiftios — приватна бібліотека без власного Package.swift, тому підключення як remote SPM-пакета неможливе. Натомість обрано підхід з завантаженням сирців на етапі публікації плагіна:
- Версія SDK зафіксована в
.smcamera-version(корінь репо) - Перед
npm publish(prepublishOnly) запускаєтьсяscripts/fetch-smcamera.js - Скрипт клонує запінену версію
smcamera_swiftiosз приватного GitLab - Застосовує патчі для сумісності з SPM (
Bundle.moduleзамістьBundle(for:)) - Генерує
Package.swiftі розміщує все вios/smcamera_swiftios/ - Готовий результат публікується разом з пакетом (
filesуpackage.json) — споживачі отримують SDK вже всередині tarball, без доступу до приватного GitLab
Package.swift
└── .package(path: "ios/smcamera_swiftios") ← генерується при публікації, входить у пакетПапка ios/smcamera_swiftios/ додана в .gitignore (не комітиться — генерується заново з фіксованого тегу), але явно включена в files і .npmignore не виключає її з опублікованого пакета.
Версіонування
Версія SDK явно запінена в .smcamera-version. Щоб оновити SDK:
npm run bump-smcamera # бере останній тег з GitLab, оновлює .smcamera-version
npm run test:fetch-smcamera # перевіряє клон + патчі + swift package resolveДалі — закомітити оновлений .smcamera-version і випустити нову версію плагіна.
Для локальної розробки без зміни піна можна тимчасово перевизначити версію:
SMCAMERA_VERSION=1.0.40 npm run fetch-smcameraПоточна завантажена версія зберігається в ios/smcamera_swiftios/.version — повторний запуск з тим самим піном пропускає завантаження.
Перевірка
npm run test:fetch-smcameraСкрипт scripts/verify-fetch-smcamera.js перевіряє структуру пакета, SPM-патчі та (на macOS) swift package resolve. Той самий крок (fetch-smcamera + verify:fetch-smcamera) виконується автоматично в prepublishOnly і в CI перед публікацією (потрібен секрет SM_GIT_CREDENTIALS). Тестовий додаток у example-app/ використовує локальний SPM-пакет — див. example-app/README.md.
