Cảnh báo Xcode: Nhiều mục tiêu phù hợp với sự phụ thuộc ngầm định cho sản phẩm


8

Tôi có một ứng dụng có hai hương vị (trả phí và miễn phí). Một trong những khung công tác của tôi được gọi là AppBootstrap, có hai subspec (FreeVersion và PaidVersion)

Bây giờ Xcode tiếp tục đưa ra cảnh báo khó chịu này (Tôi nhắm đến các cảnh báo bằng không trong dự án của mình vì vậy tôi không chỉ muốn bỏ qua nó, độ dốc trơn trượt và những thứ tương tự;))

Multiple targets match implicit dependency for product reference 'AppBootstrap.framework'. Consider adding an explicit dependency on the intended target to resolve this ambiguity. (in target 'The Flight Tracker Free' from project 'The Flight Tracker')
Target 'AppBootstrap-FreeVersion' (in project 'AppBootstrap')
Target 'AppBootstrap-PaidVersion' (in project 'AppBootstrap')

Tôi đã googled nó một chút nhưng tôi không thể tìm ra cách giải quyết điều này. Tôi đã thử * thêm nó trong giai đoạn xây dựng 'Liên kết nhị phân với thư viện' nhưng điều đó không giải quyết được. * thêm nó vào giai đoạn phụ thuộc nhưng chúng không hiển thị ở đó. * thay đổi '-framework AppBootstrap' trong 'Build settings => Other Linker Flag' thành '-framework AppBootstrap-FreeVersion' nhưng điều đó chỉ xảy ra lỗi.

Podfile của tôi (đơn giản hóa)

source 'custom-pods/link'
source 'https://cdn.cocoapods.org/'

platform :ios, '9.0'

install! 'cocoapods',
  :generate_multiple_pod_projects => true,
  :incremental_installation => true

use_frameworks!
inhibit_all_warnings!

workspace 'MyApp'

target 'MyAppFree' do
  pod 'AppBootstrap/FreeVersion'
end

target 'MyAppPaid' do    
  pod 'AppBootstrap/PaidVersion'
end

AppBootstrap podspec

Pod::Spec.new do |s|
    s.name        = 'AppBootstrap'
    s.version     = '3.18.2'
    s.summary     = 'iOS App Bootstrap Module.'
    s.platforms   = { ios: '9.0' }
    s.swift_version = '5.0'

    s.description = <<-DESC
        Contains classes to bootstrap ios apps.
    DESC

    s.homepage = ---
    s.license  = { type: 'MIT', file: 'LICENSE' }
    s.author   = { --- }
    s.source   = { --- }

    s.frameworks = [
        'Foundation',
        'UIKit'
    ]


    s.subspec 'PaidVersion' do |sub|
        sub.dependency 'Advertisement/Core'

        sub.source_files = [
            'AppBootstrap/source/**/*.swift'
        ]

        sub.resources = [
            'AppBootstrap/support/Localization/*.lproj',
            'AppBootstrap/support/ConsentText.plist',
            'AppBootstrap/support/Images.xcassets'
        ]

        sub.pod_target_xcconfig = {
            'APPLICATION_EXTENSION_API_ONLY' => 'NO'
        }

        sub.pod_target_xcconfig = {
            'OTHER_SWIFT_FLAGS' => '-D"PAIDVERSION"'
        }
    end

    s.subspec 'FreeVersion' do |sub|
        sub.dependency 'Advertisement/Ads'

        sub.source_files = [
            'AppBootstrap/source/**/*.swift'
        ]

        sub.resources = [
            'AppBootstrap/support/Localization/*.lproj',
            'AppBootstrap/support/ConsentText.plist',
            'AppBootstrap/support/Images.xcassets',
            'AppBootstrap/support/Colors.xcassets',
            'AppBootstrap/support/Fonts/*.otf'
        ]

        sub.pod_target_xcconfig = {
            'APPLICATION_EXTENSION_API_ONLY' => 'NO'
        }

        sub.pod_target_xcconfig = {
            'OTHER_SWIFT_FLAGS' => '-D"FREEVERSION"'
        }
    end

    s.subspec 'Undefined' do |sub|
        sub.dependency 'Advertisement/Core'

        sub.source_files = [
            'AppBootstrap/source/**/*.swift'
        ]

        sub.resources = [
            'AppBootstrap/support/Localization/*.lproj',
            'AppBootstrap/support/ConsentText.plist',
            'AppBootstrap/support/Images.xcassets',
            'AppBootstrap/support/Fonts/*.otf'
        ]

        sub.pod_target_xcconfig = {
            'APPLICATION_EXTENSION_API_ONLY' => 'NO'
        }

        sub.pod_target_xcconfig = {
            'OTHER_SWIFT_FLAGS' => '-D"UNDEFINEDVERSION"'
        }
    end

    s.default_subspec = 'Undefined'
end

Bất kỳ trợ giúp / lời khuyên nào đều được đánh giá cao =)


Bạn đã tìm thấy một giải pháp?
Oleg_Korchickiy

chưa [cần thêm tám ký tự ...]
Saren Inden

Câu trả lời:


2

lỗi chỉ xảy ra trong Pruduct -> Archive.

bạn có thể cài đặt pod cho mục tiêu duy nhất trước khi lưu trữ.

source 'custom-pods/link'
source 'https://cdn.cocoapods.org/'

platform :ios, '9.0'

install! 'cocoapods',
  :generate_multiple_pod_projects => true,
  :incremental_installation => true

use_frameworks!
inhibit_all_warnings!

def MyAppPods (scheme)
  if scheme == 'MyAppFree'
    pod 'AppBootstrap/FreeVersion'
  end
  if scheme == 'MyAppPaid'
    pod 'AppBootstrap/PaidVersion'
  end
end

workspace 'MyApp'

scheme = ENV['scheme']
if scheme
  target scheme do
    MyAppPods scheme
  end
else
  target 'MyAppFree' do
    MyAppPods 'MyAppFree'
  end

  target 'MyAppPaid' do    
    MyAppPods 'MyAppPaid'
  end
end
scheme='MyAppFree' pod install

0

Điều đó đã xảy ra với tôi khi tôi nâng cấp phiên bản iOS min trong Podfile nhưng quên cài đặt nó cho các khung (mục tiêu) trong Podfile

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.