Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
203 commits
Select commit Hold shift + click to select a range
32d14e5
feat: feat: added recordVideo and playVideo (from monorepo)
alexgerardojacinto Mar 2, 2026
868cff5
feat: add first version of editPhoto
alexgerardojacinto Mar 3, 2026
f30e012
feat(android): add editPhoto and editURIPhoto
alexgerardojacinto Mar 4, 2026
cec37c8
feat: added chooseFromGallery
OS-ruimoreiramendes Mar 5, 2026
072f57b
update EditManager constructor and edit interfaces
OS-ruimoreiramendes Mar 5, 2026
a275a9c
added new PlayVideoOptions interface
OS-ruimoreiramendes Mar 6, 2026
595a6f4
change takePhoto result interface
OS-ruimoreiramendes Mar 6, 2026
bd76ce3
update native lib dependency names
OS-ruimoreiramendes Mar 6, 2026
3559c68
chore: add example app with ionic start
OS-pedrogustavobilro Mar 10, 2026
bb9f652
chore: Update ignore files for linter
OS-pedrogustavobilro Mar 10, 2026
d3e0897
chore: update example app dependencies
OS-pedrogustavobilro Mar 10, 2026
1a62a51
chore: Add Android native app
OS-pedrogustavobilro Mar 10, 2026
27ff3c3
chore: Add iOS native app
OS-pedrogustavobilro Mar 10, 2026
8f43969
chore: ios auto-update
OS-pedrogustavobilro Mar 10, 2026
755d6e5
chore(example-app): Port camera screen from capacitor-testapp
OS-pedrogustavobilro Mar 10, 2026
94c901b
chore(example-app): Add native permissions
OS-pedrogustavobilro Mar 10, 2026
406b795
chore(example-app): Add burguer menu
OS-pedrogustavobilro Mar 10, 2026
c564862
use editManager to edit photos
OS-ruimoreiramendes Mar 10, 2026
2ca663f
chore: initial example app (#3)
OS-pedrogustavobilro Mar 10, 2026
3b537de
update TODO comment
OS-ruimoreiramendes Mar 10, 2026
d3e357e
refactor: Separate camera screen into different pages
OS-pedrogustavobilro Mar 10, 2026
c3c86b2
Merge branch 'development' into chore/revamp-example-app
OS-pedrogustavobilro Mar 10, 2026
2d1159f
chore: Post-merge fixes
OS-pedrogustavobilro Mar 10, 2026
fc042eb
chore(example-app): Add old methods under a specific section
OS-pedrogustavobilro Mar 11, 2026
e36964b
chore(example-app): Have default button and configurability for speci…
OS-pedrogustavobilro Mar 11, 2026
ca8f828
refactor(example): Place different methods in different components
OS-pedrogustavobilro Mar 11, 2026
8c15a4c
refactor(example-app): Rename sections for configurable options
OS-pedrogustavobilro Mar 11, 2026
6937a15
chore(example-app): Minor spacing in home screen
OS-pedrogustavobilro Mar 11, 2026
182052a
remove duplicated EditPhotoOptions interface
OS-ruimoreiramendes Mar 11, 2026
06aec37
chore(example-app): Swiper for multiple image viewing
OS-pedrogustavobilro Mar 11, 2026
49593be
chore(example-app): Add missing pwa-elements
OS-pedrogustavobilro Mar 11, 2026
18cd11d
Merge branch 'feat/RMET-4099/gallery' into chore/RMET-5023/new-capaci…
OS-pedrogustavobilro Mar 11, 2026
d0addf7
refactor(example-app): Remove unnecessary SimpleCameraButton
OS-pedrogustavobilro Mar 12, 2026
1884bf5
chore(example-app): Fix TypeScript build error
OS-pedrogustavobilro Mar 12, 2026
727ded8
chore(example-app): Add screen for video recording
OS-pedrogustavobilro Mar 12, 2026
087d03a
chore(example-app): Fix default calls for methods
OS-pedrogustavobilro Mar 12, 2026
99baa76
chore(example-app): Improve limited library functions testing
OS-pedrogustavobilro Mar 12, 2026
d41ef01
chore(example-app): add option to clear media from UI
OS-pedrogustavobilro Mar 12, 2026
a79c7be
chore(example-app): Call new TakePicture/TakePhoto
OS-pedrogustavobilro Mar 12, 2026
1d8caab
chore(example-app): displaying either Photos or Videos for Gallery tests
OS-pedrogustavobilro Mar 12, 2026
9262b93
added fix to limit the max number of photos allowed to be picked from…
OS-ruimoreiramendes Mar 12, 2026
45c7da9
chore(example-app): Implement screen for chooseFromGallery
OS-pedrogustavobilro Mar 12, 2026
ecab2d5
Merge branch 'feat/RMET-4099/gallery' into chore/RMET-5023/new-capaci…
OS-pedrogustavobilro Mar 12, 2026
1f82f4a
Merge branch 'development' into feat/RMET-4099/camera-unification
OS-pedrogustavobilro Mar 12, 2026
c77bbd9
Merge branch 'feat/RMET-4099/camera-unification' into chore/RMET-5023…
OS-pedrogustavobilro Mar 12, 2026
a14b13c
Merge branch 'feat/RMET-4099/camera-unification' into feat/RMET-4099/…
OS-ruimoreiramendes Mar 13, 2026
7cc3927
added limit to chooseFromGallery
OS-ruimoreiramendes Mar 13, 2026
ca2f25f
Merge branch 'feat/RMET-4099/gallery' into feat/RMET-4099/gallery-limit
OS-ruimoreiramendes Mar 13, 2026
de0148a
Merge branch 'chore/RMET-5023/new-capacitor-example-app' into feat/RM…
OS-ruimoreiramendes Mar 13, 2026
186004e
added limit to chooseFromGallery
OS-ruimoreiramendes Mar 13, 2026
f8db708
chore(example-app): EditURIPhoto button inside existing pages
OS-pedrogustavobilro Mar 13, 2026
be9e9f9
chore(example-app): Add images to test edit out-of-the-box
OS-pedrogustavobilro Mar 13, 2026
1974b92
chore(example-app): Add new screen to test editPhoto and editURIPhoto
OS-pedrogustavobilro Mar 13, 2026
8bcdbdb
Merge branch 'feat/RMET-4099/gallery' into chore/RMET-5023/new-capaci…
OS-pedrogustavobilro Mar 16, 2026
dc8ed01
change native lib file names
OS-ruimoreiramendes Mar 16, 2026
f16fb7f
chore(example-app): add empty space to bottom of screen
OS-pedrogustavobilro Mar 16, 2026
3578168
Merge branch 'feat/RMET-4099/gallery' into chore/RMET-5023/new-capaci…
OS-pedrogustavobilro Mar 16, 2026
68c957e
chore(example-app): Update to latest ionic framework version
OS-pedrogustavobilro Mar 16, 2026
719ddfb
chore(example-app): Media History page for camera plugin method returns
OS-pedrogustavobilro Mar 16, 2026
098082a
chore(example-app): Use file viewer to open media history items
OS-pedrogustavobilro Mar 16, 2026
74c5cc3
chore(example-app): Minor clarification in media history page
OS-pedrogustavobilro Mar 16, 2026
cc02a90
chore(example-app): show error code along with message
OS-pedrogustavobilro Mar 16, 2026
527b400
chore: fix lint issues
OS-pedrogustavobilro Mar 16, 2026
dffe536
refactor: Switch API methods order and fix @since
OS-pedrogustavobilro Mar 16, 2026
a7102be
chore: Update new methods docs and mark old ones deprecated
OS-pedrogustavobilro Mar 16, 2026
9ff833b
chore: Update README
OS-pedrogustavobilro Mar 16, 2026
4d58919
chore: Update docs for input options for takePhoto / getPhoto
OS-pedrogustavobilro Mar 16, 2026
5f8fdb7
update GallerySettings and VideoSettings do data class
OS-ruimoreiramendes Mar 16, 2026
2fbd899
chore: add missing encoding type to TakePhotoOptions
OS-pedrogustavobilro Mar 17, 2026
4c1b429
Merge pull request #1 from ionic-team/feat/RMET-4099/gallery
OS-ruimoreiramendes Mar 17, 2026
cb4fd0b
chore: Update gallery options
OS-pedrogustavobilro Mar 17, 2026
b06dc93
Merge branch 'feat/RMET-4099/camera-unification' into feat/RMET-4098/…
OS-pedrogustavobilro Mar 17, 2026
9751eeb
chore: Update edit inputs and outputs
OS-pedrogustavobilro Mar 17, 2026
c22fba2
chore: Update video options
OS-pedrogustavobilro Mar 17, 2026
76db6f9
docs: Remove ':' after @default
OS-pedrogustavobilro Mar 17, 2026
dcac903
chore: Fix takePhoto input TS interface
OS-pedrogustavobilro Mar 17, 2026
5953655
chore: fix lint issues
OS-pedrogustavobilro Mar 17, 2026
5006f99
chore: Update API for MediaResult(s)
OS-pedrogustavobilro Mar 17, 2026
f6eaab7
chore: Mark additional interfaces as deprecated
OS-pedrogustavobilro Mar 17, 2026
471df14
chore(example-app): Fix Typescript build issues and better support fo…
OS-pedrogustavobilro Mar 17, 2026
4ea7047
chore: Add missing default for allowEdits
OS-pedrogustavobilro Mar 17, 2026
bf9bc80
chore(example-app): Improve configuration for Choose Gallery screen
OS-pedrogustavobilro Mar 17, 2026
db7e21b
refactor(example-app): improve configurability for pages
OS-pedrogustavobilro Mar 17, 2026
de4de93
added editInApp feature for chooseFromGallery
OS-ruimoreiramendes Mar 18, 2026
5aa3d9d
fix result object
OS-ruimoreiramendes Mar 18, 2026
dd9b872
delete local file path from settings.gradle
OS-ruimoreiramendes Mar 18, 2026
930587d
feat: add isPersistent to RecordVideo
alexgerardojacinto Mar 18, 2026
8dd27b2
refactor: update references to managers removing authority parameter
alexgerardojacinto Mar 18, 2026
112ba67
added editInApp feature for takePhoto
OS-ruimoreiramendes Mar 18, 2026
1e58154
remove extra whitespaces
OS-ruimoreiramendes Mar 18, 2026
7988654
feat(android): add type, thumbnail, resolution, and creationDate to r…
alexgerardojacinto Mar 18, 2026
28fa2f8
Merge pull request #7 from ionic-team/feat/RMET-4098/add-persistent-v…
alexgerardojacinto Mar 19, 2026
cfa01ec
added separate settings files
OS-ruimoreiramendes Mar 19, 2026
eaf6bf1
fix conflicts
OS-ruimoreiramendes Mar 19, 2026
7244037
adjust settings to match new api
OS-ruimoreiramendes Mar 19, 2026
3601686
Merge pull request #6 from ionic-team/feat/RMET-4099/editInApp
OS-ruimoreiramendes Mar 19, 2026
b7ad328
Merge branch 'feat/RMET-4099/camera-unification' into fix/RMET-4099/t…
OS-ruimoreiramendes Mar 19, 2026
f8d7fa2
align new api
OS-ruimoreiramendes Mar 19, 2026
b6809cc
Merge pull request #10 from ionic-team/fix/RMET-4099/takePhoto-api
OS-ruimoreiramendes Mar 19, 2026
51e3354
refactor: MediaType interface
OS-pedrogustavobilro Mar 19, 2026
ea121a2
refactor: Correct PlayVideoOptions
OS-pedrogustavobilro Mar 19, 2026
e92d133
refactor: Change to targetWidth/targetHeight on new methods
OS-pedrogustavobilro Mar 19, 2026
d6218d3
Merge branch 'feat/RMET-4099/camera-unification' into refactor/minor-…
OS-pedrogustavobilro Mar 19, 2026
beae72c
chore: fix lint issues
OS-pedrogustavobilro Mar 19, 2026
7a81c2c
align chooseFromGallery with new API
OS-ruimoreiramendes Mar 20, 2026
872616a
align both edit mehtods with new API
OS-ruimoreiramendes Mar 20, 2026
ddcc235
Merge pull request #12 from ionic-team/feat/RMET-4099/chooseFromGalle…
OS-ruimoreiramendes Mar 20, 2026
cc50536
Merge branch 'feat/RMET-4099/camera-unification' into refactor/minor-…
OS-pedrogustavobilro Mar 20, 2026
73799a1
docs: Fix description for new targetWidth/Height parameters
OS-pedrogustavobilro Mar 20, 2026
33c70c8
refactor(android): correcting gallery settings parsing
OS-pedrogustavobilro Mar 20, 2026
69693d9
Merge pull request #11 from ionic-team/refactor/minor-api-changes
OS-pedrogustavobilro Mar 20, 2026
dd8653c
feat: add IONCameraLib as pod and spm dependency
andredestro Mar 20, 2026
38b21e0
fix: update authority used for files
alexgerardojacinto Mar 20, 2026
2e52a06
refactor(android): update authority use for files
alexgerardojacinto Mar 20, 2026
21b2a6c
refactor(android): update authority used for files
alexgerardojacinto Mar 20, 2026
093d6e7
chore(example-app): Allow saving more items to Media History
OS-pedrogustavobilro Mar 20, 2026
b21b0a6
Merge branch 'feat/RMET-4099/camera-unification' of https://github.co…
OS-pedrogustavobilro Mar 20, 2026
e68decd
chore(example-app): minor code simplification
OS-pedrogustavobilro Mar 20, 2026
734773b
feat: handle lib result
andredestro Mar 21, 2026
c6be5a2
feat: implement ios lib calls
andredestro Mar 23, 2026
cb4644d
chore(example-app): Improve textual inputs state management
OS-pedrogustavobilro Mar 23, 2026
31ff8cd
refactor: avoid tight coupling by using dependency injection (#13)
alexgerardojacinto Mar 23, 2026
df463ee
feat: add webPath to media result
andredestro Mar 23, 2026
f0a823a
fix width/height when value is lower than 1
OS-ruimoreiramendes Mar 23, 2026
ecf2b1c
chore: run fmt
OS-pedrogustavobilro Mar 23, 2026
df9dbe9
remove null assertions
OS-ruimoreiramendes Mar 23, 2026
f18cfc8
Merge pull request #14 from ionic-team/fix/RMET-5024/width-and-height
OS-ruimoreiramendes Mar 23, 2026
1f82abf
refactor: move constants to IonCameraFlow and LegacyCameraFlow
alexgerardojacinto Mar 23, 2026
69cdaf6
feat: add web implementation for takePhoto and chooseFromGallery
alexgerardojacinto Mar 23, 2026
1d255a1
chore: fix lint issues
OS-pedrogustavobilro Mar 24, 2026
3987865
docs: Minor correction on MediaType
OS-pedrogustavobilro Mar 24, 2026
fda773f
Merge branch 'feat/RMET-4099/camera-unification' into feat/RMET-5029/…
OS-pedrogustavobilro Mar 24, 2026
6f2504b
feat: get resolution for images and videos
alexgerardojacinto Mar 24, 2026
ce960fe
refactor: remove redundant assign
alexgerardojacinto Mar 24, 2026
96e5abf
fix: use rear camera as default
alexgerardojacinto Mar 24, 2026
a05e1df
feat: add size, creationDate, and duration to new Web functions
alexgerardojacinto Mar 24, 2026
ebdf7ae
fix: remove limit parameter from Web
alexgerardojacinto Mar 24, 2026
8db1dbd
fix: add thumbnail to chooseFromGallery, for both images and videos
alexgerardojacinto Mar 24, 2026
99f89c5
refactor: remove duplicated code
alexgerardojacinto Mar 24, 2026
5463939
feat: use includeMetadata for takePhoto and chooseFromGallery on Web
alexgerardojacinto Mar 24, 2026
db31e98
fix: show photos on older methods when resultType base64 or dataUrl
OS-ruimoreiramendes Mar 24, 2026
8b0f1c5
refactor: avoid code duplication and improve event listeners
alexgerardojacinto Mar 24, 2026
0f4c9f3
chore(android): update Android bridge with new lib version
alexgerardojacinto Mar 24, 2026
d0d2a6f
chore: remove redundant doc
alexgerardojacinto Mar 25, 2026
6573fec
chore: update docs
alexgerardojacinto Mar 25, 2026
2ca8617
chore: update docs
alexgerardojacinto Mar 25, 2026
aeaadff
chore: update src/definitions.ts
alexgerardojacinto Mar 25, 2026
8998b2c
refactor: make Photo.saved optional like other parameters (e.g. exif)
alexgerardojacinto Mar 25, 2026
8e3f565
refactor: make MediaMetadata.resolution optional
alexgerardojacinto Mar 25, 2026
92ede10
refactor: remove duplicated code
alexgerardojacinto Mar 25, 2026
6772ebc
refactor: avoid returning 0 resolution
alexgerardojacinto Mar 25, 2026
2e37fc9
fix: always return video thumbnail
alexgerardojacinto Mar 25, 2026
17525f6
fix: remove resolution from if condition
alexgerardojacinto Mar 25, 2026
02bd832
chore: run prettier to fix lint issues
alexgerardojacinto Mar 25, 2026
87c4740
added new video parameters and remove videoSettings
OS-ruimoreiramendes Mar 25, 2026
bb17258
Merge branch 'feat/RMET-5029/update-web' into feat/add-video-parameters
OS-ruimoreiramendes Mar 25, 2026
c53bb1a
revert editParameters changes
OS-ruimoreiramendes Mar 25, 2026
378c440
feat(web): add web implementation for takePhoto and chooseFromGallery…
alexgerardojacinto Mar 26, 2026
27da04d
fix conflicts
OS-ruimoreiramendes Mar 26, 2026
72efd81
remove optinal on saved
OS-ruimoreiramendes Mar 26, 2026
9290052
Merge pull request #17 from ionic-team/feat/add-video-parameters
OS-ruimoreiramendes Mar 26, 2026
ee5545b
docs: Exif not available on video
OS-pedrogustavobilro Mar 27, 2026
6581d83
chore(android): Add additional intent to queries
OS-pedrogustavobilro Mar 27, 2026
5630a3d
Merge pull request #19 from ionic-team/chore/android-queries
OS-pedrogustavobilro Mar 27, 2026
86badce
fix: properly ask for gallery permissions and update errors (#18)
alexgerardojacinto Mar 27, 2026
1c8fe8f
Merge commit '86badce37ce55125b65ee8b091fafdf52236ad6b' into feat/RME…
andredestro Mar 27, 2026
103dad2
Merge pull request #20 from ionic-team/feat/RMET-5025/ios-unification
andredestro Mar 27, 2026
38e2bf7
chore: use Maven dependency for Android library
alexgerardojacinto Mar 30, 2026
0104166
fix: use dependency as @aar
alexgerardojacinto Mar 30, 2026
5b65423
fix(ios): Podspec source fields
OS-pedrogustavobilro Mar 31, 2026
7adf2c7
chore: Correct github repository
OS-pedrogustavobilro Mar 31, 2026
d354340
chore(ios): fix lint issues
OS-pedrogustavobilro Mar 31, 2026
1fb9478
chore(example-app): Display MediaResult#saved value
OS-pedrogustavobilro Mar 31, 2026
81a0297
ci: Fixed version for npm
OS-pedrogustavobilro Mar 31, 2026
ea93a2c
Merge pull request #22 from ionic-team/ci/npm-version
OS-pedrogustavobilro Mar 31, 2026
4e36617
fix metadata to avoid return an empty object
OS-ruimoreiramendes Mar 31, 2026
970f46c
feat(ios): added exif in mediaresult
andredestro Mar 31, 2026
1f7e2a2
fix(ios): nest exif data inside metadata object in media result
andredestro Mar 31, 2026
314cbc3
docs: README for example app
OS-pedrogustavobilro Mar 31, 2026
867429d
fix(ios): Correct creationDate encoding
OS-pedrogustavobilro Mar 31, 2026
e3cb1bf
Merge pull request #23 from ionic-team/fix/android-metadata
OS-ruimoreiramendes Mar 31, 2026
9ad2783
Merge pull request #24 from ionic-team/fix/ios-creation-date
OS-pedrogustavobilro Mar 31, 2026
2c7fd55
Merge pull request #21 from ionic-team/feat/exif-ios
OS-pedrogustavobilro Mar 31, 2026
d53e985
chore: update dependency to IONCameraLib iOS library
alexgerardojacinto Mar 31, 2026
dfbd9e4
feat(ios): clean temporary files
andredestro Apr 1, 2026
a521ee7
feat(ios): remove observer on deinit
andredestro Apr 1, 2026
728b98e
Merge pull request #25 from ionic-team/feat(ios)--clean-temporary-fil…
andredestro Apr 1, 2026
d73c471
fix(android): remove @aar from dependency
OS-pedrogustavobilro Apr 1, 2026
8455745
refactor: replace editInApp / allowEdit with editable in API
OS-pedrogustavobilro Apr 1, 2026
5d67b68
refactor(android): use new editable parameter
OS-pedrogustavobilro Apr 1, 2026
d07b68d
chore(example-app): Add way to test new editable parameter
OS-pedrogustavobilro Apr 1, 2026
ba93a8c
tmp: Point to iOS branch to test
OS-pedrogustavobilro Apr 1, 2026
751c813
fix: properly handle case where image is null or empty
alexgerardojacinto Apr 1, 2026
1cbb377
fix: editPhoto should use inputImage and outputImage, not strcture
alexgerardojacinto Apr 1, 2026
44da477
Merge pull request #27 from ionic-team/fix/edit-photo-empty
OS-pedrogustavobilro Apr 2, 2026
11e7397
Merge pull request #26 from ionic-team/refactor/edit-options-new-API
OS-pedrogustavobilro Apr 2, 2026
75d4239
chore: update dependency to iOS library
alexgerardojacinto Apr 2, 2026
3c456f3
fix(ios): Remove temporary branch from Package.swift
OS-pedrogustavobilro Apr 2, 2026
c35eb13
docs: Clarify about format
OS-pedrogustavobilro Apr 2, 2026
3febe68
docs: add migration guide from 8.0 to 8.1.0 and other docs (#28)
alexgerardojacinto Apr 9, 2026
6ccb0b0
chore(android): mark old methods as deprecated (#29)
OS-pedrogustavobilro Apr 9, 2026
537cee8
ci: Use Xcode 26 and Build example app (#4)
OS-pedrogustavobilro Apr 9, 2026
9810dbe
chore: Update native Android and iOS dependencies (#30)
OS-pedrogustavobilro Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
build
.build
dist
example-app
6 changes: 5 additions & 1 deletion .github/actions/setup-tools/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@ runs:
# Ensure npm 11.5.1 or later is installed for Trusted publishing
- name: Update npm
shell: bash
run: npm install -g npm@latest
run: npm install -g npm@~11.10.0
- name: Install dependencies
shell: bash
run: npm i
- name: Set Xcode 26.0 # minimum support Xcode version by Capacitor 8
if: runner.os == 'macOS'
shell: bash
run: sudo xcode-select --switch /Applications/Xcode_26.0.app
32 changes: 30 additions & 2 deletions .github/workflows/continuous_integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
runs-on: 'macos-15'
timeout-minutes: 30
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: 'Setup Tools'
uses: ./.github/actions/setup-tools
- name: 'Verify Android'
Expand All @@ -38,8 +38,36 @@ jobs:
runs-on: 'macos-15'
timeout-minutes: 30
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: 'Setup Tools'
uses: ./.github/actions/setup-tools
- name: 'Verify iOS'
run: npm run verify:ios

build-example-app-android:
needs: ['verify-plugin-ios', 'verify-plugin-android']
runs-on: 'macos-15'
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: 'Setup Tools'
uses: ./.github/actions/setup-tools
- name: 'Prepare example app'
uses: ./.github/actions/prepare-example-app
- name: 'Build Android example app'
working-directory: ./example-app/android
run: ./gradlew clean assembleDebug

build-example-app-ios:
needs: ['verify-plugin-ios', 'verify-plugin-android']
runs-on: 'macos-15'
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: 'Setup Tools'
uses: ./.github/actions/setup-tools
- name: 'Prepare example app'
uses: ./.github/actions/prepare-example-app
- name: 'Build iOS example app'
working-directory: ./example-app/ios/App
run: xcodebuild clean build -project App.xcodeproj -scheme App CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
2 changes: 1 addition & 1 deletion .github/workflows/reusable_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: "ubuntu-24.04"
timeout-minutes: 30
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.THE_GH_RELEASE_TOKEN || github.token }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable_lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: 'macos-15'
timeout-minutes: 30
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
token: ${{ secrets.THE_GH_RELEASE_TOKEN || github.token }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable_setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
token: ${{ secrets.THE_GH_RELEASE_TOKEN || github.token }}

Expand Down
4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
build
.build
dist
example-app
67 changes: 67 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Contributing

This guide provides instructions for contributing to this Capacitor plugin.

## Native code

This repository contains minimal code for native Android and iOS. The implementation for native mobile exists in separate repositories:

- [Contributing for Android](https://github.com/ionic-team/ion-android-camera?tab=readme-ov-file#contributing)
- [Contributing for iOS](https://github.com/ionic-team/ion-ios-camera?tab=readme-ov-file#contributing)

## Developing

### Local Setup

1. Fork and clone the repo.
2. Install the dependencies to use the plugin.

```shell
npm install
```

3. Install SwiftLint if you're on macOS.

```shell
brew install swiftlint
```

### Scripts

#### `npm run build`

Build the plugin web assets and generate plugin API documentation using [`@capacitor/docgen`](https://github.com/ionic-team/capacitor-docgen).

It will compile the TypeScript code from `src/` into ESM JavaScript in `dist/esm/`. These files are used in apps with bundlers when your plugin is imported.

Then, Rollup will bundle the code into a single file at `dist/plugin.js`. This file is used in apps without bundlers by including it as a script in `index.html`.

#### `npm run verify`

Build and validate the web and native projects.

This is run in CI to verify that the plugin builds for all platforms.

#### `npm run lint` / `npm run fmt`

Check formatting and code quality, autoformat/autofix if possible.

The `lint` command is run in CI. We recommend running `lint` and/or `fmt` before opening a PR,

## Commits/PR's

Commits and PR's should use the [conventional-commits](https://www.conventionalcommits.org/) format so the release process can version and create changelog correctly.

## Publishing

Publishing is automated based on the branch committed to. When a commit or merge is made to a branch a release that corresponds with the branch will be created (main requires manual trigger):

| Branch Name | Build Type | NPM Tag | Example NPM Version |
| ----------- | ----------------------------- | ------- | ---------------------------------- |
| development | dev | dev | @capacitor/camera@1.0.0-dev.1 |
| next | next (these are betas/alphas) | next | @capacitor/camera@1.0.0-next.1 |
| main | latest | latest | @capacitor/camera@1.0.0 |

- In general new developments will go straight to `main`. If we want to have non-stable versions (e.g. for new Capacitor versions or when there are many changes), we may use `next` or `development` branch, and then once they are ready for stable version, open a PR to main (should be merged to keep commit hashes for `semantic-release`).

> **Note**: The [`files`](https://docs.npmjs.com/cli/configuring-npm/package-json) array in `package.json` specifies which files get published. If you rename files/directories or add files elsewhere, you may need to update it.
5 changes: 3 additions & 2 deletions CapacitorCamera.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ Pod::Spec.new do |s|
s.license = package['license']
s.homepage = 'https://capacitorjs.com'
s.author = package['author']
s.source = { :git => 'https://github.com/ionic-team/capacitor-plugins.git', :tag => package['name'] + '@' + package['version'] }
s.source_files = 'ios/Sources/**/*.{swift,h,m,c,cc,mm,cpp}', 'camera/ios/Sources/**/*.{swift,h,m,c,cc,mm,cpp}'
s.source = { :git => 'https://github.com/ionic-team/capacitor-camera.git', :tag => "v#{s.version}" }
s.source_files = 'ios/Sources/**/*.{swift,h,m,c,cc,mm,cpp}',
s.ios.deployment_target = '15.0'
s.dependency 'Capacitor'
s.dependency 'IONCameraLib', spec='~> 1.0.0'
s.swift_version = '5.1'
end
6 changes: 4 additions & 2 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,16 @@ let package = Package(
targets: ["CameraPlugin"])
],
dependencies: [
.package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", from: "8.0.0")
.package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", from: "8.0.0"),
.package(url: "https://github.com/ionic-team/ion-ios-camera.git", from: "1.0.0")
],
targets: [
.target(
name: "CameraPlugin",
dependencies: [
.product(name: "Capacitor", package: "capacitor-swift-pm"),
.product(name: "Cordova", package: "capacitor-swift-pm")
.product(name: "Cordova", package: "capacitor-swift-pm"),
.product(name: "IONCameraLib", package: "ion-ios-camera")
],
path: "ios/Sources/CameraPlugin"),
.testTarget(
Expand Down
Loading