Updating the ios bridge

- Updated bridging files
- Updated index.js
- Tested
- Documented index.js
This commit is contained in:
Yousef Hamza 2016-10-10 18:08:20 +02:00
parent 7e1fbad19f
commit 1c3d1b3b4d
64 changed files with 576 additions and 271 deletions

View File

@ -9,219 +9,507 @@ import { NativeModules } from 'react-native';
let {Instabug} = NativeModules;
module.exports = {
startWithToken: function(toke, invocationEvent) {
/**
* Starts the SDK.
* This is the main SDK method that does all the magic. This is the only
* method that SHOULD be called.
* Should be called in constructor of the app registery component
* @param {string} token The token that identifies the app, you can find
* it on your dashboard.
* @param {constants.invocationEvent} invocationEvent The event that invokes
* the SDK's UI.
*/
startWithToken: function(token, invocationEvent) {
Instabug.startWithToken(token, invocationEvent);
},
/**
* Invokes the SDK manually with the default invocation mode.
* Shows a view that asks the user whether they want to start a chat, report
* a problem or suggest an improvement.
*/
invoke: function() {
Instabug.invoke();
},
/**
* Invokes the SDK with a specific mode.
* Invokes the SDK and show a specific view, instead of showing a prompt for
* users to choose from.
* @param {constants.invocationMode} invocationMode Specifies which mode the
* SDK is going to start with.
*/
invokeWithInvocationMode: function(invocationMode) {
Instabug.invokeWithInvocationMode(invocationMode);
},
/**
* Dismisses any Instabug views that are currently being shown.
*/
dismiss: function () {
Instabug.dismiss();
},
/**
* Attaches a file to each report being sent.
* A new copy of the file at fileLocation will be attached with each bug
* report being sent.
* Each call to this method overrides the file to be attached.
* The file has to be available locally at the provided path.
* @param {string} fileLocation Path to a file that's going to be attached
* to each report.
*/
// Not yet testsed
setFileAttachment: function(fileLocation) {
Instabug.setFileAttachment(fileLocation);
},
/**
* Attaches user data to each report being sent.
* Each call to this method overrides the user data to be attached.
* Maximum size of the string is 1,000 characters.
* @param {string} userData A string to be attached to each report, with a
* maximum size of 1,000 characters.
*/
setUserData: function(userData) {
Instabug.setUserData(userData);
},
/**
* Adds custom logs that will be sent with each report.
* @param {string} log Message to be logged.
*/
// Needs renaming
IBGLog: function(log) {
Instabug.IBGLog(log);
},
/**
* Sets whether the SDK is tracking user steps or not.
* Enabling user steps would give you an insight on the scenario a user has
* performed before encountering a bug or a crash. User steps are attached
* with each report being sent.
* @param {boolean} isUserStepsEnabled A boolean to set user steps tracking
* to being enabled or disabled.
*/
// Not working
setUserStepsEnabled: function(isUserStepsEnabled) {
Instabug.setUserStepsEnabled(isUserStepsEnabled);
},
/**
* Sets a block of code to be executed before sending each report.
* This block is executed in the background before sending each report. Could
* be used for attaching logs and extra data to reports.
* @callback handler - A callback that gets executed before sending each bug
* report.
*/
setPreSendingHandler: function(handler) {
Instabug.setPreSendingHandler(handler);
},
/**
* Sets a block of code to be executed just before the SDK's UI is presented.
* This block is executed on the UI thread. Could be used for performing any
* UI changes before the SDK's UI is shown.
* @callback handler - A callback that gets executed before sending each bug report.
*/
setPreInvocationHandler: function(handler) {
Instabug.setPreInvocationHandler(handler);
},
/**
* Sets a block of code to be executed right after the SDK's UI is dismissed.
* This block is executed on the UI thread. Could be used for performing any
* UI changes after the SDK's UI is dismissed.
* @callback handler - A callback that gets executed after the SDK's UI is dismissed.
* @param {constants.dismissType} How the SDK was dismissed.
* @param {constants.reportType} Type of report that has been sent. Will be set
* to IBGReportTypeBug in case the SDK has been dismissed without selecting a
* report type, so you might need to check issueState before reportType
*/
setPostInvocatioHandler: function(handler) {
Instabug.setPostInvocatioHandler(handler);
},
/**
* Present a view that educates the user on how to invoke the SDK with the
* currently set invocation event.
*/
showIntroMessage: function() {
Instabug.showIntroMessage();
},
/**
* Sets the default value of the user's email and hides the email field
* from the reporting UI.
* Defaults to an empty string.
* @param {string} userEmail An email address to be set as the user's email.
*/
setUserEmail: function(userEmail) {
Instabug.setUserEmail(userEmail);
},
/**
* Sets the default value of the user's name to be included with all reports.
* Defaults to an empty string.
* @param {string} userName Name of the user to be set.
*/
setUserName: function(userName) {
Instabug.setUserName(userName);
},
/**
* Enables/disables screenshot view when reporting a bug/improvement.
* By default, screenshot view is shown when reporting a bug, but not when
* sending feedback.
* @param {boolean} willSkipeScreenshotAnnotation sets whether screenshot view is
* shown or not. Passing YES will show screenshot view for both feedback and
* bug reporting, while passing NO will disable it for both.
*/
// Doesn't work on existing SDK
setWillSkipScreenshotAnnotation: function(willSkipeScreenshotAnnotation) {
Instabug.setWillSkipScreenshotAnnotation(willSkipeScreenshotAnnotation);
},
getUnreadMessagesCount: function() {
var count = 0;
returnCallBack = function(response) {
count = response;
}
Instabug.getUnreadMessagesCount(returnCallBack);
return count;
/**
* Returns the number of unread messages the user currently has.
* Use this method to get the number of unread messages the user
* has, then possibly notify them about it with your own UI.
* @callback responseCallback
* @param {number} responseCount Notifications count, or -1 incase the SDK has
* not been initialized.
*/
getUnreadMessagesCount: function(responseCallBack) {
Instabug.getUnreadMessagesCount(responseCallBack);
},
/**
* Sets the event that invoke the feedback form.
* Default is set by `Instabug.startWithToken`.
* @param {constants.invocattionEvent} invocationEvent Event that invokes the
* feedback form.
*/
setInvocationEvent: function(invocationEvent) {
Instabug.setInvocationEvent(invocationEvent);
},
/**
* Enables/disables the use of push notifications in the SDK.
* Defaults to YES.
* @param {boolean} isPushNotificationEnabled A boolean to indicate whether push
* notifications are enabled or disabled.
*/
// Not tested
setPushNotificationsEnabled: function(isPushNotificationEnabled) {
Instabug.setPushNotificationsEnabled(isPushNotificationEnabled);
},
/**
* Sets whether users are required to enter an email address or not when
* sending reports.
* Defaults to YES.
* @param {boolean} isEmailFieldRequired A boolean to indicate whether email
* field is required or not.
*/
setEmailFieldRequired: function(isEmailFieldRequired) {
Instabug.setEmailFieldRequired(isEmailFieldRequired);
},
/**
* Sets whether users are required to enter a comment or not when sending reports.
* Defaults to NO.
* @param {boolean} isCommentFieldRequired A boolean to indicate whether comment
* field is required or not.
*/
setCommentFieldRequired: function(isCommentFieldRequired) {
Instabug.setCommentFieldRequired(isCommentFieldRequired);
},
/**
* Sets the threshold value of the shake gesture for iPhone/iPod Touch and iPad.
* Default for iPhone is 2.5.
* Default for iPad is 0.6.
* @param {number} iPhoneShakingThreshold Threshold for iPhone.
* @param {number} iPadShakingThreshold Threshold for iPad.
*/
setShakingThresholdForiPhone: function(iphoneThreshold, ipadThreshold) {
Instabug.setShakingThresholdForiPhone(iphoneThreshold, ipadThreshold);
},
/**
* Sets the default edge and offset from the top at which the floating button
* will be shown. Different orientations are already handled.
* Default for `floatingButtonEdge` is `constants.rectEdge.maxX`.
* Default for `floatingButtonOffsetFromTop` is 50
* @param {constants.rectEdge} floatingButtonEdge `maxX` to show on the right,
* or `minX` to show on the left.
* @param {numnber} offsetFromTop floatingButtonOffsetFromTop Top offset for
* floating button.
*/
setFloatingButtonEdge: function(floatingButtonEdge, offsetFromTop) {
Instabug.setFloatingButtonEdge(floatingButtonEdge, offsetFromTop);
},
setLocal: function(local) {
Instabug.setLocal(local);
/**
* Sets the SDK's locale.
* Use to change the SDK's UI to different language.
* Defaults to the device's current locale.
* @param {constants.locale} locale A locale to set the SDK to.
*/
setLocale: function(locale) {
Instabug.setLocale(locale);
},
/**
* Sets whether the intro message that gets shown on launching the app is
* enabled or not.
* Defaults to YES.
* @param {boolean} isIntroMessageEnabled A boolean to indicate whether the
* intro message is enabled or not.
*/
setIntroMessageEnabled: function(isIntroMessageEnabled) {
Instabug.setIntroMessageEnabled(isIntroMessageEnabled);
},
/**
* Sets the color theme of the SDK's whole UI.
* @param {contants.colorTheme) colorTheme An `constants.colorTheme` to set
* the SDK's UI to.
*/
setColorTheme: function(colorTheme) {
Instabug.setColorTheme(colorTheme);
},
// Make sure to test it
/**
* Sets the primary color of the SDK's UI.
* Sets the color of UI elements indicating interactivity or call to action.
* To use, import processColor and pass to it with argument the color hex
* as argument.
* @param {color} color A color to set the UI elements of the SDK to.
*/
setPrimaryColor: function(primaryColor) {
Instabug.setPrimaryColor(primaryColor);
},
addTags: function(tags) {
Instabug.addTags(tags);
/**
* Appends a set of tags to previously added tags of reported feedback,
* bug or crash.
* @param {string[]} tags An array of tags to append to current tags.
*/
appendTags: function(tags) {
Instabug.appendTags(tags);
},
// TODO: research this: vvvv
// + (void)setScreenshotCapturingHandler:(UIImage *(^)())screenshotCapturingHandler;
/**
* Manually removes all tags of reported feedback, bug or crash.
*/
resetTags: function () {
Instabug.resetTags();
},
getTags: function() {
var tags = [];
returnCallBack = function(response) {
tags = response;
}
Instabug.getUnreadMessagesCount(returnCallBack);
return tags;
/**
* Gets all tags of reported feedback, bug or crash.
* @callback responseCallback
* @param {string[]} tags of reported feedback, bug or crash.
*/
getTags: function(responseCallBack) {
Instabug.getTags(responseCallBack);
},
/**
* Overrides any of the strings shown in the SDK with custom ones.
* Allows you to customize any of the strings shown to users in the SDK.
* @param {string} string String value to override the default one.
* @param {constants.strings} key Key of string to override.
*/
setStringToKey: function(string, key) {
Instabug.setString(string, key);
}
replaceKeyWithString: function(string, key) {
Instabug.setString(string, key);
},
/**
* Sets whether attachments in bug reporting and in-app messaging are enabled or not.
* @param {boolean} screenShot A boolean to enable or disable screenshot attachments.
* @param {boolean} extraScreenShot A boolean to enable or disable extra
* screenshot attachments.
* @param {boolean} galleryImage A boolean to enable or disable gallery image
* attachments. In iOS 10+,NSPhotoLibraryUsageDescription should be set in
* info.plist to enable gallery image attachments.
* @param {boolean} voiceNote A boolean to enable or disable voice note attachments.
* In iOS 10+, NSMicrophoneUsageDescription should be set in info.plist to enable
* voiceNote attachments.
* @param {boolean} screenRecording A boolean to enable or disable screen recording attachments.
*/
// TODO: investigate doing it in more like JS pattern
setAttachmentTypesEnabled: function(screenshot, extraScreenshot, galleryImage, screenRecording) {
Instabug.setAttachmentTypesEnabledScreenShot(screenshot, extraScreenshot, galleryImage, screenRecording);
setAttachmentTypesEnabled: function(screenshot, extraScreenshot, galleryImage, voiceNote, screenRecording) {
Instabug.setAttachmentTypesEnabled(screenshot, extraScreenshot, galleryImage, voiceNote, screenRecording);
},
/**
* Enables/disables showing in-app notifications when the user receives a
* new message.
* @param {boolean} isChatNotificationEnabled A boolean to set whether
* notifications are enabled or disabled.
*/
// Not tested
setChatNotificationEnabled: function(isChatNotificationEnabled) {
Instabug.setChatNotificationEnabled(isChatNotificationEnabled);
},
// On new message handler!
/**
* Enables/disables prompt options when SDK is invoked.
* When only a single option is enabled, it become the default invocation mode.
* If all options are disabled, bug reporting becomes the default invocation mode.
* By default, all three options are enabled.
* @param {boolean} bugReportEnabled A boolean to indicate whether bug reports
* are enabled or disabled.
* @param {boolean} feedbackEnabled A boolean to indicate whether feedback is
* enabled or disabled.
* @param {boolean} chatEnabled A boolean to indicate whether chat is enabled
* or disabled.
*/
// TODO: investigate doing it in more like JS pattern
setPromptOptions: function(isBugReportingEnabled, isFeedbackReportingEnabled, isChatEnabled) {
Instabug.setPromptOptionsEnabledWithBug(isBugReportingEnabled, isFeedbackReportingEnabled, isChatEnabled);
Instabug.setPromptOptions(isBugReportingEnabled, isFeedbackReportingEnabled, isChatEnabled);
},
isInstabugNotification: function(notification) {
var ibgNotifcation = false;
returnCallBack = function(response) {
ibgNotifcation = response;
}
Instabug.isInstabugNotification(returnCallBack);
return ibgNotifcation;
/**
* Checks if a notification is from Instabug.
* If you are using push notifications, use this method to check whether an
* incoming notification is from Instabug or not. If this method returns YES,
* you should call didReceiveRemoteNotification: to let the Instabug handle
* the notification. Otherwise, handle the notification on your own.
* @param {Object} dict Notification's userInfo
* @callback responseCallback
* @param {boolean} isInstabugNotification
*/
// Not tested
isInstabugNotification: function(dict, responseCallback) {
Instabug.isInstabugNotification(dict, responseCallback);
},
IBGConstants: {
constants: {
/**
* The event used to invoke the feedback form
*/
invocationEvent: {
None: Instabug.invocationEventNone,
Shake: Instabug.invocationEventShake,
Screenshot: Instabug.invocationEventScreenshot,
TwoFingersSwipe: Instabug.invocationEventTwoFingersSwipe,
RightEdgePan: Instabug.invocationEventRightEdgePan,
FloatingButton: Instabug.invocationEventFloatingButton
none: Instabug.invocationEventNone,
shake: Instabug.invocationEventShake,
screenshot: Instabug.invocationEventScreenshot,
twoFingersSwipe: Instabug.invocationEventTwoFingersSwipe,
rightEdgePan: Instabug.invocationEventRightEdgePan,
floatingButton: Instabug.invocationEventFloatingButton
},
/**
* Type of SDK dismiss
*/
dismissType: {
Submit: Instabug.dismissTypeSubmit,
Cancel: Instabug.dismissTypeCancel,
AddAttachment: Instabug.dismissTypeAddAttachment
submit: Instabug.dismissTypeSubmit,
cancel: Instabug.dismissTypeCancel,
addAttachment: Instabug.dismissTypeAddAttachment
},
/**
* Type of report to be submit
*/
reportType: {
Bug: Instabug.reportTypeBug,
Feedback: Instabug.reportTypeFeedback
bug: Instabug.reportTypeBug,
feedback: Instabug.reportTypeFeedback
},
/**
* The mode used upon invocating the SDK
*/
invocationMode: {
NA: Instabug.invocationModeNA,
NewBug: Instabug.invocationModeNewBug,
NewFeedback: Instabug.invocationModeNewFeedback,
NewChat: Instabug.invocationModeNewChat,
ChatsList: Instabug.invocationModeChatsList
newBug: Instabug.invocationModeNewBug,
newFeedback: Instabug.invocationModeNewFeedback,
newChat: Instabug.invocationModeNewChat,
chatsList: Instabug.invocationModeChatsList
},
local: {
Arabic: Instabug.localArabic,
ChineseSimplified: Instabug.localChineseSimplified,
ChineseTraditional: Instabug.localChineseTraditional,
Czech: Instabug.localCzech,
Danish: Instabug.localDanish,
English: Instabug.localEnglish,
French: Instabug.localFrench,
German: Instabug.localGerman,
Italian: Instabug.localItalian,
Japanese: Instabug.localJapanese,
Polish: Instabug.localPolish,
PortugueseBrazil: Instabug.localPortugueseBrazil,
Russian: Instabug.localRussian,
Spanish: Instabug.localSpanish,
Swedish: Instabug.localSwedish,
Turkish: Instabug.localTurkish
/**
* The supported locales
*/
locale: {
arabic: Instabug.localeArabic,
chineseSimplified: Instabug.localeChineseSimplified,
chineseTraditional: Instabug.localeChineseTraditional,
czech: Instabug.localeCzech,
danish: Instabug.localeDanish,
english: Instabug.localeEnglish,
french: Instabug.localeFrench,
german: Instabug.localeGerman,
italian: Instabug.localeItalian,
japanese: Instabug.localeJapanese,
polish: Instabug.localePolish,
portugueseBrazil: Instabug.localePortugueseBrazil,
russian: Instabug.localeRussian,
spanish: Instabug.localeSpanish,
swedish: Instabug.localeSwedish,
turkish: Instabug.localeTurkish
},
/**
* The color theme of the different UI elements
*/
colorTheme: {
Light: Instabug.colorThemeLight,
Dark: Instabug.colorThemeDark
light: Instabug.colorThemeLight,
dark: Instabug.colorThemeDark
},
/**
* Rectangle edges
*/
rectEdge: {
minX: Instabug.rectMinXEdge,
minY: Instabug.rectMinYEdge,
maxX: Instabug.rectMaxXEdge,
maxY: Instabug.rectMaxYEdge
},
/**
* Instabug strings
*/
strings: {
shakeHint: Instabug.shakeHint,
swipeHint: Instabug.swipeHint,
edgeSwipeStartHint: Instabug.edgeSwipeStartHint,
startAlertText: Instabug.startAlertText,
invalidEmailMessage: Instabug.invalidEmailMessage,
invalidEmailTitle: Instabug.invalidEmailTitle,
invalidCommentMessage: Instabug.invalidCommentMessage,
invalidCommentTitle: Instabug.invalidCommentTitle,
invocationHeader: Instabug.invocationHeader,
talkToUs: Instabug.talkToUs,
reportBug: Instabug.reportBug,
reportFeedback: Instabug.reportFeedback,
emailFieldHint: Instabug.emailFieldHint,
commentFieldHintForBugReport: Instabug.commentFieldHintForBugReport,
commentFieldHintForFeedback: Instabug.commentFieldHintForFeedback,
addVideoMessage: Instabug.addVideoMessage,
addVoiceMessage: Instabug.addVoiceMessage,
addImageFromGallery: Instabug.addImageFromGallery,
addExtraScreenshot: Instabug.addExtraScreenshot,
audioRecordingPermissionDeniedTitle: Instabug.audioRecordingPermissionDeniedTitle,
audioRecordingPermissionDeniedMessage: Instabug.audioRecordingPermissionDeniedMessage,
microphonePermissionAlertSettingsButtonText: Instabug.microphonePermissionAlertSettingsButtonText,
recordingMessageToHoldText: Instabug.recordingMessageToHoldText,
recordingMessageToReleaseText: Instabug.recordingMessageToReleaseText,
conversationsHeaderTitle: Instabug.conversationsHeaderTitle,
screenshotHeaderTitle: Instabug.screenshotHeaderTitle,
chatsNoConversationsHeadlineText: Instabug.chatsNoConversationsHeadlineText,
doneButtonText: Instabug.doneButtonText,
okButtonText: Instabug.okButtonText,
cancelButtonText: Instabug.cancelButtonText,
thankYouText: Instabug.thankYouText,
audio: Instabug.audio,
video: Instabug.video,
image: Instabug.image,
chatsHeaderTitle: Instabug.chatsHeaderTitle,
team: Instabug.team,
messageNotification: Instabug.messageNotification,
messagesNotifiactionAndOthers: Instabug.messagesNotifiactionAndOthers
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1015 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -91,8 +91,8 @@ echo "Instabug: Compressing dSYM file..."
# Upload dSYM
echo "Instabug: Uploading dSYM file..."
ENDPOINT="https://api.instabug.com/api/ios/v1/dsym"
STATUS=$(curl "${ENDPOINT}" --write-out %{http_code} --silent --output /dev/null -F dsym=@"${DSYM_PATH_ZIP}" -F token="${APP_TOKEN}")
ENDPOINT="https://api.instabug.com/api/sdk/v3/symbols_files"
STATUS=$(curl "${ENDPOINT}" --write-out %{http_code} --silent --output /dev/null -F symbols_file=@"${DSYM_PATH_ZIP}" -F application_token="${APP_TOKEN}")
if [ $STATUS -ne 200 ]; then
echo "Instabug: err: dSYM archive not succesfully uploaded."
echo "Instabug: deleting temporary dSYM archive..."

View File

@ -119,72 +119,78 @@ typedef NS_ENUM(NSInteger, IBGLocale) {
*/
typedef NS_ENUM(NSInteger, IBGString) {
//"<Shake> your device to talk to us"
IBGShakeHint,
IBGStringShakeHint,
//"<Swipe with 2 fingers> to talk to us"
IBGSwipeHint,
IBGStringSwipeHint,
//"<Swipe from the edge> to talk to us"
IBGEdgeSwipeStartHint,
IBGStringEdgeSwipeStartHint,
//"We love to hear your feedback"
IBGStartAlertText,
IBGStringStartAlertText,
//"Please enter a valid email"
IBGInvalidEmailMessage,
IBGStringInvalidEmailMessage,
//"Invalid Email"
IBGInvalidEmailTitle,
IBGStringInvalidEmailTitle,
//"Please enter a valid comment"
IBGInvalidCommentMessage,
IBGStringInvalidCommentMessage,
//"Invalid Comment"
IBGInvalidCommentTitle,
IBGStringInvalidCommentTitle,
//"Help & Feedback"
IBGInvocationHeader,
IBGStringInvocationHeader,
//"Talk to us"
IBGTalkToUs,
IBGStringTalkToUs,
//"Report bug"
IBGReportBug,
IBGStringReportBug,
//"Suggest an Improvement"
IBGReportFeedback,
IBGStringReportFeedback,
//"Enter your Email"
IBGEmailFieldHint,
IBGStringEmailFieldHint,
//"What went wrong?"
IBGCommentFieldHintForBugReport,
IBGStringCommentFieldHintForBugReport,
//"How can we improve?"
IBGCommentFieldHintForFeedback,
IBGStringCommentFieldHintForFeedback,
//"Record a Video Note"
IBGAddVideoMessage,
IBGStringAddVideoMessage,
//"Record a Voice Note"
IBGAddVoiceMessage,
IBGStringAddVoiceMessage,
//"Select Image from Gallery"
IBGAddImageFromGallery,
IBGStringAddImageFromGallery,
//"Take a Screenshot"
IBGAddExtraScreenshot,
IBGStringAddExtraScreenshot,
//"Microphone Access Denied"
IBGAudioRecordingPermissionDeniedTitle,
IBGStringAudioRecordingPermissionDeniedTitle,
//"You can enable access in Privacy Settings"
IBGAudioRecordingPermissionDeniedMessage,
IBGStringAudioRecordingPermissionDeniedMessage,
//"Settings"
IBGMicrophonePermissionAlertSettingsButtonText,
IBGStringMicrophonePermissionAlertSettingsButtonTitle,
//Conversations
IBGStringChatsHeaderTitle,
//Team
IBGStringTeam,
//"Press and Hold to Record"
IBGRecordingMessageToHoldText,
IBGStringRecordingMessageToHoldText,
//"Release to Attach"
IBGRecordingMessageToReleaseText,
//"Conversations"
IBGConversationsHeaderTitle,
IBGStringRecordingMessageToReleaseText,
//"%@ new messages from %@"
IBGStringMessagesNotification,
//%@ new messages from %@ and others
IBGStringMessagesNotificationAndOthers,
//"Draw on screenshot"
IBGScreenshotHeaderTitle,
IBGStringScreenshotHeaderTitle,
//"No Conversations Yet"
IBGChatsNoConversationsHeadlineText,
IBGStringChatsNoConversationsHeadlineText,
//"Done"
IBGDoneButtonText,
IBGStringDoneButtonTitle,
//"OK"
IBGOkButtonText,
IBGStringOkButtonTitle,
//"Cancel"
IBGCancelButtonText,
IBGStringCancelButtonTitle,
//"Thank you"
IBGThankYouText,
IBGStringThankYouText,
//"Audio"
IBGAudio,
IBGStringAudio,
//"Video"
IBGVideo,
IBGStringVideo,
//"Image"
IBGImage
IBGStringImage
};
//===========================================================================================================================================

View File

@ -490,7 +490,7 @@ OBJC_EXTERN void IBGLog(NSString *format, ...) NS_FORMAT_FUNCTION(1, 2);
@see IBGString
*/
+ (void)setString:(NSString*)value withKey:(IBGString)key;
+ (void)setString:(NSString*)value toKey:(IBGString)key;
/**
@brief Sets whether attachments in bug reporting and in-app messaging are enabled or not.

Binary file not shown.

View File

@ -119,72 +119,78 @@ typedef NS_ENUM(NSInteger, IBGLocale) {
*/
typedef NS_ENUM(NSInteger, IBGString) {
//"<Shake> your device to talk to us"
IBGShakeHint,
IBGStringShakeHint,
//"<Swipe with 2 fingers> to talk to us"
IBGSwipeHint,
IBGStringSwipeHint,
//"<Swipe from the edge> to talk to us"
IBGEdgeSwipeStartHint,
IBGStringEdgeSwipeStartHint,
//"We love to hear your feedback"
IBGStartAlertText,
IBGStringStartAlertText,
//"Please enter a valid email"
IBGInvalidEmailMessage,
IBGStringInvalidEmailMessage,
//"Invalid Email"
IBGInvalidEmailTitle,
IBGStringInvalidEmailTitle,
//"Please enter a valid comment"
IBGInvalidCommentMessage,
IBGStringInvalidCommentMessage,
//"Invalid Comment"
IBGInvalidCommentTitle,
IBGStringInvalidCommentTitle,
//"Help & Feedback"
IBGInvocationHeader,
IBGStringInvocationHeader,
//"Talk to us"
IBGTalkToUs,
IBGStringTalkToUs,
//"Report bug"
IBGReportBug,
IBGStringReportBug,
//"Suggest an Improvement"
IBGReportFeedback,
IBGStringReportFeedback,
//"Enter your Email"
IBGEmailFieldHint,
IBGStringEmailFieldHint,
//"What went wrong?"
IBGCommentFieldHintForBugReport,
IBGStringCommentFieldHintForBugReport,
//"How can we improve?"
IBGCommentFieldHintForFeedback,
IBGStringCommentFieldHintForFeedback,
//"Record a Video Note"
IBGAddVideoMessage,
IBGStringAddVideoMessage,
//"Record a Voice Note"
IBGAddVoiceMessage,
IBGStringAddVoiceMessage,
//"Select Image from Gallery"
IBGAddImageFromGallery,
IBGStringAddImageFromGallery,
//"Take a Screenshot"
IBGAddExtraScreenshot,
IBGStringAddExtraScreenshot,
//"Microphone Access Denied"
IBGAudioRecordingPermissionDeniedTitle,
IBGStringAudioRecordingPermissionDeniedTitle,
//"You can enable access in Privacy Settings"
IBGAudioRecordingPermissionDeniedMessage,
IBGStringAudioRecordingPermissionDeniedMessage,
//"Settings"
IBGMicrophonePermissionAlertSettingsButtonText,
IBGStringMicrophonePermissionAlertSettingsButtonTitle,
//Conversations
IBGStringChatsHeaderTitle,
//Team
IBGStringTeam,
//"Press and Hold to Record"
IBGRecordingMessageToHoldText,
IBGStringRecordingMessageToHoldText,
//"Release to Attach"
IBGRecordingMessageToReleaseText,
//"Conversations"
IBGConversationsHeaderTitle,
IBGStringRecordingMessageToReleaseText,
//"%@ new messages from %@"
IBGStringMessagesNotification,
//%@ new messages from %@ and others
IBGStringMessagesNotificationAndOthers,
//"Draw on screenshot"
IBGScreenshotHeaderTitle,
IBGStringScreenshotHeaderTitle,
//"No Conversations Yet"
IBGChatsNoConversationsHeadlineText,
IBGStringChatsNoConversationsHeadlineText,
//"Done"
IBGDoneButtonText,
IBGStringDoneButtonTitle,
//"OK"
IBGOkButtonText,
IBGStringOkButtonTitle,
//"Cancel"
IBGCancelButtonText,
IBGStringCancelButtonTitle,
//"Thank you"
IBGThankYouText,
IBGStringThankYouText,
//"Audio"
IBGAudio,
IBGStringAudio,
//"Video"
IBGVideo,
IBGStringVideo,
//"Image"
IBGImage
IBGStringImage
};
//===========================================================================================================================================

View File

@ -490,7 +490,7 @@ OBJC_EXTERN void IBGLog(NSString *format, ...) NS_FORMAT_FUNCTION(1, 2);
@see IBGString
*/
+ (void)setString:(NSString*)value withKey:(IBGString)key;
+ (void)setString:(NSString*)value toKey:(IBGString)key;
/**
@brief Sets whether attachments in bug reporting and in-app messaging are enabled or not.

View File

@ -119,72 +119,78 @@ typedef NS_ENUM(NSInteger, IBGLocale) {
*/
typedef NS_ENUM(NSInteger, IBGString) {
//"<Shake> your device to talk to us"
IBGShakeHint,
IBGStringShakeHint,
//"<Swipe with 2 fingers> to talk to us"
IBGSwipeHint,
IBGStringSwipeHint,
//"<Swipe from the edge> to talk to us"
IBGEdgeSwipeStartHint,
IBGStringEdgeSwipeStartHint,
//"We love to hear your feedback"
IBGStartAlertText,
IBGStringStartAlertText,
//"Please enter a valid email"
IBGInvalidEmailMessage,
IBGStringInvalidEmailMessage,
//"Invalid Email"
IBGInvalidEmailTitle,
IBGStringInvalidEmailTitle,
//"Please enter a valid comment"
IBGInvalidCommentMessage,
IBGStringInvalidCommentMessage,
//"Invalid Comment"
IBGInvalidCommentTitle,
IBGStringInvalidCommentTitle,
//"Help & Feedback"
IBGInvocationHeader,
IBGStringInvocationHeader,
//"Talk to us"
IBGTalkToUs,
IBGStringTalkToUs,
//"Report bug"
IBGReportBug,
IBGStringReportBug,
//"Suggest an Improvement"
IBGReportFeedback,
IBGStringReportFeedback,
//"Enter your Email"
IBGEmailFieldHint,
IBGStringEmailFieldHint,
//"What went wrong?"
IBGCommentFieldHintForBugReport,
IBGStringCommentFieldHintForBugReport,
//"How can we improve?"
IBGCommentFieldHintForFeedback,
IBGStringCommentFieldHintForFeedback,
//"Record a Video Note"
IBGAddVideoMessage,
IBGStringAddVideoMessage,
//"Record a Voice Note"
IBGAddVoiceMessage,
IBGStringAddVoiceMessage,
//"Select Image from Gallery"
IBGAddImageFromGallery,
IBGStringAddImageFromGallery,
//"Take a Screenshot"
IBGAddExtraScreenshot,
IBGStringAddExtraScreenshot,
//"Microphone Access Denied"
IBGAudioRecordingPermissionDeniedTitle,
IBGStringAudioRecordingPermissionDeniedTitle,
//"You can enable access in Privacy Settings"
IBGAudioRecordingPermissionDeniedMessage,
IBGStringAudioRecordingPermissionDeniedMessage,
//"Settings"
IBGMicrophonePermissionAlertSettingsButtonText,
IBGStringMicrophonePermissionAlertSettingsButtonTitle,
//Conversations
IBGStringChatsHeaderTitle,
//Team
IBGStringTeam,
//"Press and Hold to Record"
IBGRecordingMessageToHoldText,
IBGStringRecordingMessageToHoldText,
//"Release to Attach"
IBGRecordingMessageToReleaseText,
//"Conversations"
IBGConversationsHeaderTitle,
IBGStringRecordingMessageToReleaseText,
//"%@ new messages from %@"
IBGStringMessagesNotification,
//%@ new messages from %@ and others
IBGStringMessagesNotificationAndOthers,
//"Draw on screenshot"
IBGScreenshotHeaderTitle,
IBGStringScreenshotHeaderTitle,
//"No Conversations Yet"
IBGChatsNoConversationsHeadlineText,
IBGStringChatsNoConversationsHeadlineText,
//"Done"
IBGDoneButtonText,
IBGStringDoneButtonTitle,
//"OK"
IBGOkButtonText,
IBGStringOkButtonTitle,
//"Cancel"
IBGCancelButtonText,
IBGStringCancelButtonTitle,
//"Thank you"
IBGThankYouText,
IBGStringThankYouText,
//"Audio"
IBGAudio,
IBGStringAudio,
//"Video"
IBGVideo,
IBGStringVideo,
//"Image"
IBGImage
IBGStringImage
};
//===========================================================================================================================================

View File

@ -490,7 +490,7 @@ OBJC_EXTERN void IBGLog(NSString *format, ...) NS_FORMAT_FUNCTION(1, 2);
@see IBGString
*/
+ (void)setString:(NSString*)value withKey:(IBGString)key;
+ (void)setString:(NSString*)value toKey:(IBGString)key;
/**
@brief Sets whether attachments in bug reporting and in-app messaging are enabled or not.

View File

@ -15,8 +15,6 @@ RCT_EXPORT_MODULE(Instabug)
RCT_EXPORT_METHOD(startWithToken:(NSString *)token invocationEvent:(IBGInvocationEvent)invocationEvent) {
[Instabug startWithToken:token invocationEvent:invocationEvent];
[Instabug setCrashReportingEnabled:NO];
[Instabug setPushNotificationsEnabled:NO];
}
RCT_EXPORT_METHOD(invoke) {
@ -50,7 +48,9 @@ RCT_EXPORT_METHOD(IBGLog:(NSString *)log) {
}
RCT_EXPORT_METHOD(setUserStepsEnabled:(BOOL)isUserStepsEnabled) {
[Instabug setUserStepsEnabled:isUserStepsEnabled];
dispatch_async(dispatch_get_main_queue(), ^{
[Instabug setUserStepsEnabled:isUserStepsEnabled];
});
}
RCT_EXPORT_METHOD(setPreSendingHandler:(RCTResponseSenderBlock)callBack) {
@ -95,7 +95,7 @@ RCT_EXPORT_METHOD(setWillSkipScreenshotAnnotation:(BOOL)willSkipScreenshot) {
[Instabug setWillSkipScreenshotAnnotation:willSkipScreenshot];
}
RCT_EXPORT_METHOD(getUnReadMessageCount:(RCTResponseSenderBlock)callBack) {
RCT_EXPORT_METHOD(getUnreadMessagesCount:(RCTResponseSenderBlock)callBack) {
callBack(@[@([Instabug getUnreadMessagesCount])]);
}
@ -120,7 +120,7 @@ RCT_EXPORT_METHOD(setShakingThresholdForiPhone:(double)iPhoneShakingThreshold fo
}
RCT_EXPORT_METHOD(setFloatingButtonEdge:(CGRectEdge)floatingButtonEdge withTopOffset:(double)floatingButtonOffsetFromTop) {
[Instabug setFloatingButtonEdge:floatingButtonEdge withTopOffset:floatingButtonOffsetFromTop];
}
RCT_EXPORT_METHOD(setLocale:(IBGLocale)locale) {
@ -152,7 +152,7 @@ RCT_EXPORT_METHOD(getTags:(RCTResponseSenderBlock)callBack) {
}
RCT_EXPORT_METHOD(setString:(NSString*)value toKey:(IBGString)key) {
[Instabug setString:value withKey:key];
[Instabug setString:value toKey:key];
}
RCT_EXPORT_METHOD(setAttachmentTypesEnabled:(BOOL)screenShot
@ -183,8 +183,8 @@ RCT_EXPORT_METHOD(setPromptOptions:(BOOL)bugReportEnabled
chat:chatEnabled];
}
RCT_EXPORT_METHOD(isInstabugNotification:(NSDictionary *)notification) {
[Instabug isInstabugNotification:notification];
RCT_EXPORT_METHOD(isInstabugNotification:(NSDictionary *)notification callback:(RCTResponseSenderBlock)callBack) {
callBack(@[@([Instabug isInstabugNotification:notification])]);
}
- (NSDictionary *)constantsToExport
@ -228,40 +228,44 @@ RCT_EXPORT_METHOD(isInstabugNotification:(NSDictionary *)notification) {
@"colorThemeLight": @(IBGColorThemeLight),
@"colorThemeDark": @(IBGColorThemeDark),
@"shakeHint": @(IBGShakeHint),
@"swipeHint": @(IBGSwipeHint),
@"edgeSwipeStartHint": @(IBGEdgeSwipeStartHint),
@"startAlertText": @(IBGStartAlertText),
@"invalidEmailMessage": @(IBGInvalidEmailMessage),
@"invalidEmailTitle": @(IBGInvalidEmailTitle),
@"invalidCommentMessage": @(IBGInvalidCommentMessage),
@"invalidCommentTitle": @(IBGInvalidCommentTitle),
@"invocationHeader": @(IBGInvocationHeader),
@"talkToUs": @(IBGTalkToUs),
@"reportBug": @(IBGReportBug),
@"reportFeedback": @(IBGReportFeedback),
@"emailFieldHint": @(IBGEmailFieldHint),
@"commentFieldHintForBugReport": @(IBGCommentFieldHintForBugReport),
@"commentFieldHintForFeedback": @(IBGCommentFieldHintForFeedback),
@"addVideoMessage": @(IBGAddVideoMessage),
@"addVoiceMessage": @(IBGAddVoiceMessage),
@"addImageFromGallery": @(IBGAddImageFromGallery),
@"addExtraScreenshot": @(IBGAddExtraScreenshot),
@"audioRecordingPermissionDeniedTitle": @(IBGAudioRecordingPermissionDeniedTitle),
@"audioRecordingPermissionDeniedMessage": @(IBGAudioRecordingPermissionDeniedMessage),
@"microphonePermissionAlertSettingsButtonText": @(IBGMicrophonePermissionAlertSettingsButtonText),
@"recordingMessageToHoldText": @(IBGRecordingMessageToHoldText),
@"recordingMessageToReleaseText": @(IBGRecordingMessageToReleaseText),
@"conversationsHeaderTitle": @(IBGConversationsHeaderTitle),
@"screenshotHeaderTitle": @(IBGScreenshotHeaderTitle),
@"chatsNoConversationsHeadlineText": @(IBGChatsNoConversationsHeadlineText),
@"doneButtonText": @(IBGDoneButtonText),
@"okButtonText": @(IBGOkButtonText),
@"cancelButtonText": @(IBGCancelButtonText),
@"thankYouText": @(IBGThankYouText),
@"audio": @(IBGAudio),
@"video": @(IBGVideo),
@"image": @(IBGImage)
@"shakeHint": @(IBGStringShakeHint),
@"swipeHint": @(IBGStringSwipeHint),
@"edgeSwipeStartHint": @(IBGStringEdgeSwipeStartHint),
@"startAlertText": @(IBGStringStartAlertText),
@"invalidEmailMessage": @(IBGStringInvalidEmailMessage),
@"invalidEmailTitle": @(IBGStringInvalidEmailTitle),
@"invalidCommentMessage": @(IBGStringInvalidCommentMessage),
@"invalidCommentTitle": @(IBGStringInvalidCommentTitle),
@"invocationHeader": @(IBGStringInvocationHeader),
@"talkToUs": @(IBGStringTalkToUs),
@"reportBug": @(IBGStringReportBug),
@"reportFeedback": @(IBGStringReportFeedback),
@"emailFieldHint": @(IBGStringEmailFieldHint),
@"commentFieldHintForBugReport": @(IBGStringCommentFieldHintForBugReport),
@"commentFieldHintForFeedback": @(IBGStringCommentFieldHintForFeedback),
@"addVideoMessage": @(IBGStringAddVideoMessage),
@"addVoiceMessage": @(IBGStringAddVoiceMessage),
@"addImageFromGallery": @(IBGStringAddImageFromGallery),
@"addExtraScreenshot": @(IBGStringAddExtraScreenshot),
@"audioRecordingPermissionDeniedTitle": @(IBGStringAudioRecordingPermissionDeniedTitle),
@"audioRecordingPermissionDeniedMessage": @(IBGStringAudioRecordingPermissionDeniedMessage),
@"microphonePermissionAlertSettingsButtonText": @(IBGStringMicrophonePermissionAlertSettingsButtonTitle),
@"recordingMessageToHoldText": @(IBGStringRecordingMessageToHoldText),
@"recordingMessageToReleaseText": @(IBGStringRecordingMessageToReleaseText),
@"conversationsHeaderTitle": @(IBGStringChatsNoConversationsHeadlineText),
@"screenshotHeaderTitle": @(IBGStringScreenshotHeaderTitle),
@"chatsNoConversationsHeadlineText": @(IBGStringChatsNoConversationsHeadlineText),
@"doneButtonText": @(IBGStringDoneButtonTitle),
@"okButtonText": @(IBGStringOkButtonTitle),
@"cancelButtonText": @(IBGStringCancelButtonTitle),
@"thankYouText": @(IBGStringThankYouText),
@"audio": @(IBGStringAudio),
@"video": @(IBGStringVideo),
@"image": @(IBGStringImage),
@"chatsHeaderTitle": @(IBGStringChatsHeaderTitle),
@"team": @(IBGStringTeam),
@"messageNotification": @(IBGStringMessagesNotification),
@"messagesNotifiactionAndOthers": @(IBGStringMessagesNotificationAndOthers)
};
};

View File

@ -72,38 +72,43 @@ RCT_ENUM_CONVERTER(IBGColorTheme, (@{
}), IBGColorThemeLight, integerValue);
RCT_ENUM_CONVERTER(IBGString, (@{
@"shakeHint": @(IBGShakeHint),
@"swipeHint": @(IBGSwipeHint),
@"edgeSwipeStartHint": @(IBGEdgeSwipeStartHint),
@"startAlertText": @(IBGStartAlertText),
@"invalidEmailMessage": @(IBGInvalidEmailMessage),
@"invalidEmailTitle": @(IBGInvalidEmailTitle),
@"invalidCommentMessage": @(IBGInvalidCommentMessage),
@"invalidCommentTitle": @(IBGInvalidCommentTitle),
@"invocationHeader": @(IBGInvocationHeader),
@"talkToUs": @(IBGTalkToUs),
@"reportBug": @(IBGReportBug),
@"reportFeedback": @(IBGReportFeedback),
@"emailFieldHint": @(IBGEmailFieldHint),
@"commentFieldHintForBugReport": @(IBGCommentFieldHintForBugReport),
@"commentFieldHintForFeedback": @(IBGCommentFieldHintForFeedback),
@"addVideoMessage": @(IBGAddVideoMessage),
@"addVoiceMessage": @(IBGAddVoiceMessage),
@"addImageFromGallery": @(IBGAddImageFromGallery),
@"addExtraScreenshot": @(IBGAddExtraScreenshot),
@"audioRecordingPermissionDeniedTitle": @(IBGAudioRecordingPermissionDeniedTitle),
@"audioRecordingPermissionDeniedMessage": @(IBGAudioRecordingPermissionDeniedMessage),
@"microphonePermissionAlertSettingsButtonText": @(IBGMicrophonePermissionAlertSettingsButtonText),
@"recordingMessageToHoldText": @(IBGRecordingMessageToHoldText),
@"recordingMessageToReleaseText": @(IBGRecordingMessageToReleaseText),
@"conversationsHeaderTitle": @(IBGConversationsHeaderTitle),
@"screenshotHeaderTitle": @(IBGScreenshotHeaderTitle),
@"chatsNoConversationsHeadlineText": @(IBGChatsNoConversationsHeadlineText),
@"doneButtonText": @(IBGDoneButtonText),
@"okButtonText": @(IBGOkButtonText),
@"cancelButtonText": @(IBGCancelButtonText),
@"thankYouText": @(IBGThankYouText),
@"audio": @(IBGAudio),
@"video": @(IBGVideo),
@"image": @(IBGImage)}), IBGShakeHint, integerValue);
@"shakeHint": @(IBGStringShakeHint),
@"swipeHint": @(IBGStringSwipeHint),
@"edgeSwipeStartHint": @(IBGStringEdgeSwipeStartHint),
@"startAlertText": @(IBGStringStartAlertText),
@"invalidEmailMessage": @(IBGStringInvalidEmailMessage),
@"invalidEmailTitle": @(IBGStringInvalidEmailTitle),
@"invalidCommentMessage": @(IBGStringInvalidCommentMessage),
@"invalidCommentTitle": @(IBGStringInvalidCommentTitle),
@"invocationHeader": @(IBGStringInvocationHeader),
@"talkToUs": @(IBGStringTalkToUs),
@"reportBug": @(IBGStringReportBug),
@"reportFeedback": @(IBGStringReportFeedback),
@"emailFieldHint": @(IBGStringEmailFieldHint),
@"commentFieldHintForBugReport": @(IBGStringCommentFieldHintForBugReport),
@"commentFieldHintForFeedback": @(IBGStringCommentFieldHintForFeedback),
@"addVideoMessage": @(IBGStringAddVideoMessage),
@"addVoiceMessage": @(IBGStringAddVoiceMessage),
@"addImageFromGallery": @(IBGStringAddImageFromGallery),
@"addExtraScreenshot": @(IBGStringAddExtraScreenshot),
@"audioRecordingPermissionDeniedTitle": @(IBGStringAudioRecordingPermissionDeniedTitle),
@"audioRecordingPermissionDeniedMessage": @(IBGStringAudioRecordingPermissionDeniedMessage),
@"microphonePermissionAlertSettingsButtonText": @(IBGStringMicrophonePermissionAlertSettingsButtonTitle),
@"recordingMessageToHoldText": @(IBGStringRecordingMessageToHoldText),
@"recordingMessageToReleaseText": @(IBGStringRecordingMessageToReleaseText),
@"conversationsHeaderTitle": @(IBGStringChatsNoConversationsHeadlineText),
@"screenshotHeaderTitle": @(IBGStringScreenshotHeaderTitle),
@"chatsNoConversationsHeadlineText": @(IBGStringChatsNoConversationsHeadlineText),
@"doneButtonText": @(IBGStringDoneButtonTitle),
@"okButtonText": @(IBGStringOkButtonTitle),
@"cancelButtonText": @(IBGStringCancelButtonTitle),
@"thankYouText": @(IBGStringThankYouText),
@"audio": @(IBGStringAudio),
@"video": @(IBGStringVideo),
@"image": @(IBGStringImage),
@"chatsHeaderTitle": @(IBGStringChatsHeaderTitle),
@"team": @(IBGStringTeam),
@"messageNotification": @(IBGStringMessagesNotification),
@"messagesNotifiactionAndOthers": @(IBGStringMessagesNotificationAndOthers)
}), IBGStringShakeHint, integerValue);
@end

View File

@ -28,16 +28,6 @@
"rnpm": {
"android": {
"packageInstance": "new RNInstabugReactnativePackage(${androidApplicationToken}, MainApplication.this)"
},
"params": [
{
"type": "input",
"name": "androidApplicationToken",
"message": "What is your Instabug application token for Android (hit <ENTER> to ignore)"
}
],
"commands": {
"postlink": "node node_modules/instabug-reactnative/scripts/postlink/run"
}
}
}