Не интегрировать модуль Kotlin / Native в проект Xcode - PullRequest
0 голосов
/ 12 апреля 2020

Я создал библиотеку для Android / iOS от Kotlin Native, я буду интегрировать ее с помощью cocoapods и использовать ее в Xcode. Я использовал org.jetbrains.kotlin.native.cocoapods и сгенерировал core.podspec

Pod::Spec.new do |spec|
    spec.name                     = 'core'
    spec.version                  = '0.0.1'
    spec.homepage                 = 'Home URL'
    spec.source                   = { :git => "Not Published", :tag => "Cocoapods/#{spec.name}/#{spec.version}" }
    spec.authors                  = ''
    spec.license                  = ''
    spec.summary                  = 'This is sample Summary'

    spec.static_framework         = true
    spec.vendored_frameworks      = "build/cocoapods/framework/#{spec.name}.framework"
    spec.libraries                = "c++"
    spec.module_name              = "#{spec.name}_umbrella"



    spec.pod_target_xcconfig = {
        'KOTLIN_TARGET[sdk=iphonesimulator*]' => 'ios_x64',
        'KOTLIN_TARGET[sdk=iphoneos*]' => 'ios_arm',
        'KOTLIN_TARGET[sdk=watchsimulator*]' => 'watchos_x86',
        'KOTLIN_TARGET[sdk=watchos*]' => 'watchos_arm',
        'KOTLIN_TARGET[sdk=appletvsimulator*]' => 'tvos_x64',
        'KOTLIN_TARGET[sdk=appletvos*]' => 'tvos_arm64',
        'KOTLIN_TARGET[sdk=macosx*]' => 'macos_x64'
    }

    spec.script_phases = [
        {
            :name => 'Build core',
            :execution_position => :before_compile,
            :shell_path => '/bin/sh',
            :script => <<-SCRIPT
                set -ev
                REPO_ROOT="$PODS_TARGET_SRCROOT"
                "$REPO_ROOT/../gradlew" -p "$REPO_ROOT" :core:syncFramework \
                    -Pkotlin.native.cocoapods.target=$KOTLIN_TARGET \
                    -Pkotlin.native.cocoapods.configuration=$CONFIGURATION \
                    -Pkotlin.native.cocoapods.cflags="$OTHER_CFLAGS" \
                    -Pkotlin.native.cocoapods.paths.headers="$HEADER_SEARCH_PATHS" \
                    -Pkotlin.native.cocoapods.paths.frameworks="$FRAMEWORK_SEARCH_PATHS"
            SCRIPT
        }
    ]
end

и Я объявил podfile

target 'iOS-Sample' do
  pod 'core', :path => '../core'
end

при продолжении. Я устанавливаю cocoapods на iOS проект, но я получаю исключение из xcode:

Showing Recent Issues
"$REPO_ROOT/../gradlew" -p "$REPO_ROOT" :core:syncFramework                  Pkotlin.native.cocoapods.target=$KOTLIN_TARGET   Pkotlin.native.cocoapods.configuration=$CONFIGURATION  Pkotlin.native.cocoapods.cflags="$OTHER_CFLAGS"
Pkotlin.native.cocoapods.paths.headers="$HEADER_SEARCH_PATHS"
Pkotlin.native.cocoapods.paths.frameworks="$FRAMEWORK_SEARCH_PATHS"

Есть ли какое-либо решение для решения этой проблемы?

1 Ответ

0 голосов
/ 13 апреля 2020


Этого совершенно недостаточно, чтобы сказать что-то конкретное, но я предполагаю, что проблема здесь в том, что у вас нет файла gradlew в каталоге библиотеки root. Если это так, сгенерируйте его вручную, вызвав gradle wrapper в этом каталоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...