3
votes

This is a problem that I only got on devices with iOS 14.

Description

My project worked well on iOS 13 and after I tried to run it on iOS 14 I always get an error in xcode

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'

React Native version:

System:
    OS: macOS 11.0
    CPU: (4) x64 Intel(R) Core(TM) i3-8100B CPU @ 3.60GHz
    Memory: 65.82 MB / 8.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 10.16.1 - ~/.nvm/versions/node/v10.16.1/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.9.0 - ~/.nvm/versions/node/v10.16.1/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.9.3 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 14.0, DriverKit 20.0, macOS 11.0, tvOS 14.0, watchOS 7.0
    Android SDK: Not Found
  IDEs:
    Android Studio: Not Found
    Xcode: 12.0/12A8189h - /usr/bin/xcodebuild
  Languages:
    Java: 1.8.0_252 - /usr/bin/javac
    Python: 2.7.16 - /usr/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: 16.13.1 => 16.13.1 
    react-native: 0.63.2 => 0.63.2 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Pods:

require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
require_relative '../node_modules/react-native/scripts/react_native_pods'

platform :ios, '10.0'

target 'MYAPP' do
  config = use_native_modules!
  use_react_native!(:path => config["reactNativePath"])

  target 'MYAPPTests' do
    inherit! :search_paths
    # Pods for testing
  end

  use_native_modules!
end

Log:

2020-09-17 15:23:46.876152+0300 MYAPP[4143:493632] <Warning>: Please set a value for FacebookAutoLogAppEventsEnabled. Set the flag to TRUE if you want to collect app install, app launch and in-app purchase events automatically. To request user consent before collecting data, set the flag value to FALSE, then change to TRUE once user consent is received. Learn more: https://developers.facebook.com/docs/app-events/getting-started-app-events-ios#disable-auto-events.
    2020-09-17 15:23:46.877416+0300 MYAPP[4143:493632] <Warning>: You haven't set a value for FacebookAdvertiserIDCollectionEnabled. Set the flag to TRUE if you want to collect Advertiser ID for better advertising and analytics results.
2020-09-17 15:24:47.234399+0300 MYAPP[4143:493866] Task <3B7D3C61-B3E5-4E92-B884-E98B86FF97E9>.<1> finished with error [-1001] Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x2822729d0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <3B7D3C61-B3E5-4E92-B884-E98B86FF97E9>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <3B7D3C61-B3E5-4E92-B884-E98B86FF97E9>.<1>"
), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=http://192.168.0.105:8081/status, NSErrorFailingURLKey=http://192.168.0.105:8081/status, _kCFStreamErrorDomainKey=4}
2020-09-17 15:24:47.256281+0300 MYAPP[4143:493632] [native] Running application MYAPP ({
initialProps =     {
};
rootTag = 1;
})
2020-09-17 15:24:47.268978+0300 MYAPP[4143:493881] 6.25.0 - [Firebase/Core][I-COR000003] The default Firebase app has not yet been configured. Add `[FIRApp configure];` (`FirebaseApp.configure()` in Swift) to your application initialization. Read more: .
2020-09-17 15:24:47.312992+0300 MYAPP[4143:493866] 6.25.0 - [Firebase/Messaging][I-FCM001000] FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow the instructions at:
https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging
to ensure proper integration.
2020-09-17 15:24:47.317115+0300 MYAPP[4143:493866] 6.25.0 - [Firebase/Analytics][I-ACS031025] Analytics screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to set the screen name or override the default screen class name. To disable screen reporting, set the flag FirebaseScreenReportingEnabled to NO (boolean) in the Info.plist
2020-09-17 15:24:47.340982+0300 MYAPP[4143:493866] 6.25.0 - [Firebase/Analytics][I-ACS023007] Analytics v.60501000 started
2020-09-17 15:24:47.341770+0300 MYAPP[4143:493866] 6.25.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see)
2020-09-17 15:24:47.410764+0300 MYAPP[4143:493992] [Client] Updating selectors after delegate removal failed with: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service on pid 88 named com.apple.commcenter.coretelephony.xpc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service on pid 88 named com.apple.commcenter.coretelephony.xpc was invalidated from this process.}
2020-09-17 15:24:47.429141+0300 MYAPP[4143:493632] FBSDKLog: fb-messenger-share-api is missing from your Info.plist under LSApplicationQueriesSchemes and is required for iOS 9.0
2020-09-17 15:24:47.429431+0300 MYAPP[4143:493632] FBSDKLog: fbauth2 is missing from your Info.plist under LSApplicationQueriesSchemes and is required for iOS 9.0
2020-09-17 15:24:47.431858+0300 MYAPP[4143:493881] [tcp] tcp_input [C2.1:3] flags=[R] seq=2910663435, ack=0, win=0 state=CLOSED rcv_nxt=2910663435, snd_una=2084476413
2020-09-17 15:24:47.432180+0300 MYAPP[4143:493881] [tcp] tcp_input [C2.1:3] flags=[R] seq=2910663435, ack=0, win=0 state=CLOSED rcv_nxt=2910663435, snd_una=2084476413
2020-09-17 15:24:47.436111+0300 MYAPP[4143:493632] FBSDKLog: starting with Graph API v2.4, GET requests for /195739114824780/model_asset should contain an explicit "fields" parameter
2020-09-17 15:24:47.471741+0300 MYAPP[4143:493881] [tcp] tcp_input [C1.1:3] flags=[R] seq=2629399053, ack=0, win=0 state=CLOSED rcv_nxt=2629399053, snd_una=3107602082
2020-09-17 15:24:47.471909+0300 MYAPP[4143:493881] [tcp] tcp_input [C1.1:3] flags=[R] seq=2629399053, ack=0, win=0 state=CLOSED rcv_nxt=2629399053, snd_una=3107602082
2020-09-17 15:24:47.572210+0300 MYAPP[4143:494213] 6.25.0 - [Firebase/Analytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
2020-09-17 15:25:07.703378+0300 MYAPP[4143:494224] [tcp] tcp_output [C14.1:3] flags=[R.] seq=912352729, ack=2533363381, win=4096 state=CLOSED rcv_nxt=2533363381, snd_una=912352729
2020-09-17 15:25:07.705428+0300 MYAPP[4143:494224] Connection 14: received failure notification
2020-09-17 15:25:07.705746+0300 MYAPP[4143:494224] Connection 14: failed to connect 3:-9816, reason -1
2020-09-17 15:25:07.705837+0300 MYAPP[4143:494224] Connection 14: encountered error(3:-9816)
2020-09-17 15:25:18.335269+0300 MYAPP[4143:494219] [tcp] tcp_output [C15.1:3] flags=[R.] seq=2353633686, ack=248484103, win=4096 state=CLOSED rcv_nxt=248484103, snd_una=2353633686
2020-09-17 15:25:18.338275+0300 MYAPP[4143:494219] Connection 15: received failure notification
2020-09-17 15:25:18.339071+0300 MYAPP[4143:494219] Connection 15: failed to connect 3:-9816, reason -1
2020-09-17 15:25:18.340516+0300 MYAPP[4143:494219] Connection 15: encountered error(3:-9816)
2020-09-17 15:25:18.416619+0300 MYAPP[4143:494224] [boringssl] boringssl_context_handle_fatal_alert(1763) [C17.1:2][0x10720d610] read alert, level: fatal, description: inappropriate fallback
2020-09-17 15:25:18.418166+0300 MYAPP[4143:494224] [boringssl] boringssl_session_handshake_incomplete(90) [C17.1:2][0x10720d610] SSL library error
2020-09-17 15:25:18.418648+0300 MYAPP[4143:494224] [boringssl] boringssl_session_handshake_error_print(41) [C17.1:2][0x10720d610] Error: 4360096920:error:1000043e:SSL routines:OPENSSL_internal:TLSV1_ALERT_INAPPROPRIATE_FALLBACK:/Library/Caches/com.apple.xbs/Sources/boringssl/boringssl-351.0.1/ssl/tls_record.cc:592:SSL alert number 86
2020-09-17 15:25:18.419022+0300 MYAPP[4143:494224] [boringssl] nw_protocol_boringssl_handshake_negotiate_proceed(761) [C17.1:2][0x10720d610] handshake failed at state 12288: not completed
2020-09-17 15:25:18.423447+0300 MYAPP[4143:494224] Connection 17: received failure notification
2020-09-17 15:25:18.424619+0300 MYAPP[4143:494224] Connection 17: failed to connect 3:-9860, reason -1
2020-09-17 15:25:18.424861+0300 MYAPP[4143:494224] Connection 17: encountered error(3:-9860)
2020-09-17 15:25:18.427595+0300 MYAPP[4143:494224] Task <145461A1-5355-49F3-B990-A63ADD61AEBF>.<1> HTTP load failed, 0/0 bytes (error code: -1200 [3:-9860])
2020-09-17 15:25:48.269210+0300 MYAPP[4143:494224] Task <E0E85B74-2BA3-4904-AF29-40B7B2C0B08B>.<2> finished with error [-1001] Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x282277b10 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <E0E85B74-2BA3-4904-AF29-40B7B2C0B08B>.<2>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <E0E85B74-2BA3-4904-AF29-40B7B2C0B08B>.<2>"
), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=http://192.168.0.105:8081/status, NSErrorFailingURLKey=http://192.168.0.105:8081/status, _kCFStreamErrorDomainKey=4}
2020-09-17 15:25:48.317358+0300 MYAPP[4143:494412] [connection] nw_socket_handle_socket_event [C18.1:1] Socket SO_ERROR [61: Connection refused]
2020-09-17 15:25:48.320763+0300 MYAPP[4143:494412] [connection] nw_socket_handle_socket_event [C18.2:1] Socket SO_ERROR [61: Connection refused]
2020-09-17 15:25:48.321604+0300 MYAPP[4143:494239] [connection] nw_connection_get_connected_socket [C18] Client called nw_connection_get_connected_socket on unconnected nw_connection
2020-09-17 15:25:48.321674+0300 MYAPP[4143:494239] TCP Conn 0x281b3c420 Failed : error 0:61 [61]
2020-09-17 15:25:48.346472+0300 MYAPP[4143:494555] 6.25.0 - [Firebase/Messaging][I-FCM012002] Error in application:didFailToRegisterForRemoteNotificationsWithError: (null)
2020-09-17 15:25:48.355030+0300 MYAPP[4143:493632] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
*** First throw call stack:
(0x19c40a5ac 0x1b048442c 0x19c4794cc 0x19c485608 0x19c2fec8c 0x19c2f1840 0x1009e3350 0x10070c4c4 0x10094c264 0x103aa3b68 0x103aa55f0 0x103ab4890 0x19c3871e4 0x19c3813b4 0x19c3804bc 0x1b2e05820 0x19ed24734 0x19ed29e10 0x10070c994 0x19c047e60)
libc++abi.dylib: terminating with uncaught exception of type NSException
1

1 Answers

1
votes

Do you have any non-ASCII characters in your App name? There's this new issue appearing in iOS 14 app, where asking permissions on iOS 14 app which has any non-ASCII characters crashes the app

Issue reported in react-native-firebase repo : https://github.com/invertase/react-native-firebase/issues/4093

Fix for this is to change the product name to ASCII characters. As mentioned here

The workaround for this at this time is to only use simple ASCII characters in your Product Name and use the string you want displayed in the Display Name

The Product Name (which can be set in Xcode project -> Build Settings -> Packaging) is not a user visible entity.

You can change the Display Name (aka Bundle Display Name in Info.plist) to the string that you want displayed under the app icon, and also with the displayed notifications.

In order for this name change to take, you may need to delete the app first, and install the new build.

If your app is localized to multiple languages, you can still use the strings as you wish to be displayed by localizing the Display Name.

For RN Apps, the Bundle Display Name in Info.plist is default set to $(PRODUCT_NAME). You can change that to any string you need including non-ASCII characters