标签: xcode-build-settings

Tl.xcodeproj 链接的框架 'Pods_Tl.framework' 缺少此目标所需的一个或多个架构:armv7

我刚刚从 AppStore 更新到 Xcode 12.0.1,打开了我的旧项目,构建后出现错误。

这是错误的图像:
在此处输入图片说明

当我研究 SO 以寻求解决方案时,一些回答提到了在构建设置中更改架构和仅更改构建活动架构设置。所以我做了,但这没有帮助。

这是构建设置架构部分的图片:
在此处输入图片说明

在此处输入图片说明

正如我提到的,我遇到了同样的问题,但他们没有帮助我上传了我使用的解决方案的屏幕截图。

xcode ios cocoapods xcode-build-settings xcode12

18
推荐指数
2
解决办法
6725
查看次数

“可执行路径是一个目录”Xcode 弹出错误

我有一个包含 3 个目标的 iOS Xcode 项目 - AppTarget、Lib1 和 Lib2。

等级制度:

  • AppTarget 依赖于 Lib1 和 Lib2。它没有代码(SceneDelegate、AppDelegate 等已移至 Lib1)。
  • Lib1 是一个静态库,包含 AppDelegate 和 SceneDelegate(我们不要深入了解为什么它们从 AppTarget 移到这里)。
  • Lib2 是静态库,依赖于 Lib1。它使用swift 扩展扩展了 SceneDelegate 类。

为了获得上述结构,我必须添加、删除文件引用并设置依赖项。

当我运行 AppTarget 时,构建成功后会出现以下弹出窗口, 在此输入图像描述

将上述错误粘贴为文本,

Details

Executable Path is a Directory
Domain: DVTMachOErrorDomain
Code: 5
Recovery Suggestion: /Users/<user_name>/Library/Developer/Xcode/DerivedData/<project_name>-bnytgzvocmpwyuajjxxjivpkymui/Build/Products/Debug-iphonesimulator/<project_name>.app is not a valid path to an executable file.
User Info: {
    DVTErrorCreationDateKey = "2022-11-03 08:04:49 +0000";
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会发生这种情况。我没有弄乱 Xcode->Preferences->Location 选项卡中的默认可执行路径。

有一个苹果论坛帖子描述了类似的错误(不一样)。解决方案是检查旧文件的引用,这些文件现在不存在。我已经验证了所有 3 个目标的目标 -> 构建阶段 -> …

xcode ios xcode-build-settings

17
推荐指数
2
解决办法
1万
查看次数

如何访问我的应用程序的派生数据文件夹本身?

我正在将我的 iOS 应用程序的 Firebase 依赖项从 CocoaPods 移动到 Swift Package Manager。

Firebase 的 Crashlytics 需要在构建应用程序时执行脚本(使用运行脚本构建阶段)。回到 CocoaPods 时代,我曾经按照Google 记录的方式调用脚本:"${PODS_ROOT}/FirebaseCrashlytics/run"

在我切换到 SPM 后,Firebase 文件不再位于${PODS_ROOT}. 我知道我需要的文件现在位于DerivedData文件夹中,特别是在~/Library/Developer/Xcode/DerivedData/MyApp-abcde/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run. 问题是,MyApp-abcde文件夹不容易被引用。

我发现的一篇 Medium 帖子建议使用${BUILD_DIR}build 变量(关于上面的示例,它将解析为<…>/MyApp-abcde/Build/Products),并调用dirname命令以向上移动目录层次结构。

此 hack 仅适用于运行该应用程序。当我尝试归档它时,${BUILD_DIR}解析到另一个路径,即<…>/MyApp-abcde/Build/Intermediates.noindex/ArchiveIntermediates/MyApp/BuildProductsPath. 我尝试了更多构建变量,例如${SYMROOT}, 代替${BUILD_DIR},但它们也会根据操作产生不同的路径。

那么,问题来了……

有没有办法使用 Xcode 的构建变量可靠地引用我的应用程序的派生数据文件夹的根目录(即~/Library/Developer/Xcode/DerivedData/MyApp-abcde

xcode ios firebase swift-package-manager xcode-build-settings

9
推荐指数
1
解决办法
956
查看次数

Xcode 构建问题无法找到自动链接框架

我已经为这个问题苦苦挣扎了好几天了:( 在模拟器中构建我的 iOS 应用程序时,它工作正常(调试构建),但是当我尝试构建到我的 iPhone 11(v 14.5.1)时,我的构建失败并出现以下错误:

ld: warning: Could not find or use auto-linked framework 'GoogleDataTransport'
ld: warning: Could not find or use auto-linked framework 'FirebaseRemoteConfig'
ld: warning: Could not find or use auto-linked framework 'FirebaseCore'
ld: warning: Could not find or use auto-linked framework 'Protobuf'
ld: warning: Could not find or use auto-linked framework 'FirebaseInstallations'
ld: warning: Could not find or use auto-linked framework 'GoogleToolboxForMac'
Undefined symbols for architecture arm64:
Run Code Online (Sandbox Code Playgroud)

我正在使用 Xcode 12.5。我尝试过各种建议,例如:

  • 添加LD_VERIFY_BITCODEUser-Definedin …

xcode build-settings ios swift xcode-build-settings

6
推荐指数
1
解决办法
4746
查看次数

应用程序的 xib/storyboard 如何渲染资产目录(这是一个 swift 包资源)中的图像?

关于

我们的资产目录已从应用程序目标移至 swift 包资源。此后,应用程序现有的故事板/xib 无法再渲染这些资产,除非通过Copy Bundle Resources阶段复制资产目录(这意味着编译的应用程序中有 2 个副本)。有没有更好的办法?

考虑资产目录迁移之前和之后的工作区。

迁移 Assets.xcasset 之前

- FooApp/
  - FooApp/
    - Resources/
      - Assets.xcasset // #1.1 Standard asset catalog in app target
      - Assets.swift // internal scope access to images in Assets.xcasset (swiftgen)
    - ViewController/
      - MyViewController.swift
      - MyViewController.storyboard // #1.2 Contains a view which renders "imageA" from Assets.xcasset
    - View/
      - MyView.xib // #1.3 xib renders "imageB" from Assets.xcasset
      - MyUIKitView.swift // Programmatically renders "imageC" from Assets.xcasset
      - MySwiftUIView.swift // …
Run Code Online (Sandbox Code Playgroud)

xcode asset-catalog swift swift-package-manager xcode-build-settings

6
推荐指数
0
解决办法
294
查看次数

Xcode 14 缓慢的增量构建

更新到 Xcode 14.0 后(14.0.1 和 14.1 仍然会发生),即使只更改单个属性,我也感到增量构建时间大幅减慢。对于我的项目,它是 3 倍,但阅读大约 10 倍或更多。

xcode ios swift xcode-build-settings

6
推荐指数
1
解决办法
5221
查看次数

为什么 Apple 不鼓励在框架标头中使用“@import”?

我有一个框架目标,其中包含 Objective-C 和 Swift 源文件的混合体。

我刚刚将项目的构建设置升级为 Xcode 14.3.1 推荐的设置。

Xcode 所做的更改之一是打开ENABLE_MODULE_VERIFIER我的框架目标的构建设置。

在此升级之后,我在框架的所有公共头文件中收到以下构建错误,其中包含语义导入(即表单的导入@import MODULE_NAME;):

不鼓励在框架标头中使用“@import”,包括此标头需要 -fmodules

我还在Xcode > 构建系统 > 识别和解决框架模块问题一文中看到了这个建议:

避免在公共和私有标头中使用语义导入语法。

Xcode 构建错误和文章都没有解释为什么我们应该避免在框架的公共和私有头文件中进行语义导入。

为什么我们应该避免在框架的公共和私有头文件中进行语义导入?

xcode frameworks ios-frameworks xcode-build-settings xcode14

3
推荐指数
1
解决办法
530
查看次数

Xcode SwiftUI 预览构建设置

我正在使用方案运行预构建脚本。我的脚本启用了从正在构建的目标提供构建设置的选项。当为 SwiftUI 预览构建项目时,也会执行此脚本。我需要知道这个脚本中正在运行的构建是常规构建还是预览构建。有没有办法做到这一点以及如何做到?

我尝试export在这两种情况下在脚本中运行,但似乎两种情况下所有环境变量都是相同的。

xcode xcodebuild swiftui xcode-build-settings swiftui-previews

2
推荐指数
1
解决办法
2153
查看次数