récord de problemas de desarrollo de iOS en 2023

El invierno de Internet ha llegado y muchas personas se verán atrapadas en la situación de pasar de una empresa que está cerrando a unirse a otra que también podría cerrar pronto.

1. En la versión, las llamadas a Python fallan a través del soporte de Python-Apple y PythonKit. Este problema proviene de la comunidad Dianya. La causa ha sido identificada y hay soluciones que no son perfectas. (otra gente)

En mi proyecto de iOS, uso Python-Apple-support y PythonKit para llamar a Python.
Después de completar la integración de acuerdo con el USO del soporte de Python-Apple en git, actualmente se puede llamar normalmente en depuración.
Sin embargo, en modo testfliight o lanzamiento,
no se produce ningún bloqueo al configurar pythonPath y Py_Initialize():

guard let stdLibPath = Bundle.main.path(forResource: "python-stdlib", ofType: nil) else { return }
guard let stdDynloadPath = Bundle.main.path(forResource: "python-stdlib/lib-dynload", ofType: nil) else { return }
setenv("PYTHONHOME", stdLibPath, 1)
setenv("PYTHONPATH", "(stdLibPath):(stdDynloadPath)", 1)
Py_Initialize()
//以上内容会被执行不会导致崩溃,并且debug下后续可以正常调用,路径应该是有效的

Luego, llamar a Python falla:

//调用自定义的python文件
let py = Python          //这里会闪退
let a = py.import("diffTool")
let test = a.diff_modelTest("123123123","123123123")

Después de verificar, el bloqueo ocurrió aquí en Pythonkit:
Pythonkit-> PythonLibrary+Symbols: Py_incref (Pointer)
parece ser un error de puntero. Vi un montón de 0x00000000000000000000 en xcode,
tales como:
compartido

2. Modifiqué el código fuente en el pod y me preocupa que se sobrescriba la próxima vez, ¿cómo solucionarlo? (otra gente)

En el mundo de JavaScript, cuando se modifica la biblioteca de terceros de NPM, la biblioteca del paquete de parches se puede utilizar para generar y aplicar parches de código. Entonces, ¿qué medidas podemos tomar contra el cocoapod?

Si confía en un repositorio de código que tiene un proyecto completo y se puede depurar de forma independiente, puede bifurcar una copia, luego modificarla y enviarla, y en el podfile, señalarnos las tres partes que originalmente apuntaron al repositorio público de git usando la siguiente configuración: Almacén propio:

pod 'Alamofire', :git => 'https://github.com/XXX/Alamofire.git', :commit => '0f506b1c45'

Si el almacén principal se actualiza la próxima vez, podemos extraer y fusionar el código más reciente, especificar la última confirmación o no especificarla.

Pero a veces las bibliotecas de terceros solo pueden proporcionar archivos comprimidos. Por ejemplo, la biblioteca TUI de Tencent IM tiene muchos archivos zip y cada archivo tiene muchas subespecciones. En este momento, será más problemático construir un almacén usted mismo. Una solución simple es arrastrar cada biblioteca que comienza con TUI al mismo nivel de archivo que el podfile y luego descargar la versión correspondiente del archivo podspec a su directorio. Finalmente especificar en Podfile

pod 'TUICore', :path => 'TUICore'

De esta manera, el pod importará el código del sistema de archivos local al destino del pod sin tener que preocuparse por descargar la versión de red, lo que provocará que se sobrescriban las modificaciones locales. La tecnología se llama Development Pods .

3. Error inverso de Pinduoduo MonkeyDev: código: -402620415 y -402653103. Después de la instalación, no hay pantalla completa ni ícono y se bloqueará. Actualmente, los scripts de MonkeyDev tienen algunos problemas de sincronización en la nueva versión del sistema de compilación Xcode, lo que causa problemas con los archivos plist generados y genera problemas con la pantalla completa, los íconos y los identificadores de paquetes. Al compilar por primera vez, configure MONKEYDEV_DEFAUTL_BUNDLEID=YES y se informará el siguiente error en el teléfono iOS16: Se ha producido un error desconocido. Dominio: com.apple.dt.MobileDeviceErrorDomain Código: -402620415. En este momento, la identificación del paquete es la original, pero se informará un error. Al compilar nuevamente, la identificación del paquete se convierte en la configurada en nuestro proyecto. En este momento, se informará el código: -402653103. La aplicación se puede instalar en el teléfono móvil, pero no se puede iniciar automáticamente. Se bloqueará después del inicio manual. Pinduoduo debería haber hecho alguna protección. Para resolver los problemas anteriores, debe prestar atención al tiempo de compilación de Xcode. En particular, un paso generará un nombre de aplicación vacío.plist, que se intercalará antes y después de la actividad del paquete de MonkeyDev, lo que causará problemas. La suposición es que la nueva versión de Xcode admite la ejecución paralela de scripts. (otra gente)

Supongo que te gusta

Origin blog.csdn.net/Mamong/article/details/132112967
Recomendado
Clasificación