Невозможно создать приложение tvOS с зависимостями Cocoapod с помощью xctool

У меня есть проект, который имеет небольшое количество зависимостей, управляемых с помощью Cocoapods. Я могу построить это нормально из Xcode, но когда я пытаюсь собрать его с помощью xctool или travisci, я получаю сообщение об ошибке:

  xcodebuild clean VideoStationViewer
  Pods / SwiftyJSON (Debug)
     ✗ Check dependencies (37 ms)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Check dependencies
    target 'SwiftyJSON' has bitcode disabled (ENABLE_BITCODE = NO), but it is required for the 'appletvos' platform
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  1 errored, 0 warning (38 ms)

  Pods / Alamofire (Debug)
    ✗ Check dependencies (38 ms)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Check dependencies
    target 'Alamofire' has bitcode disabled (ENABLE_BITCODE = NO), but it is required for the 'appletvos' platform
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  1 errored, 0 warning (38 ms)

  Pods / OHHTTPStubs (Debug)
    ✗ Check dependencies (40 ms)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Check dependencies
    target 'OHHTTPStubs' has bitcode disabled (ENABLE_BITCODE = NO), but it is required for the 'appletvos' platform
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  1 errored, 0 warning (47 ms)

Я предполагаю, что xctool использует другие параметры для сборки, чем Xcode, но не уверен, что отличается или как сказать xctool использовать эти параметры, а затем как настроить Travisci для его использования.

2 ответа

Решение

Ответ @Campbell_Souped отлично работает для проектов, предназначенных только для tvOS, но если вы попытаетесь также выполнить сборку для OS X, вы получите сообщение об ошибке, что Bitcode не поддерживается. Эта версия проверяет платформу перед включением Bitcode:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.platform_name == :tvos || target.platform_name == :watchos then
      target.build_configurations.each do |config|
          config.build_settings['ENABLE_BITCODE'] = 'YES'
      end
    end
  end
end

Попробуйте добавить следующий фрагмент в конец вашего Podfile, затем выполните pod install:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
        config.build_settings['ENABLE_BITCODE'] = 'YES'
    end
  end
end
Другие вопросы по тегам