NativeScript / NativeScript/ios
NS runtime crashes in iOS18 Simulators
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 150
- Forks
- 43
- Merge moyen
- 3 j 10 h
- PR mergées (30 j)
- 22
Description
Hello together,
I am currently trying to migrate my app from NS 8.7 to 8.8. It seems like NS has an issue on simulators running iOS18. The relevant code block which kills the runtime is the following, hence opening an SFSafariViewController breaks the app. The crash log is attached below,
crashiOS18SimOniPhone15Pro.txt
seems like it is a V8 related issue.
private openUrlWithParametersCompletion(fullUrl: string, frame: Frame): void {
SFSafariViewController.prewarmConnectionsToURLs([NSURL.URLWithString(fullUrl)]);
this.safariViewController = SFSafariViewController.alloc().initWithURL(NSURL.URLWithString(fullUrl));
// color of top and bottom bar
if (this.styleOptions) {
this.safariViewController.preferredBarTintColor = this.styleOptions.preferredBarTintColor.ios;
}
// color of the buttons
if (this.styleOptions) {
this.safariViewController.preferredControlTintColor = this.styleOptions.preferredControlTintColor.ios;
}
// text for dismiss button can be Done, Close, Cancel
this.safariViewController.dismissButtonStyle = SFSafariViewControllerDismissButtonStyle.Done;
this.safariViewController.delegate = this;
if (!this._timeout) {
this._timeout = setTimeout(() => {
const windowScene = UIApplication.sharedApplication.connectedScenes.allObjects.firstObject as UIWindowScene;
if (windowScene) {
const keyWindow = windowScene.windows.firstObject as UIWindow;
if (keyWindow.keyWindow) {
let rootVC = keyWindow.rootViewController;
rootVC.presentViewControllerAnimatedCompletion(this.safariViewController, true, null);
} else {
console.error('no key window');
}
}
this._timeout = null;
}, 150);
}
}
OS: macOS 15.0
CPU: (10) arm64 Apple M1 Pro
Shell: /bin/zsh
node: 20.11.1
npm: 10.2.4
nativescript: 8.8.2
# android
java: 17.0.12
ndk: Not Found
apis: Not Found
build_tools: Not Found
system_images: Not Found
# ios
xcode: 16.0/16A242d
cocoapods: 1.15.2
python: 3.12.4
python3: 3.12.4
ruby: 2.7.8
platforms:
- DriverKit 24.0
- iOS 18.0
- macOS 15.0
- tvOS 18.0
- visionOS 2.0
- watchOS 11.0
Dependencies
"dependencies": {
"@angular/animations": "18.2.5",
"@angular/common": "18.2.5",
"@angular/compiler": "18.2.5",
"@angular/core": "18.2.5",
"@angular/forms": "18.2.5",
"@angular/platform-browser": "18.2.5",
"@angular/platform-browser-dynamic": "18.2.5",
"@angular/router": "18.2.5",
"@apollo/client": "3.11.8",
"@mnd/external-web-view": "file:../app-plugins/dist/packages/external-web-view/mnd-external-web-view-2.0.0.tgz",
"@nativescript/angular": "18.1.3",
"@nativescript/core": "8.8.2",
"@nativescript/iqkeyboardmanager": "2.1.1",
"@nativescript/localize": "5.2.0",
"@nativescript/mlkit-barcode-scanning": "2.1.0",
"@nativescript/mlkit-core": "2.1.0",
"@nativescript/secure-storage": "3.0.3",
"@nativescript/theme": "3.1.0",
"@nativescript/ui-charts": "0.2.4",
"apollo-angular": "7.2.0",
"apollo3-cache-persist": "0.15.0",
"d3-ease": "3.0.1",
"graphql": "16.9.0",
"graphql-tag": "2.12.6",
"intl": "1.2.5",
"moment": "2.30.1",
"nativescript-health-data": "file:../app-plugins-customized/nativescript-health-data/publish/package/nativescript-health-data-3.0.0.tgz",
"nativescript-oauth2-ext": "file:../app-plugins-customized/nativescript-oauth2-ext/publish/package/nativescript-oauth2-ext-3.0.4.tgz",
"nativescript-sqlite": "2.8.6",
"nativescript-sqlite-commercial": "file:../app-plugins-customized/commercial-sqlite/nativescript-sqlite-commercial-1.8.0.tgz",
"nativescript-ui-calendar": "15.2.3",
"nativescript-ui-gauge": "15.2.3",
"qs": "npm:querystring@0.2.1",
"rxjs": "7.8.1",
"util": "0.12.5",
"uuidjs": "5.1.0",
"zone.js": "0.15.0"
},
"devDependencies": {
"@angular-devkit/build-angular": "18.2.5",
"@angular/compiler-cli": "18.2.5",
"@graphql-codegen/cli": "5.0.2",
"@graphql-codegen/fragment-matcher": "5.0.2",
"@graphql-codegen/introspection": "4.0.3",
"@graphql-codegen/typescript": "4.0.9",
"@graphql-codegen/typescript-apollo-angular": "4.0.0",
"@graphql-codegen/typescript-operations": "4.2.3",
"@nativescript/android": "8.7.0",
"@nativescript/ios": "8.8.2",
"@nativescript/types": "8.8.0",
"@nativescript/webpack": "5.0.22",
"@ngtools/webpack": "18.2.5",
"@types/d3-ease": "3.0.2",
"@types/intl": "1.2.2",
"@types/lodash": "4.17.7",
"@types/node": "22.5.5",
"keycloak-request-token": "0.1.0",
"rimraf": "6.0.1",
"sass": "1.77.8",
"ts-node": "10.9.2",
"typescript": "5.5.4"
}
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire le plantage dans un iOS 18 Simulator à l’aide de la méthode montrée openUrlWithParametersCompletion, puis examinez crashiOS18SimOniPhone15Pro.txt et le chemin d’appel de SFSafariViewController. Le travail sera considéré comme terminé lorsque l’ouverture de la vue Safari ne fera plus planter le runtime NativeScript iOS sur la configuration de simulateur signalée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- ios, typescript
- 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