Приложение, использующее Realm Swift Pod, не запускается (CMD + R, происходит сбой при компиляции Realm), но оно тестирует (CMD + U) и также архивирует

Вы можете сделать что-то действительно сладкое, используя JNI следующим образом:

MyObject.java:

public class MyObject
{
    static
    {
        System.loadLibrary( "classname" );
    }

    public static native String getClassName();

    public static void main( String[] args )
    {
        System.out.println( getClassName() );
    }
}

then:

javac MyObject.java
javah -jni MyObject

then:

MyObject.c:

#include "MyObject.h"

JNIEXPORT jstring JNICALL Java_MyObject_getClassName( JNIEnv *env, jclass cls )
{
    jclass javaLangClass = (*env)->FindClass( env, "java/lang/Class" );
    jmethodID getName = (*env)->GetMethodID( env, javaLangClass, "getName",
        "()Ljava/lang/String;" );
    return (*env)->CallObjectMethod( env, cls, getName );
}

Затем скомпилируйте C вверх в общую библиотеку с именем libclassname.so и запустите java!

* chuckle

0
задан Isaac 26 March 2019 в 12:17
поделиться

1 ответ

Я обнаружил, почему компиляция Realm внутри нашего «большого» проекта привела к сбою компилятора Swift. По-видимому, виновником является опция «Thread Sanitizer» внутри секции RUN для текущей схемы.

Как представляется, в новой версии компилятора Swift есть проблема с некоторыми файлами, как отмечается в некоторой «известной проблеме», которую наша команда упустила из виду (позор нам (?)!).

*Known Issues
    The Swift compiler may crash during a build when the Thread Sanitizer is enabled. (48719789)

    Workaround: Disable Thread Sanitizer in the Scheme Editor’s Diagnostics tab.

Простое отключение параметра «Очистка потока» делает Swift счастливым, и он больше не падает.

Теперь давайте надеяться, что Apple исправит это, как только сможет. Привет.

0
ответ дан Isaac 26 March 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: