2017-01-19 6 views
0

Okej, я сражаюсь с этим несколько часов, и я полностью из идей. Я создаю приложение, которое имеет расширение действия, необходимое для получения просматриваемого веб-сайта в данный момент. Мне нужно разделить некоторый код между приложением и расширением (главным образом, сетевой API), поэтому мне нужно совместно использовать libs (alamofire и т. Д.).Добавление цели в CocoaPods для расширения

Вот мой CocoaPods

use_frameworks! 

target 'xxxExtension' do 
pod 'ObjectMapper', '~> 2.2' 
pod 'SwiftyJSON' 
pod 'Alamofire', '~> 4.0' 
pod 'Nuke', '~> 4.0' 
pod - 
pod - 
end 

target 'yyyMain' do 
pod 'ObjectMapper', '~> 2.2' 
pod 'SwiftyJSON' 
pod 'Alamofire', '~> 4.0' 
pod 'Nuke', '~> 4.0' 
pod - 
pod - 
pod - 
pod - 
pod - 
pod - 
    target 'yyyMainTests' do 
    inherit! :search_paths 
    pod - 
    pod - 
    pod - 
    pod - 
    pod - 
    end 
end 

Как вы можете видеть, я использую неявную абстрактную цель для use_frameworks, я попытался пошевелиться стручками, которые доля там, но это не сильно изменилось. Создал abstract_target сам, ту же ошибку.

error: /Users/abc/Library/Developer/Xcode/DerivedData/yyyMain-fuuyjxathhqlfdczxrtmfewlpcpe/Build/Products/Debug-iphoneos/xxxExtension.appex: No such file or directory 

Любые идеи, что происходит?

+0

Вы пытались изменить название проекта xxxExtension на yyyMain. ИЛИ попробуйте удалить первый конец до последнего – vaibby

+0

Не понимаю, как изменить имя xxxExtension на yyyMain? Это другой модуль, чем yyyMain, как они могут использовать одно и то же имя? И несколько раз переместил заказ, не помог. Это странно странно, потому что в связанных связанных рамках и libaries существует yyyExtension – Kamajabu

ответ

0

Хорошо, это было немного сложно, и я внес несколько изменений, которые могли привести к решению проблемы.

Первый добавлял

post_install do |installer_representation| 
    installer_representation.pods_project.targets.each do |target| 
     if target.name.start_with? "Pods-extensionName" 
      target.build_configurations.each do |config| 
       config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'AF_APP_EXTENSIONS=1'] 
      end 
     end 
    end 
end 

В podfile.

Второй из них был (помимо очистки, перестройки и удаления полученных данных), чтобы вручную удалить ассоциации двоичных файлов. Для этого нужно ввести настройки проекта -> цели ->app -> общий -> (внизу) Встроенные бинарные файлы и удалить * .appex файл.

Дополнительно может потребоваться перейти к этапам сборки и удалить бинарную ссылку с помощью Libaries.

Последнее, что нужно сделать, это переустановить модуль под «pod install», и новые ссылки должны быть воссозданы на очищенном проекте.

Goodluck!