错误ITMS-90206无效捆绑包含不允许的文件'框架'

Kev*_*ado 9 xcode ios ios-frameworks cocoapods swift-custom-framework

我通过Xcode将我的应用程序上传到商店时遇到问题,特别是这个问题.

无效的Bundle包含不允许的文件框架

我看到很多关于这个错误的帖子,但所有人都在谈论Extension App,我不使用.

我正在使用Custom frameworkCocoapods.

你可以在这里看到我的树:

Tree Xcode项目自定义框架

  • XXX是我的项目应用名称
  • SharedXXX是我的custom framework
  • Pods是由.创建的项目cocoa pods

这是我的可可podFile:

use_frameworks!
link_with 'XXX', 'SharedXXX'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.1'


workspace 'XXX'

xcodeproj 'XXX/XXX.xcodeproj'
xcodeproj 'Shared/SharedXXX.xcodeproj'

def default_pods
    pod 'Reveal-iOS-SDK', :configurations => ['Debug']
    pod "SnapKit", '~> 0.17.0'
    pod "DKChainableAnimationKit", '~> 1.6.0'
    pod "AsyncSwift"
end

def shared_pods
    pod "Alamofire", '~> 3.0'
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git'
    pod 'ReachabilitySwift', :git => 'https://github.com/ashleymills/Reachability.swift'
end

target :XXX do
    xcodeproj 'XXX/XXX.xcodeproj'
    default_pods
    shared_pods
end

target :XXXDev do
    xcodeproj 'XXX/XXX.xcodeproj'
    default_pods
    shared_pods
end

target :SharedXXX do
    xcodeproj 'Shared/SharedXXXX.xcodeproj'
    shared_pods
end
Run Code Online (Sandbox Code Playgroud)

构建custom framework(SharedXXX)的设置:

自定义框架构建设置

我将Embedded属性设置为 Yes

custom framework(SharedXXX)的常规设置:

自定义框架常规设置

Cocoapods提供的框架是相互关联的.

并完成,

主项目的常规设置(App Project:在树上称为XXX)

主要项目:

任何的想法 ?

Kev*_*ado 23

我解决了这个问题

首先,进入 Build Settings

  • 对于主项目(此处为XXX):Embedded Content Contains Swift CodeYES

  • 自定义框架(SharedXXX):Embedded Content Contains Swift CodetoNO

  • 自定义框架(SharedXXX):Runpath Search Path=@executable_path/../../Frameworks

这有助于我解决这个问题


var*_*lra 5

尝试从Xcode 9.3上传时遇到相同的问题, 这是因为我在OneSignal NotificationServiceExtension中添加了“ use_frameworks”

在此处输入图片说明

在“构建设置”中找到的“ 始终嵌入Swift标准库 ”值应仅对您的主项目而不对自定义框架或扩展设置为“ 是”

  • Xcode 10 也有完全相同的问题。如果你查看错误“XXX.app/Frameworks/YYY.framework”中提到的路径,你可以找到罪魁祸首“Frameworks”文件夹,其中将包含所有 Swift 标准的重复项图书馆!将“始终嵌入 Swift 标准库”设置为“是”可以解决这个问题。 (2认同)