NativeScript / NativeScript/ios
NS runtime crashes in iOS18 Simulators
Nessuno ha ancora preso questa issue.
- Lingua principale
- JavaScript
- Stelle
- 150
- Fork
- 43
- Merge medio
- 3g 10h
- PR unite (30g)
- 22
Descrizione
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"
}
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo il crash in un iOS 18 Simulator utilizzando il metodo mostrato openUrlWithParametersCompletion, quindi esamina crashiOS18SimOniPhone15Pro.txt e il percorso delle chiamate di SFSafariViewController. Il lavoro sarà considerato completato quando l’apertura della vista Safari non provocherà più il crash del runtime NativeScript iOS nella configurazione del simulatore segnalata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- ios, typescript
- Ambito
- mobile-dev
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100