Как настроить параметры сборки проекта Xcode через podspec - PullRequest
0 голосов
/ 14 марта 2020

У меня есть проект, разработанный с использованием плагинов. Поэтому, чтобы добавить любую новую функцию, мы создаем новый плагин, добавляем его в основной проект после разработки и тестирования. Каждый плагин имеет свой собственный подфайл и подспе c. Поэтому я хочу добавить квантограф pod к одному из моих плагинов с именем I GraphIntegrationPlugin .

Ниже приведен мой подспе c из GraphIntegrationPlugin :

Pod::Spec.new do |s|

s.name             = "GraphIntegrationPlugin"
s.version          = '0.1.1'
s.summary          = "GraphIntegrationPlugin plugin.
                     DESC
s.homepage         = "https://abc:8fqTzT2v7UXAwu6RE6CV@bitbucket.org/GraphIntegrationPlugin-ios.git"
s.license          = 'MIT'
s.author           = { "Aabc dd” => “abc@gmail.com" }
s.source           = { :git => "https://abc:8fqTzT2v7UXAwu6RE6CV@bitbucket.org/GraphIntegrationPlugin-ios.git", :tag => s.version.to_s }

s.ios.deployment_target  = "10.0"
s.platform     = :ios, '10.0'
s.requires_arc = true
s.swift_version = '5.1'
s.frameworks = 'UserNotifications', 'UIKit', 'Foundation', 'UserNotificationsUI'
s.source_files = 'PluginClasses/**/*.{swift,h,m}'
s.resources = 'Resources/**/*.{storyboard,xib,xcassets,png,plist}'
s.public_header_files = 'Pods/**/**/*.h'

# Public frameworks
s.dependency 'quantumgraph'

 s.xcconfig = {
    'OTHER_LDFLAGS' => '-objc -ObjC',
    'OTHER_CFLAGS'  => '-fembed-bitcode',
    'ENABLE_BITCODE' => 'YES',
    'SWIFT_VERSION' => '5.1',
    'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES',
    'FRAMEWORK_SEARCH_PATHS' => '$(inherited) "${PODS_ROOT}"/**',
    'LIBRARY_SEARCH_PATHS' => '$(inherited) "${PODS_ROOT}"/**',
    'HEADER_SEARCH_PATHS' => '$(inherited) "${PODS_ROOT}"/Headers/Public'
}


end

После компиляции основного проекта, включающего этот GraphIntegrationPlugin , создать следующую структуру каталогов проекта:

MainProject:
 - support files
 - Resources
 - Classes, etc.
Pod:
- Pods
  --quantumgraph
  - iOS-sdk
    - QGSdk.h
    - QGInbox.h
    - Frameworks
      - libQGSdk.a
  - Support Files
    - quantumgraph.xcconfig
  --GraphIntegrationPlugin
   -xyz.swift
   -support files
    - GraphIntegrationPlugin.modulempa
    - GraphIntegrationPlugin.xcconfig
    - GraphIntegrationPlugin.dummy.m
    - GraphIntegrationPlugin-Info.plist
    - GraphIntegrationPlugin.prefix.pch
    - GraphIntegrationPlugin.umbrella.h

После успешного создания проекта при попытке добавить импортировать QGSdk в xyz.swift , он выдает модуль ошибки не найден. чтобы исправить это, я сделал следующие ручные изменения, чтобы построить настройки GraphIntegrationPlugin.

  1. Я добавил libQGSdk.a в Framework и связанные библиотеки в General of GraphIntegrationPlugin Target.
  2. В GraphIntegrationPlugin.umbrella.h я добавил #import QGSdk.h
  3. Я добавил QGSdk.h в цель GraphIntegrationPlugin, и Target Membership сделала его опубликованным c.

После этого ошибка исчезает, и я могу получить доступ ко всем методам и переменным QGSdk к своему xyz.swift.

Но, к сожалению, я не могу pu sh это руководство изменяется установки сборки на Git или наша архитектура не поддерживает это. Следовательно, все вышеперечисленные три изменения настроек сборки вручную, которые я хочу сделать через podspe c. Я пытался всеми возможными способами написать podspe c таким образом, чтобы он настраивал параметры сборки GraphIntegrationPlugin в соответствии с моим ожидаемым способом, но не смог этого сделать.

Какие изменения мне нужны сделать для подспе c, чтобы сделать заголовок QGSdk.h доступным в моих классах Swift GraphIntegrationPlugin ? У меня есть эта ссылка BJ Homer , но она не удовлетворяет моему требованию по созданию podspe c.

1 Ответ

0 голосов
/ 14 марта 2020

Попытался установить для stati c framework значение true, в Podspecs?

s.static_framework = true

Я использую этот параметр для той же ситуации:

s.public_header_files = [
"MVVMRools/MVVMRools.h",
"MVVMRools/MVVMRools-Briging-Header.h",
"MVVMRools/Another.h"]
...