NativeScript / NativeScript/plugins

Upgraded app fails to load in iOS, Assertion failed

Ouverte
#504 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
TypeScript
Étoiles
206
Forks
123
Merge moyen
2 j 1 h
PR mergées (30 j)
1

Description

I tried to upgrade a running app from 7.x to 8.5.2. The app fails to load on iOS (simulator and device) - log below. Here's the environment:
nativescript 8.5.3
@nativescript/core 8.5.3
@nativescript/ios 8.5.2
nativescript-ui-listview 15.2.3

The app fails to load, after the launch event completes, with this log:

====== Assertion failed ======
Native stack trace:
1 0x10db14b9d tns::Assert(bool, v8::Isolate*, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) + 164
2 0x10db2f5b5 tns::Interop::WriteValue(v8::Localv8::Context, tns::TypeEncoding const*, void*, v8::Localv8::Value) + 5825
3 0x10db2deda tns::Interop::SetFFIParams(v8::Localv8::Context, tns::TypeEncoding const*, tns::FFICall*, int, int, tns::V8Args&) + 110
4 0x10db2da53 tns::Interop::CallFunctionInternal(tns::MethodCall&) + 401
5 0x10dad7d2a tns::ArgConverter::Invoke(v8::Localv8::Context, objc_class*, v8::Localv8::Object, tns::V8Args&, tns::MethodMeta const*, bool) + 1170
6 0x10daf8d2e tns::MetadataBuilder::InvokeMethod(v8::Localv8::Context, tns::MethodMeta const*, v8::Localv8::Object, tns::V8Args&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, bool) + 76
7 0x10daf87b9 tns::MetadataBuilder::PropertySetterCallback(v8::FunctionCallbackInfov8::Value const&) + 389
8 0x10dc19f31 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) + 385
9 0x10dc194df v8::internal::MaybeHandlev8::internal::Object v8::internal::(anonymous namespace)::HandleApiCallHelper(v8::internal::Isolate*, v8::internal::Handlev8::internal::HeapObject, v8::internal::Handlev8::internal::HeapObject, v8::internal::Handlev8::internal::FunctionTemplateInfo, v8::internal::Handlev8::internal::Object, v8::internal::BuiltinArguments) + 735
10 0x10dc18e09 v8::internal::Builtins::InvokeApiFunction(v8::internal::Isolate*, bool, v8::internal::Handlev8::internal::HeapObject, v8::internal::Handlev8::internal::Object, int, v8::internal::Handlev8::internal::Object, v8::internal::Handlev8::internal::HeapObject) + 777
11 0x10e04016d v8::internal::Object::SetPropertyWithAccessor(v8::internal::LookupIterator
, v8::internal::Handlev8::internal::Object, v8::Maybev8::internal::ShouldThrow) + 477
12 0x10e045eca v8::internal::Object::SetPropertyInternal(v8::internal::LookupIterator*, v8::internal::Handlev8::internal::Object, v8::Maybev8::internal::ShouldThrow, v8::internal::StoreOrigin, bool*) + 602
13 0x10e04656f v8::internal::Object::SetSuperProperty(v8::internal::LookupIterator*, v8::internal::Handlev8::internal::Object, v8::internal::StoreOrigin, v8::Maybev8::internal::ShouldThrow) + 79
14 0x10e046008 v8::internal::Object::SetPropertyInternal(v8::internal::LookupIterator*, v8::internal::Handlev8::internal::Object, v8::Maybev8::internal::ShouldThrow, v8::internal::StoreOrigin, bool*) + 920
15 0x10e045c2a v8::internal::Object::SetProperty(v8::internal::LookupIterator*, v8::internal::Handlev8::internal::Object, v8::internal::StoreOrigin, v8::Maybev8::internal::ShouldThrow) + 58
16 0x10decf0ee v8::internal::StoreIC::Store(v8::internal::Handlev8::internal::Object, v8::internal::Handlev8::internal::Name, v8::internal::Handlev8::internal::Object, v8::internal::StoreOrigin) + 1214
17 0x10ded52c9 v8::internal::Runtime_StoreIC_Miss(int, unsigned long*, v8::internal::Isolate*) + 393
18 0x10e5866f9 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit + 57
JavaScript stack trace:
at get ios (file: node_modules/nativescript-ui-listview/index.ios.js:20:0)
at syncListViewLayout (file: node_modules/nativescript-ui-listview/index.ios.js:1032:0)
at initNativeView (file: node_modules/nativescript-ui-listview/index.ios.js:891:0)
at setNativeView (file: node_modules/@nativescript/core/ui/core/view-base/index.js:746:0)
at _setupUI (file: node_modules/@nativescript/core/ui/core/view-base/index.js:719:0)
at (file: node_modules/@nativescript/core/ui/core/view-base/index.js:726:0)
at eachChildView (file: node_modules/@nativescript/core/ui/content-view/index.js:65:0)
at eachChild (file: node_modules/@nativescript/core/ui/core/view/view-common.js:811:0)
at _setupUI (file: node_modules/@nativescript/core/ui/core/view-base/index.js:725:0)
at (file: node_modules/@nativescript/core/ui/core/view-base/index.js:726:0)

I've done an ns clean, blown away the package-lock.json, all the usual things clearing hooks, node_modules and platforms. No dice. Please help!

Here's the package.json:

{
  "android": {
    "markingMode": "none"
  },
  "description": "whatever",
  "license": "UNLICENSED",
  "readme": "whatever",
  "id": "com.<-->.<-->",
  "v8Flags": "--expose_gc --use_strict",
  "dependencies": {
    "@nativescript/animated-circle": "^1.1.7",
    "@nativescript/apple-sign-in": "^1.0.0",
    "@nativescript/camera": "^5.0.15",
    "@nativescript/core": "^8.4.2",
    "@nativescript/firebase": "^11.1.3",
    "@nativescript/geolocation": "^8.1.0",
    "@nativescript/local-notifications": "^6.0.0",
    "@nativescript/social-share": "^2.3.0",
    "@nstudio/nativescript-cardview": "^2.0.1",
    "@nstudio/nativescript-checkbox": "^2.0.5",
    "@nstudio/nativescript-floatingactionbutton": "^3.0.4",
    "@proplugins/nativescript-dom": "^2.2.3",
    "child_process": "^1.0.2",
    "cookie": "^0.3.1",
    "crypto-js": "^3.1.9-1",
    "deepmerge-json": "^1.3.2",
    "delay": "^4.3.0",
    "email-validator": "^2.0.4",
    "fs-extra": "^10.1.0",
    "html-entities": "^1.2.1",
    "https-proxy-agent": "^3.0.0",
    "hydra-page-previewer": "^0.2.1",
    "jsdom": "^22.1.0",
    "linkifyjs": "^2.1.8",
    "moment": "^2.14.1",
    "moment-timezone": "^0.5.25",
    "nativescript-clipboard": "^2.1.1",
    "nativescript-drawingpad": "^3.1.0",
    "nativescript-drop-down": "^6.0.2",
    "nativescript-exit": "^1.0.1",
    "nativescript-menu": "^1.1.7",
    "nativescript-modal-datetimepicker": "^2.1.5",
    "nativescript-multi-select": "^1.0.6",
    "nativescript-popup": "^1.5.0",
    "nativescript-remote-builds": "^1.1.1",
    "nativescript-timedatepicker": "^1.2.1",
    "nativescript-ui-calendar": "^14.2.1",
    "nativescript-ui-chart": "^14.2.1",
    "nativescript-ui-listview": "^15.2.1",
    "nativescript-ui-sidedrawer": "^14.2.1",
    "nativescript-urlhandler": "^1.3.0",
    "nativescript-videorecorder-x": "^1.0.4",
    "net": "^1.0.2",
    "node-html-parser": "^1.1.16",
    "os": "^0.1.2",
    "promise-map-series": "^0.2.3",
    "tls": "0.0.1",
    "util": "^0.12.5"
  },
  "devDependencies": {
    "@nativescript/android": "~8.5.0",
    "@nativescript/ios": "8.5.2",
    "@nativescript/webpack": "~5.0.0"
  },
  "main": "./app/app.js"
}

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduisez la mise à niveau avec les versions de packages NativeScript et iOS indiquées dans le simulateur ou sur l’appareil. Commencez à node_modules/nativescript-ui-listview/index.ios.js:20 et suivez l’appel via syncListViewLayout et initNativeView, en comparant les chemins correspondants de @nativescript/core. C’est terminé lorsque l’application mise à niveau se charge sans l’assertion.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
ios, javascript
Domaine
mobile-dev
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.