18

我通过 Xcode 将我的应用程序上传到商店时遇到问题,尤其是这个。

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

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

我正在使用Custom frameworkCocoapods

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

树 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

custom framework( SharedXXX )的构建设置:

自定义框架构建设置

我将 Embedded 属性设置为Yes

custom framework( SharedXXX )的常规设置:

自定义框架常规设置

Cocoapods 提供的框架是链接的。

最后,

主项目的常规设置(应用程序项目:在树上称为XXX )

主要项目

任何想法 ?

4

2 回答 2

38

我解决了问题

首先,设置成Build Settings

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

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

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

这帮助我解决了这个问题

于 2016-03-02T15:30:44.960 回答
16

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

在此处输入图像描述

Build Settings 中的Always Embed Swift Standard Libraries值应设置为Yes,仅适用于您的主项目,而不适用于您的自定义框架或扩展。

于 2018-04-07T09:01:51.153 回答