react-native-iinstall 0.2.16 → 0.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -49,20 +49,22 @@ yarn add react-native-iinstall
49
49
  Install required native peer dependencies at app root:
50
50
 
51
51
  ```bash
52
- npm install react-native-sensors react-native-view-shot react-native-device-info react-native-audio-recorder-player react-native-record-screen
52
+ npm install react-native-sensors@7.3.0 react-native-view-shot@3.1.2 react-native-device-info@10.0.0 react-native-audio-recorder-player@3.6.4 react-native-record-screen@0.6.2
53
53
  ```
54
54
 
55
- ### Updating to Latest Version (v0.2.14)
55
+ Use `react-native-audio-recorder-player@3.6.4` unless you explicitly need v4+. Version 4.x requires `react-native-nitro-modules`.
56
+
57
+ ### Updating to Latest Version
56
58
 
57
59
  If you're using an older version, update to get the latest audio/video improvements:
58
60
 
59
61
  ```bash
60
- npm install react-native-iinstall@0.2.14
62
+ npm install react-native-iinstall@latest
61
63
  # OR
62
- yarn add react-native-iinstall@0.2.14
64
+ yarn add react-native-iinstall@latest
63
65
  ```
64
66
 
65
- **Key improvements in v0.2.7:**
67
+ **Key improvements (current line):**
66
68
  - Fixed audio codec compatibility (AAC instead of ALAC)
67
69
  - Enhanced screen recording reliability
68
70
  - Improved modal state management
@@ -73,6 +75,51 @@ If you are on iOS and not using Expo Go, remember to install pods:
73
75
  cd ios && pod install
74
76
  ```
75
77
 
78
+ ### Android build compatibility (RN 0.84+ / AGP 8+)
79
+
80
+ If your Android build fails due to old repositories or Kotlin/JVM targets, align your app config to Java 17:
81
+
82
+ `android/build.gradle`
83
+ ```gradle
84
+ allprojects {
85
+ repositories {
86
+ google()
87
+ mavenCentral()
88
+ }
89
+ }
90
+ ```
91
+
92
+ `android/app/build.gradle`
93
+ ```gradle
94
+ android {
95
+ compileOptions {
96
+ sourceCompatibility JavaVersion.VERSION_17
97
+ targetCompatibility JavaVersion.VERSION_17
98
+ }
99
+ }
100
+
101
+ kotlinOptions {
102
+ jvmTarget = "17"
103
+ }
104
+ ```
105
+
106
+ No `android/gradlew` script changes are needed.
107
+
108
+ Temporary workaround for third-party modules that still ship incompatible Gradle files:
109
+
110
+ ```bash
111
+ npm install -D patch-package
112
+ ```
113
+
114
+ `package.json`
115
+ ```json
116
+ {
117
+ "scripts": {
118
+ "postinstall": "patch-package"
119
+ }
120
+ }
121
+ ```
122
+
76
123
  ---
77
124
 
78
125
  ## 4. Configure the SDK
@@ -108,6 +155,12 @@ If you pass `pushToken`, SDK auto-registers it to the backend using:
108
155
 
109
156
  `POST /api/notifications/push/register`
110
157
 
158
+ If you use React Native Firebase to get the token, install:
159
+
160
+ ```bash
161
+ npm install @react-native-firebase/app @react-native-firebase/messaging
162
+ ```
163
+
111
164
  ```tsx
112
165
  import React from 'react';
113
166
  import messaging from '@react-native-firebase/messaging';
@@ -140,11 +193,11 @@ import { registerPushToken, unregisterPushToken } from 'react-native-iinstall';
140
193
 
141
194
  ---
142
195
 
143
- ## 6. Audio & Video Feedback (v0.2.14+)
196
+ ## 6. Audio & Video Feedback (recommended on v0.2.18+)
144
197
 
145
198
  The SDK now supports **Audio Feedback** (Voice Notes) and **Screen Recording** with enhanced compatibility and reliability.
146
199
 
147
- ### Key Improvements in v0.2.7
200
+ ### Key Improvements
148
201
 
149
202
  1. **Audio Codec Fix**: Audio recordings now use AAC codec instead of ALAC, ensuring compatibility with dashboard audio players
150
203
  2. **Modal State Management**: Improved handling of audio state to prevent stale data between feedback sessions
@@ -155,7 +208,7 @@ The SDK now supports **Audio Feedback** (Voice Notes) and **Screen Recording** w
155
208
  These features require native modules. If you haven't already, run:
156
209
 
157
210
  ```bash
158
- npm install react-native-sensors react-native-view-shot react-native-device-info react-native-audio-recorder-player react-native-record-screen
211
+ npm install react-native-sensors@7.3.0 react-native-view-shot@3.1.2 react-native-device-info@10.0.0 react-native-audio-recorder-player@3.6.4 react-native-record-screen@0.6.2
159
212
  cd ios && pod install
160
213
  ```
161
214
 
@@ -224,7 +277,7 @@ A: The app will work fine, but features like "Shake to Report" and automatic ses
224
277
  A: Ensure your project icon URL is valid. If the image fails to load, the dashboard now automatically falls back to showing the project's initial letter on a styled background.
225
278
 
226
279
  **Q: Audio feedback shows 0:00 duration in dashboard?**
227
- A: Update to SDK v0.2.14+ which includes the audio codec compatibility fixes. Audio files are encoded as AAC for browser playback.
280
+ A: Update to SDK v0.2.18+ and rebuild after installing the pinned peer dependencies. Audio files are encoded as AAC for browser playback.
228
281
 
229
282
  **Q: Screen recording sometimes doesn't capture?**
230
- A: Update to SDK v0.2.14+ which includes enhanced URI extraction and better error handling for screen recordings across different devices.
283
+ A: Update to SDK v0.2.18+ which includes enhanced URI extraction and better error handling for screen recordings across different devices.
package/README.md CHANGED
@@ -36,14 +36,62 @@ Transform your app's feedback collection with our powerful shake-to-report SDK.
36
36
 
37
37
  2. Install required native peer dependencies in your app root:
38
38
  ```bash
39
- npm install react-native-sensors react-native-view-shot react-native-device-info react-native-audio-recorder-player react-native-record-screen
39
+ npm install react-native-sensors@7.3.0 react-native-view-shot@3.1.2 react-native-device-info@10.0.0 react-native-audio-recorder-player@3.6.4 react-native-record-screen@0.6.2
40
40
  ```
41
41
 
42
+ We recommend `react-native-audio-recorder-player@3.6.4`. If you install v4+, you must also install `react-native-nitro-modules`.
43
+
42
44
  3. Link native modules (iOS only, non-Expo):
43
45
  ```bash
44
46
  cd ios && pod install
45
47
  ```
46
48
 
49
+ ## Android Build Compatibility (RN 0.84+)
50
+
51
+ If your app is on React Native 0.84+ / modern Android Gradle Plugin, use JDK 17 and modern repositories.
52
+
53
+ `android/build.gradle`:
54
+
55
+ ```gradle
56
+ allprojects {
57
+ repositories {
58
+ google()
59
+ mavenCentral()
60
+ }
61
+ }
62
+ ```
63
+
64
+ `android/app/build.gradle`:
65
+
66
+ ```gradle
67
+ android {
68
+ compileOptions {
69
+ sourceCompatibility JavaVersion.VERSION_17
70
+ targetCompatibility JavaVersion.VERSION_17
71
+ }
72
+ }
73
+
74
+ kotlinOptions {
75
+ jvmTarget = "17"
76
+ }
77
+ ```
78
+
79
+ No `android/gradlew` script changes are required.
80
+
81
+ Temporary fallback when third-party modules still ship old Gradle/Kotlin config:
82
+
83
+ ```bash
84
+ npm install -D patch-package
85
+ ```
86
+
87
+ ```json
88
+ {
89
+ "scripts": {
90
+ "postinstall": "patch-package"
91
+ }
92
+ }
93
+ ```
94
+
47
95
  ## Usage
48
96
 
49
97
  Wrap your main app component with the `<IInstall>` provider.
@@ -52,24 +100,13 @@ Wrap your main app component with the `<IInstall>` provider.
52
100
  import React from 'react';
53
101
  import { IInstall } from 'react-native-iinstall';
54
102
  import AppNavigation from './src/AppNavigation';
55
- import messaging from '@react-native-firebase/messaging';
56
103
 
57
104
  const App = () => {
58
- const [pushToken, setPushToken] = React.useState<string>();
59
-
60
- React.useEffect(() => {
61
- messaging()
62
- .getToken()
63
- .then(setPushToken)
64
- .catch(() => undefined);
65
- }, []);
66
-
67
105
  return (
68
106
  // Get your API Key from the IInstall Dashboard (Project Settings)
69
107
  <IInstall
70
108
  apiKey="YOUR_PROJECT_API_KEY"
71
109
  apiEndpoint="https://iinstall.app" // Optional, defaults to production
72
- pushToken={pushToken} // Optional: auto-registers token to iinstall backend
73
110
  enabled={__DEV__} // Optional: Only enable in dev/test builds
74
111
  >
75
112
  <AppNavigation />
@@ -80,6 +117,26 @@ const App = () => {
80
117
  export default App;
81
118
  ```
82
119
 
120
+ Optional push token (React Native Firebase):
121
+
122
+ ```bash
123
+ npm install @react-native-firebase/app @react-native-firebase/messaging
124
+ ```
125
+
126
+ ```tsx
127
+ import messaging from '@react-native-firebase/messaging';
128
+
129
+ const pushToken = await messaging().getToken();
130
+
131
+ <IInstall
132
+ apiKey="YOUR_PROJECT_API_KEY"
133
+ apiEndpoint="https://iinstall.app"
134
+ pushToken={pushToken}
135
+ >
136
+ <AppNavigation />
137
+ </IInstall>
138
+ ```
139
+
83
140
  ## 🚀 Perfect For
84
141
 
85
142
  - **Beta Testing Programs** - Collect rich feedback from beta testers
@@ -176,8 +233,10 @@ await unregisterPushToken({
176
233
  - **Shake not working?** Test on real device or enable "Shake" in simulator
177
234
  - **Network errors?** Verify `apiEndpoint` is base URL only (not `/api/sdk/issue`)
178
235
  - **Permissions denied?** Check platform-specific setup in integration guide
179
- - **Audio issues?** Ensure SDK v0.2.14+ and rebuild after native peer install
236
+ - **Audio issues?** Ensure SDK v0.2.18+ and rebuild after native peer install
180
237
  - **Native module is null/undefined?** Reinstall peer deps in app root, run `cd ios && pod install`, then rebuild the app
238
+ - **Android error `Project with path ':react-native-nitro-modules' could not be found`?** Downgrade to `react-native-audio-recorder-player@3.6.4` (or install `react-native-nitro-modules` when using audio-recorder-player v4+)
239
+ - **Android build fails on `jcenter()` or Kotlin JVM target mismatch?** Use `mavenCentral()` and set Java/Kotlin target to `17`; if dependency scripts are old, patch with `patch-package`
181
240
 
182
241
  ### Getting Help
183
242
  - 📖 [Complete Integration Guide](INTEGRATION_GUIDE.md)
@@ -1,8 +1,8 @@
1
1
  {
2
- "version": "0.2.16",
2
+ "version": "0.2.18",
3
3
  "highlights": [
4
- "Native modules now declared as peer dependencies for reliable app-root autolinking",
5
- "SDK now lazy-loads native modules and degrades gracefully instead of hard crashing",
6
- "Updated integration docs with explicit peer dependency install commands"
4
+ "Pinned native peer install guidance to avoid Android dependency drift",
5
+ "Added RN 0.84+ compatibility notes (JDK 17, mavenCentral, Kotlin JVM target 17)",
6
+ "Documented patch-package fallback for incompatible third-party native modules"
7
7
  ]
8
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-iinstall",
3
- "version": "0.2.16",
3
+ "version": "0.2.18",
4
4
  "description": "🎯 IInstall React Native SDK - The ultimate beta testing & QA feedback tool. Shake-to-report with voice recordings, screen recordings, and screenshots. Zero-config setup with TypeScript support. Perfect for beta testing, QA teams, and user feedback collection.",
5
5
  "author": "TesterFlow Team",
6
6
  "license": "MIT",
@@ -49,7 +49,7 @@
49
49
  "peerDependencies": {
50
50
  "react": ">=16.8.0",
51
51
  "react-native": ">=0.60.0",
52
- "react-native-audio-recorder-player": "^3.6.4",
52
+ "react-native-audio-recorder-player": ">=3.6.4 <4",
53
53
  "react-native-device-info": "^10.0.0",
54
54
  "react-native-record-screen": "^0.6.2",
55
55
  "react-native-sensors": "^7.3.0",