Не удается скомпилировать Gluon Mobile для iOS - PullRequest
0 голосов
/ 07 мая 2019

Недавно я настроил плагин gluon charm down на Orientation в виде вопроса здесь , он работает, когда я тестирую его с новым проектом (на MacOS). Но когда я интегрирую его в существующий проект (Оригинальная разработка на Window Environment), Ошибка при попытке ./gradlew --info createIpa Отображается следующая ошибка

` Не удалось выполнить задачу ': CashmagIDApp: createIpa'.

java.io.IOException: Файл не является архивом: опорно-v4-26.1.0.aar `

Я не могу найти информацию, связанную с этой проблемой. Пожалуйста, помогите мне или дайте мне подсказку, чтобы найти причину проблемы.

Отредактировано

build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.3.16'
    }
}

apply plugin: 'org.javafxports.jfxmobile'
apply from: 'ios-build.gradle'

task xcodebuild {
    doLast {
        xcodebuildIOS("$project.buildDir","$project.projectDir", "CMOrientation")
    }
}

task installNativeLib (type:Copy, dependsOn: xcodebuild) {
    from("$project.buildDir/native")
    into("src/ios/jniLibs")
    include("*.a")
}

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}


mainClassName = 'fr.cashmag.cashmagid.CashmagIdMain'
ext.GLUON_VERSION="5.0.2"
ext.CHARM_DOWN="3.8.6"

dependencies {
    //gluon Version
    compile "com.gluonhq:charm:$GLUON_VERSION"
    //Gluon Charm-Down Version
    compile "com.gluonhq:charm-down-plugin-device:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-browser:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-desktop:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-android:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-ios:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-orientation:$CHARM_DOWN"
    //Zxing Library for Generate Barcode/QRCODE
    compile 'com.google.zxing:core:3.3.3'
}

jfxmobile {
    downConfig {
        version = '3.8.6'
        // Do not edit the line below. Use Gluon Mobile Settings in your project context menu instead
        plugins 'display', 'lifecycle', 'statusbar', 'storage','device','browser','orientation'
    }
    android {
        manifest = 'src/android/AndroidManifest.xml'
    }
    ios {
        infoPList = file('src/ios/Default-Info.plist')
        forceLinkClasses = [
                'fr.cashmag.cashmagid.**.*',
                'com.gluonhq.**.*',
                'javax.annotations.**.*',
                'javax.inject.**.*',
                'javax.json.**.*',
                'org.glassfish.json.**.*'
        ]
    }
}

1 Ответ

1 голос
/ 07 мая 2019

В опубликованном билде у вас есть:

dependencies {
    ...
    //Gluon Charm-Down Version
    compile "com.gluonhq:charm-down-plugin-device:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-browser:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-desktop:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-android:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-ios:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-orientation:$CHARM_DOWN"

}

И тогда у вас также есть:

jfxmobile {
    downConfig {
        version = '3.8.6'
        plugins 'display', 'lifecycle', 'statusbar', 'storage','device','browser','orientation'
    }

Это означает, что вы добавляете дважды плагины device, browser и display, так как плагин jxmobile будет управлять этим для вас через downConfig. Вот почему другие плагины, такие как storage, работают без явного добавления в dependencies.

В любом случае, это вообще не должно быть проблемой.

Однако проблема (наличие зависимости Android при запуске задачи iOS) связана с зависимостями display:

    compile "com.gluonhq:charm-down-plugin-display-desktop:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-android:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-ios:$CHARM_DOWN"

Как видите, вы добавляете реализации платформы службы display в виде зависимостей compile, что означает, что они будут доступны для всех платформ: зависимости Android (Android SDK, support.aar, ... ) будет использоваться на настольных компьютерах и iOS, что, очевидно, не будет работать.

Как упоминалось ранее, вам вообще не нужно их включать, поэтому удаление всех ссылок Charm Down из dependencies {} решит вашу проблему.

Но если вам все еще нужно включить их, как если бы вы включали зависимости от пользовательского сервиса, не входящего в Charm Down, вам придется использовать платформу:

    desktopCompile "com.gluonhq:charm-down-plugin-display-desktop:$CHARM_DOWN"
    androidCompile "com.gluonhq:charm-down-plugin-display-android:$CHARM_DOWN"
    iosCompile "com.gluonhq:charm-down-plugin-display-ios:$CHARM_DOWN"

Теперь каждая из этих зависимостей платформы будет доступна только для спроектированной платформы.

Если вам интересно, плагин jxmobile определяет androidCompile и другие здесь .

...