Включите статические рамки и библиотеки на cocoapods

Проведя часы, мне определенно нужна ваша помощь.

Я хочу создать модуль, включающий Spotify SDK ( здесь это .framework) и Deezer SDK ( здесь это *.a lib), чтобы поработать с ним.

Оба SDK написаны на Objective-C, и я хочу написать свой модуль в Swift 2 (iOS 8). Кроме того, проекты, которые будут включать этот модуль, находятся в Swift 2 (iOS 8).

После создания проекта pod с pod create lib Я начал с попытки добавить Spotify.framework непосредственно в проект pod, но не могу скомпилировать...

Итак, я попытался включить Spotify.framework как пакет, написав podspec, вот файл spotify.podspec.json:

{
  "name": "FakeSpotify",
  "version": "1.1",
  "summary": "Spotify iOS SDK",
  "homepage": "https://developer.spotify.com/technologies/spotify-ios-sdk/",
  "license": "MIT",
  "authors": {
    "jjt": "jeanjaques@thierry.com"
  },
  "source": {
    "git": "https://github.com/spotify/ios-sdk.git",
    "tag": "beta-13"
  },
  "platforms": {
    "ios": "8.0"
  },
  "requires_arc": true,
  "preserve_paths": "Spotify.framework",
  "public_header_files": "Spotify.framework/Versions/A/Headers/*.h",
  "vendored_frameworks": "Spotify.framework",
  "xcconfig": {
    "OTHER_LDFLAGS": "-ObjC"
  }
}

И я также добавил строку в Podfile:

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!

target 'SpoTest_Example', :exclusive => true do
  pod 'SpoTest', :path => '../'
  pod 'FakeSpotify', :podspec => './spotify.podspec.json'
end

target 'SpoTest_Tests', :exclusive => true do
  pod 'SpoTest', :path => '../'
end

Теперь, после pod installпапка "FakeSpotify" создается с приложением Spotify.framework. Эта часть в порядке, но этого недостаточно: я не могу использовать это...

Я не могу импортировать Spotify ни в пример проекта, ни в файлы pods для разработки (оба в Swift).

Я пытался добавить #import <Spotify/Spotify.framework в файле зонтика (SpoTest-umbrella.h), но произошла ошибка: Include of non-modular header inside framework module 'SpoTest',

После попадания в себя и поиска я попытался отредактировать свой подфайл, добавив следующий пост-скрипт:

post_install do |installer|
    installer.pods_project.build_configuration_list.build_configurations.each do |configuration|
        configuration.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
    end
end

Ничего лучше, та же ошибка. Хорошо, хорошо, что я могу сделать? Хммм, я попытался удалить ранее добавленный импорт в файле зонтика и отредактировал мой pod podspec (SpoTest.podspec). Я крикнул: "О, я действительно плохой, мы должны также сказать, что у нас есть зависимость в этом подспецификации, даже для тестирования разработки...".

Поэтому я добавил эту красивую строку: s.dependency 'FakeSpotify'

Я был так счастлив, и так грустен: новая ошибка от pod install команда сейчас:

[!] The 'Pods-SpoTest_Example' target has transitive dependencies that include static binaries: (/Users/jjt/Documents/dev/ios/LIBS/SpoTest/Example/Pods/FakeSpotify/Spotify.framework)

Ой, так близко! Хорошо, давайте попробуем что-нибудь с этим сделать. Я отредактировал свой Podfile, добавив предустановочный скрипт:

pre_install do |installer|
    # workaround for https://github.com/CocoaPods/CocoaPods/issues/3289
    def installer.verify_no_static_framework_transitive_dependencies; end
end

С этим, командная строка в порядке, и установка сделана. Но я все еще не могу использовать это. И все еще есть ошибка, если я импортирую фреймворк в зонтик.

У вас есть еще идеи? У меня сейчас больше нету:)

Или, может быть, есть лучший способ без кокопод? Моя цель - создать что-то с помощью этих двух SDK и легко включить это в другие проекты.

Благодарю.

0 ответов

Другие вопросы по тегам