NativeScript / NativeScript/ios

NS runtime crashes in iOS18 Simulators

Abierto
#262 2 comentarios 3 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
JavaScript
Estrellas
150
Forks
43
Merge medio
3 d 10 h
PR fusionados (30 d)
22

Descripción

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"
}

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza reproduciendo el bloqueo en un iOS 18 Simulator utilizando el método mostrado openUrlWithParametersCompletion y, a continuación, inspecciona crashiOS18SimOniPhone15Pro.txt y la ruta de llamadas de SFSafariViewController. Se considerará terminado cuando abrir la vista de Safari ya no provoque el bloqueo del runtime de NativeScript iOS en la configuración del simulador indicada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
ios, typescript
Área
mobile-dev
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.