我有一个目前正在运行的应用程序,一切都很好.
当我转到File-> New-> Target并添加一个watchkit app/extension时,构建会立即被破坏,因为"找不到模块'Crashlytics'".目前,使用Crashlytics访问@import Crashlytics,我检查了项目,并且pbxproj文件具有引用正确位置的crashlytics框架,并且在项目中可以看到Crashlytics.h.我尝试切换到#import "Crashlytics.h"只是为了看看它是否与模块有关而不是简单地导入标题,但随后Crashlytics.h file not found.
Crashlytics已经在这个项目中工作了很长时间,工作得很好.在使用外部框架或pod时添加watch扩展时是否还需要一些额外的东西?
(如果我完全评论这一行,只是为了看看会发生什么,我得到了一个类似的问题,我们正在使用的一个cocoapods,如果我继续评论的话,我会愿意的,我最终会必须删除任何外部框架)
这个问题让我疯了.无论我做什么,我都会在存档时遇到问题"没有这样的模块'扶手椅'".它在我构建时有效,但是当我将XCode与我混淆时.我看到XCode归档/编译扶手椅.
$(PROJECT_DIR)/AppName/External/Armchair/build/Release-iphoneos了Framework Search Paths.Build Phases我想我甚至试过了一个raindance,只是为了确定.它在归档时一直拒绝工作,但适用于正常构建和在设备上运行.
我已阅读并尝试过以下相关问题:
运行XCode 7.1.有关如何解决的任何建议?
我正在使用Swift 3,Xcode 8.1,CocoaPods 1.1.1.运行后pod update,每次我尝试使用Xcode的lldb控制台时 - 它都会输出错误.
例如,po self输出:
My App的共享Swift状态已经发生致命错误并被丢弃.
REPL定义和持久性名称/类型将丢失.
警告:模块My App中的 Swift错误.
调试器中将无法使用此模块的调试信息.
错误:在自动导入中:
无法从AST上下文获取模块" My_App ":
有谁知道如何解决这一问题?
我创建了一个名为 的框架Communication,框架容器内有一个module.modulemap文件。
模块.modulemap
framework module Communication {
umbrella header "Communication.h"
export *
module * { export * }
}
Run Code Online (Sandbox Code Playgroud)
我可以理解该模块需要伞头将其暴露给包含应用程序/目标。
但是其他两行代码的含义是什么。
export *
module * { export * }
Run Code Online (Sandbox Code Playgroud)
如果有人知道这条线出口的是什么?
在执行“清理构建文件夹”后尝试构建时,我收到“没有此类模块”错误。反复尝试构建最终没有错误。
重要提示:找不到的模块是使用 Swift Package Manager 的本地包,即不是从 git 下载的。我像这样指定这些依赖项:
.package(url: "file:../CoreGraphicsExtensions", from: "0.0.0")
Run Code Online (Sandbox Code Playgroud)
/UIKitExtensions/Package.swift正如我在此处列出的文件中所见:
// swift-tools-version: 5.6
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "UIKitExtensions",
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "UIKitExtensions",
targets: ["UIKitExtensions"]),
],
dependencies: [
// Dependencies declare other packages that this package depends …Run Code Online (Sandbox Code Playgroud) 我有一个 Xcode 工作区,其中包含一个带有 iOS 应用程序目标的项目和另一个带有 Framework 目标的项目。框架目标依赖于另一个框架,该框架以以下形式集成xcframework:
使用常规OtherFramework.framework将需要将其链接到MyFramework然后嵌入其中,MyApp即使MyApp不需要框架本身。但是,当与 集成时xcframework,此项目将无法构建并出现No such module 'OtherFramework'错误。
项目设置:
OtherFramework.xcframework从MyApp目标中删除修复了构建问题,但随后会导致library not loaded错误,因为应用程序中不存在框架。
演示项目在这里:https : //github.com/msaps/XCFramework-Link-Issue
您打算如何xcframework在应用程序中链接 an并在依赖框架中链接?
pyckamil刚刚发布了这篇文章,详细解释了这个问题:everything wrong with XCFrameworks。
事实证明,XcodeProcessXCFrameworkLibrary对.framework从.xcframework活动构建架构中提取正确信息的步骤进行了优化。这只会运行一次,这会导致尝试链接同一框架的其他目标出现问题。
此问题已在 Xcode 12.0 中解决
我的目标是创建一个包含Swift和Objective-C的iOS框架,我可以在我的开发项目中使用它.该框架的本质是框架本身正在发展.因此,每次使用此框架构建项目时都很重要(我将使用"使用"项目的框架称为项目缺乏更好的术语),我想确保框架本身重新构建.我希望这是一个框架,因为我有一些使用应用程序,我希望使用相同的框架代码.我已经为今天的大部分时间而苦苦挣扎,并浪费了大量时间在本来应该做的事情上,至少在我的想法中,更容易.所以,我会分享我的过程.
我的OneSignal模块有问题。它没有给我提供这样的模块OneSignal,而是由可可豆荚安装了它并use_frameworks!放在我的豆荚文件中。我真的不知道我还需要配置什么才能使其正常工作
我在这里尝试了其他解决方案,例如:
荚文件
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'Jaee2' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for Jaee2
pod 'OneSignal', '>= 2.5.2', '< 3.0'
end
target 'OneSignalNotificationServiceExtension' do
use_frameworks!
pod 'OneSignal', '>= 2.5.2', '< 3.0'
end
Run Code Online (Sandbox Code Playgroud) 我安装SDWebImage使用CocoaPods。
我的Podfile与在https://github.com/rs/SDWebImage中编写的一样
platform :ios, '8.0'
use_frameworks!
pod 'SDWebImage', '~>3.7'
Run Code Online (Sandbox Code Playgroud)
当我导入SDWebImage时说
没有这样的模块“ SDWebImage”
我的Xcode版本是:版本7.2.1
我使用安装CocoaPods $ sudo gem install cocoapods.
我有一个带有以下podfile的swift Xcode项目
platform :ios, '8.2'
use_frameworks!
target 'Clover' do
pod 'Alamofire', '~> 1.2'
pod 'SwiftyJSON', '~> 2.2'
pod 'ObjectMapper', '~> 0.12'
pod 'ImageLoader', '~> 0.3.0'
pod 'SVProgressHUD'
end
target 'CloverTests' do
end
Run Code Online (Sandbox Code Playgroud)
我运行pod安装后,似乎运行正常,没有错误消息,我有一个Pods生成的文件夹Pods.xcodeproject以及其他几个文件.
但是,在尝试编译项目时,我会发错误告诉我我的模块没有找到.错误消息No such module后跟模块名称.
然后,我尝试手动安装模块,并确认在手动安装后,每个模块的吊舱确实无法正常工作.
我搜索并尝试了几种解决方案如下:
我尝试在我的项目中使用RxSwift.我的podfile如下所示,↓
我收到了这个错误:
这是我的Link Binary With Libraries状态:
我试过修复它超过三个小时.但网站上的答案对我不起作用......
No such Module每次尝试build/build for testing在 iMac 上执行项目时,我都会收到,但是当我在 Macbook pro 中运行完全相同的项目(项目位于 iCloud 驱动器上)时,一切似乎都运行良好。
两台电脑都在 macOS 高山脉
两个 Xcode 都是 9.0.1
我的播客文件:
platform :ios, '10.0'
target '___' do
use_frameworks!
pod 'Socket.IO-Client-Swift', '~> 12.0.0'
pod 'SkyFloatingLabelTextField'
pod 'SwAlert'
pod 'RealmSwift'
pod 'ESTabBarController-swift'
end
Run Code Online (Sandbox Code Playgroud)
我试过了:
$(SRCROOT)通过进一步调查,我发现派生数据文件夹丢失了我的 pod 的所有 *.framework 文件,因此我从我的 macbook pro(正常工作)复制了派生数据文件夹并将其移动到 imac,这让我感到惊讶似乎已修复No such Module错误,但出现新错误missing required modules: 'SSCZLib', 'SSCommonCrypto'
我该如何解决?
PS:我正在使用该.xcworkspace文件
swift ×10
ios ×8
xcode ×7
cocoapods ×4
frameworks ×2
armchair ×1
catalyst ×1
compilation ×1
iphone ×1
lldb ×1
onesignal ×1
rx-swift ×1
sdwebimage ×1
swift2 ×1
swift3 ×1
swift4 ×1
watchkit ×1
xcframework ×1
xcode6 ×1
xcode7 ×1