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.
- package/INTEGRATION_GUIDE.md +63 -10
- package/README.md +72 -13
- package/RELEASE_MANIFEST.json +4 -4
- package/package.json +2 -2
package/INTEGRATION_GUIDE.md
CHANGED
|
@@ -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
|
-
|
|
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@
|
|
62
|
+
npm install react-native-iinstall@latest
|
|
61
63
|
# OR
|
|
62
|
-
yarn add react-native-iinstall@
|
|
64
|
+
yarn add react-native-iinstall@latest
|
|
63
65
|
```
|
|
64
66
|
|
|
65
|
-
**Key improvements
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|
package/RELEASE_MANIFEST.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.2.
|
|
2
|
+
"version": "0.2.18",
|
|
3
3
|
"highlights": [
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
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.
|
|
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": "
|
|
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",
|