小编Yak*_* M.的帖子

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

我正在将我的 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
查看次数

改变UIButton的imageView的大小

我正在研究 的子类UIButton,让\xe2\x80\x99s 称之为MyButton。在大多数情况下,该子类的按钮将同时具有图像和标题。

\n\n

MyButton我在配置\xe2\x80\x99s大小时遇到​​问题imageView目标是限制图像的大小,以便调整较大图像的大小并适合 32 x 32 的正方形。

\n\n

出于测试目的,我添加了一个 128 x 128 像素的图像,并将imageView\xe2\x80\x99s设置backgroundColorgreen

\n\n

下面是我添加图像时按钮的样子。和imageView它的image尺寸均为 128 x 128 像素。

\n\n

带有原始尺寸图像的按钮

\n\n

在我覆盖MyButton\xe2\x80\x99sintrinsicContentSize并将CGSize(width: 160, height: 50)按钮 \xe2\x80\x99s imageView\xe2\x80\x99s设置contentMode为后.scaleAspectFitimageView调整大小,但仅在高度 \xe2\x80\x94it\xe2\x80\x99s 仍然是 128 像素宽,这会导致按钮\xe2\x80\x99s 标题被截断。

\n\n

按钮高度减小但宽度保持不变

\n\n

我\xe2\x80\x99已经看过很多关于如何image使用. 这不是我想要的,因为在所有这些文章中imageViewimageEdgeInsetsimageView保留其大小,只在图像周围添加填充。

\n\n

更改imageView\xe2\x80\x99s …

uibutton uikit ios swift

6
推荐指数
2
解决办法
8264
查看次数

无法识别的`swift_version`键

我无法将新版本的Pod推送到CocoaPods规格存储库。

运行会pod trunk push MyPod.podspec导致以下错误:

[!] The Pod Specification did not pass validation.
The following validation failed:
- Warnings: Unrecognized `swift_version` key.
Run Code Online (Sandbox Code Playgroud)

这是我的podspec:

Pod::Spec.new do |spec|

  spec.name = "MyPod"
  spec.version = "0.1.1"
  spec.summary = "[REDACTED]"
  spec.homepage = "[REDACTED]"
  spec.license = "Apache License, version 2"
  spec.author = "[REDACTED]"
  spec.social_media_url = "[REDACTED]"
  spec.module_name = "MyPod"
  spec.swift_version = "5.0"
  spec.platform = :ios, "8.0"
  spec.source = { :git => "https://github.com/[REDACTED].git", :tag => "v#{spec.version}" }
  spec.source_files = "MyPod/**/*.{h,m,swift}"

end
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

更新到Swift 5和Xcode …

cocoapods podspec swift

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