Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hide notifications for the currently open report #15858

Merged
merged 24 commits into from
Apr 10, 2023
Merged
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6a9ae47
pull out notification checks into helper function
arosiclair Mar 14, 2023
3c3dc24
use shouldShowReportActionNotification for push notifications on android
arosiclair Mar 14, 2023
e0626ea
show notifications from concierge
arosiclair Mar 14, 2023
be57390
use casing consistent with other logging
arosiclair Mar 14, 2023
d283491
don't show notifications for report actions that were already read
arosiclair Mar 15, 2023
085e59d
Merge branch 'main' into arosiclair-airship-15
arosiclair Mar 15, 2023
8916cdb
fix camera-roll import
arosiclair Mar 15, 2023
f03189f
fix iOS notification presentation options for v15
arosiclair Mar 15, 2023
6abdfcd
use context awareness for Android and iOS push notifications
arosiclair Mar 15, 2023
c074d49
update comments
arosiclair Mar 15, 2023
a9647a1
update pods
arosiclair Mar 15, 2023
1616a47
clearer logging for debugging
arosiclair Mar 15, 2023
f3279a2
handle push notifications with no reportAction in payload
arosiclair Mar 16, 2023
20b3c82
use report action from onyxData
arosiclair Mar 16, 2023
48128a8
use platform modules to fix errors about using iOS/Android SDKs on th…
arosiclair Mar 16, 2023
9fa14dd
add airship mocks for foreground callbacks
arosiclair Mar 17, 2023
fc6ebf8
mock new camera roll lib
arosiclair Mar 17, 2023
9dc1ec4
fix require cycle between PushNotification libs and Report lib
arosiclair Mar 17, 2023
e9d7f4c
Merge branch 'main' of github.com:Expensify/App into arosiclair-airsh…
arosiclair Mar 30, 2023
8b08eb3
remove unnecessary docs
arosiclair Mar 30, 2023
130c0b0
add a note about this possibly being fixed in the future
arosiclair Mar 30, 2023
4419098
Merge branch 'main' of github.com:Expensify/App into arosiclair-airsh…
arosiclair Apr 5, 2023
5405f30
clarify setForegroundPresentationOptionsCallback behavior
arosiclair Apr 5, 2023
fd0afba
Merge branch 'main' of github.com:Expensify/App into arosiclair-airsh…
arosiclair Apr 7, 2023
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
5 changes: 5 additions & 0 deletions __mocks__/@react-native-camera-roll/camera-roll.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export default {
CameraRoll: {
save: jest.fn(),
},
};
44 changes: 44 additions & 0 deletions __mocks__/@ua/react-native-airship.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
const EventType = {
NotificationResponse: 'notificationResponse',
PushReceived: 'pushReceived',
};

const iOS = {
ForegroundPresentationOption: {
Alert: 'alert',
Sound: 'sound',
Badge: 'badge',
},
};

const Airship = {
setUserNotificationsEnabled: jest.fn(),
addListener: jest.fn(),
removeAllListeners: jest.fn(),
setBadgeNumber: jest.fn(),
push: {
iOS: {
setBadgeNumber: jest.fn(),
setForegroundPresentationOptions: jest.fn(),
setForegroundPresentationOptionsCallback: jest.fn(),
},
android: {
setForegroundDisplayPredicate: jest.fn(),
},
enableUserNotifications: () => Promise.resolve(false),
clearNotifications: jest.fn(),
getNotificationStatus: () => Promise.resolve({airshipOptIn: false, systemEnabled: false}),
},
contact: {
identify: jest.fn(),
getNamedUserId: jest.fn(),
reset: jest.fn(),
},
};

export default Airship;

export {
EventType,
iOS,
};
33 changes: 0 additions & 33 deletions __mocks__/urbanairship-react-native.js

This file was deleted.

4 changes: 4 additions & 0 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,10 @@ dependencies {

// Plaid SDK
implementation project(':react-native-plaid-link-sdk')

// Fixes a version conflict between airship and react-native-plaid-link-sdk
implementation "androidx.work:work-runtime-ktx:2.8.0"
arosiclair marked this conversation as resolved.
Show resolved Hide resolved

// This okhttp3 dependency prevents the app from crashing - See https://github.com/plaid/react-native-plaid-link-sdk/issues/74#issuecomment-648435002
implementation "com.squareup.okhttp3:okhttp-urlconnection:4.+"
}
Expand Down
4 changes: 2 additions & 2 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
buildscript {
ext {
minSdkVersion = 21
compileSdkVersion = 32
targetSdkVersion = 32
compileSdkVersion = 33
targetSdkVersion = 33
arosiclair marked this conversation as resolved.
Show resolved Hide resolved

if (System.properties['os.arch'] == "aarch64") {
// For M1 Users we need to use the NDK 24 which added support for aarch64
Expand Down
20 changes: 10 additions & 10 deletions ios/NewExpensify.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -61,28 +61,28 @@
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = NewExpensify/AppDelegate.h; sourceTree = "<group>"; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = NewExpensify/Info.plist; sourceTree = "<group>"; };
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = NewExpensify/main.m; sourceTree = "<group>"; };
177D06D4BF2346EB90E37D3D /* ExpensifyMono-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyMono-Bold.otf"; path = "../assets/fonts/native/ExpensifyMono-Bold.otf"; sourceTree = "<group>"; };
177D06D4BF2346EB90E37D3D /* ExpensifyMono-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyMono-Bold.otf"; path = "../assets/fonts/native/ExpensifyMono-Bold.otf"; sourceTree = "<group>"; };
18D050DF262400AF000D658B /* BridgingFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BridgingFile.swift; sourceTree = "<group>"; };
1977066010294D51AEB35F3B /* ExpensifyNeue-Italic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-Italic.otf"; path = "../assets/fonts/native/ExpensifyNeue-Italic.otf"; sourceTree = "<group>"; };
1B3F09A4E4EA4CFFA5E4E7CD /* ExpensifyMono-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyMono-Regular.otf"; path = "../assets/fonts/native/ExpensifyMono-Regular.otf"; sourceTree = "<group>"; };
1977066010294D51AEB35F3B /* ExpensifyNeue-Italic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-Italic.otf"; path = "../assets/fonts/native/ExpensifyNeue-Italic.otf"; sourceTree = "<group>"; };
1B3F09A4E4EA4CFFA5E4E7CD /* ExpensifyMono-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyMono-Regular.otf"; path = "../assets/fonts/native/ExpensifyMono-Regular.otf"; sourceTree = "<group>"; };
374FB8D528A133A7000D84EF /* OriginImageRequestHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OriginImageRequestHandler.h; path = NewExpensify/OriginImageRequestHandler.h; sourceTree = "<group>"; };
374FB8D628A133FE000D84EF /* OriginImageRequestHandler.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = OriginImageRequestHandler.mm; path = NewExpensify/OriginImageRequestHandler.mm; sourceTree = "<group>"; };
38E61473EAA34C598CB6B345 /* ExpensifyNeue-BoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-BoldItalic.otf"; path = "../assets/fonts/native/ExpensifyNeue-BoldItalic.otf"; sourceTree = "<group>"; };
38E61473EAA34C598CB6B345 /* ExpensifyNeue-BoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-BoldItalic.otf"; path = "../assets/fonts/native/ExpensifyNeue-BoldItalic.otf"; sourceTree = "<group>"; };
3EDF186626B8D2CBA203E08D /* libPods-NewExpensify.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NewExpensify.a"; sourceTree = BUILT_PRODUCTS_DIR; };
44BF435285B94E5B95F90994 /* ExpensifyNewKansas-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNewKansas-Medium.otf"; path = "../assets/fonts/native/ExpensifyNewKansas-Medium.otf"; sourceTree = "<group>"; };
6BEDED270C49437581EBE50D /* ExpensifyNeue-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-Regular.otf"; path = "../assets/fonts/native/ExpensifyNeue-Regular.otf"; sourceTree = "<group>"; };
44BF435285B94E5B95F90994 /* ExpensifyNewKansas-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNewKansas-Medium.otf"; path = "../assets/fonts/native/ExpensifyNewKansas-Medium.otf"; sourceTree = "<group>"; };
6BEDED270C49437581EBE50D /* ExpensifyNeue-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-Regular.otf"; path = "../assets/fonts/native/ExpensifyNeue-Regular.otf"; sourceTree = "<group>"; };
7041848326A8E40900E09F4D /* RCTStartupTimer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RCTStartupTimer.h; path = NewExpensify/RCTStartupTimer.h; sourceTree = "<group>"; };
7041848426A8E47D00E09F4D /* RCTStartupTimer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RCTStartupTimer.m; path = NewExpensify/RCTStartupTimer.m; sourceTree = "<group>"; };
70CF6E81262E297300711ADC /* BootSplash.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = BootSplash.storyboard; path = NewExpensify/BootSplash.storyboard; sourceTree = "<group>"; };
A2695CF895D81C31AFB4A074 /* libPods-NewExpensify-NewExpensifyTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NewExpensify-NewExpensifyTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
B66D52EC75F78B8A06F1E035 /* Pods-NewExpensify.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.debug.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.debug.xcconfig"; sourceTree = "<group>"; };
D2AFB39EC1D44BF9B91D3227 /* ExpensifyNewKansas-MediumItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNewKansas-MediumItalic.otf"; path = "../assets/fonts/native/ExpensifyNewKansas-MediumItalic.otf"; sourceTree = "<group>"; };
D2AFB39EC1D44BF9B91D3227 /* ExpensifyNewKansas-MediumItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNewKansas-MediumItalic.otf"; path = "../assets/fonts/native/ExpensifyNewKansas-MediumItalic.otf"; sourceTree = "<group>"; };
DD7904292792E76D004484B4 /* RCTBootSplash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RCTBootSplash.h; path = NewExpensify/RCTBootSplash.h; sourceTree = "<group>"; };
DD79042A2792E76D004484B4 /* RCTBootSplash.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RCTBootSplash.m; path = NewExpensify/RCTBootSplash.m; sourceTree = "<group>"; };
E9DF872C2525201700607FDC /* AirshipConfig.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = AirshipConfig.plist; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
EDFC169F9D7A43BDB924151F /* ExpensifyNeue-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-Bold.otf"; path = "../assets/fonts/native/ExpensifyNeue-Bold.otf"; sourceTree = "<group>"; };
EDFC169F9D7A43BDB924151F /* ExpensifyNeue-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-Bold.otf"; path = "../assets/fonts/native/ExpensifyNeue-Bold.otf"; sourceTree = "<group>"; };
F0C450E92705020500FD2970 /* colors.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = colors.json; path = ../colors.json; sourceTree = "<group>"; };
/* End PBXFileReference section */

Expand Down Expand Up @@ -648,7 +648,7 @@
ENABLE_BITCODE = NO;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
INFOPLIST_FILE = "$(SRCROOT)/NewExpensify/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 1.0.0;
OTHER_LDFLAGS = (
Expand Down Expand Up @@ -679,7 +679,7 @@
DEVELOPMENT_TEAM = 368M544MTT;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
INFOPLIST_FILE = NewExpensify/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 1.0.0;
OTHER_LDFLAGS = (
Expand Down
2 changes: 1 addition & 1 deletion ios/Podfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

platform :ios, '12.4'
platform :ios, '13.0'
arosiclair marked this conversation as resolved.
Show resolved Hide resolved
install! 'cocoapods', :deterministic_uuids => false

target 'NewExpensify' do
Expand Down
56 changes: 32 additions & 24 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
PODS:
- Airship (16.10.7):
- Airship/Automation (= 16.10.7)
- Airship/Basement (= 16.10.7)
- Airship/Core (= 16.10.7)
- Airship/ExtendedActions (= 16.10.7)
- Airship/MessageCenter (= 16.10.7)
- Airship/Automation (16.10.7):
- Airship (16.11.2):
- Airship/Automation (= 16.11.2)
- Airship/Basement (= 16.11.2)
- Airship/Core (= 16.11.2)
- Airship/ExtendedActions (= 16.11.2)
- Airship/MessageCenter (= 16.11.2)
- Airship/Automation (16.11.2):
- Airship/Core
- Airship/Basement (16.10.7)
- Airship/Core (16.10.7):
- Airship/Basement (16.11.2)
- Airship/Core (16.11.2):
- Airship/Basement
- Airship/ExtendedActions (16.10.7):
- Airship/ExtendedActions (16.11.2):
- Airship/Core
- Airship/MessageCenter (16.10.7):
- Airship/MessageCenter (16.11.2):
- Airship/Core
- Airship/PreferenceCenter (16.11.2):
- Airship/Core
- AirshipFrameworkProxy (2.0.1):
- Airship (= 16.11.2)
- Airship/MessageCenter (= 16.11.2)
- Airship/PreferenceCenter (= 16.11.2)
- boost (1.76.0)
- CocoaAsyncSocket (7.6.5)
- DoubleConversion (1.1.6)
Expand Down Expand Up @@ -462,9 +468,12 @@ PODS:
- React-jsinspector (0.70.4-alpha.2)
- React-logger (0.70.4-alpha.2):
- glog
- react-native-airship (15.2.0):
- AirshipFrameworkProxy (= 2.0.1)
- React-Core
- react-native-blob-util (0.16.2):
- React-Core
- react-native-cameraroll (4.1.2):
- react-native-cameraroll (5.0.4):
- React-Core
- react-native-config (1.4.6):
- react-native-config/App (= 1.4.6)
Expand Down Expand Up @@ -645,9 +654,6 @@ PODS:
- libwebp (~> 1.0)
- SDWebImage/Core (~> 5.10)
- SocketRocket (0.6.0)
- urbanairship-react-native (14.6.1):
- Airship (= 16.10.7)
- React-Core
- Yoga (1.14.0)
- YogaKit (1.18.1):
- Yoga (~> 1.14)
Expand Down Expand Up @@ -704,8 +710,9 @@ DEPENDENCIES:
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
- React-logger (from `../node_modules/react-native/ReactCommon/logger`)
- "react-native-airship (from `../node_modules/@ua/react-native-airship`)"
- react-native-blob-util (from `../node_modules/react-native-blob-util`)
- "react-native-cameraroll (from `../node_modules/@react-native-community/cameraroll`)"
- "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)"
- react-native-config (from `../node_modules/react-native-config`)
- react-native-document-picker (from `../node_modules/react-native-document-picker`)
- react-native-flipper (from `../node_modules/react-native-flipper`)
Expand Down Expand Up @@ -749,12 +756,12 @@ DEPENDENCIES:
- RNReanimated (from `../node_modules/react-native-reanimated`)
- RNScreens (from `../node_modules/react-native-screens`)
- RNSVG (from `../node_modules/react-native-svg`)
- urbanairship-react-native (from `../node_modules/urbanairship-react-native`)
- Yoga (from `../node_modules/react-native/ReactCommon/yoga`)

SPEC REPOS:
trunk:
- Airship
- AirshipFrameworkProxy
- CocoaAsyncSocket
- Firebase
- FirebaseABTesting
Expand Down Expand Up @@ -846,10 +853,12 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/jsinspector"
React-logger:
:path: "../node_modules/react-native/ReactCommon/logger"
react-native-airship:
:path: "../node_modules/@ua/react-native-airship"
react-native-blob-util:
:path: "../node_modules/react-native-blob-util"
react-native-cameraroll:
:path: "../node_modules/@react-native-community/cameraroll"
:path: "../node_modules/@react-native-camera-roll/camera-roll"
react-native-config:
:path: "../node_modules/react-native-config"
react-native-document-picker:
Expand Down Expand Up @@ -936,13 +945,12 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-screens"
RNSVG:
:path: "../node_modules/react-native-svg"
urbanairship-react-native:
:path: "../node_modules/urbanairship-react-native"
Yoga:
:path: "../node_modules/react-native/ReactCommon/yoga"

SPEC CHECKSUMS:
Airship: fbff646723323c58e3871cd30488612ca373f597
Airship: 19ead2c0bdc791c1b9d6ebb7940aaac99614414e
AirshipFrameworkProxy: 037a0ad6491757c45de2c70a6cc47bae5fcfa32b
boost: a7c83b31436843459a1961bfd74b96033dc77234
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
Expand Down Expand Up @@ -1001,8 +1009,9 @@ SPEC CHECKSUMS:
React-jsiexecutor: 523e742f144a346f7df32dea4fe1944d39b02473
React-jsinspector: 7b02a02b9b9bf830102394039c80b3bf2e0200b0
React-logger: b2c47bb0829c3c45ba3a04add9a2b4aea3f3dd4e
react-native-airship: 8690a133d791068741855d4f20ea83ec4a7761d1
react-native-blob-util: c3b0faecd2919db568e9d552084396f3e50b57c7
react-native-cameraroll: 2957f2bce63ae896a848fbe0d5352c1bd4d20866
react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df
react-native-config: 7cd105e71d903104e8919261480858940a6b9c0e
react-native-document-picker: f68191637788994baed5f57d12994aa32cf8bf88
react-native-flipper: dc5290261fbeeb2faec1bdc57ae6dd8d562e1de4
Expand Down Expand Up @@ -1049,10 +1058,9 @@ SPEC CHECKSUMS:
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
urbanairship-react-native: fe4d169332546a0efd348a009aa490dc36ff815e
Yoga: f77f6497bccebdcbc8efb03dbf83eadfdec6d104
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a

PODFILE CHECKSUM: 48093a300788c218e76f70cf6d102915cd993f34
PODFILE CHECKSUM: 4478f05b452c2dbc905adb8db4704eb8a860331c

COCOAPODS: 1.11.3
Loading