gpt4 book ai didi

ios - Interface Builder 在使用 Cocoapods 1.0 的框架项目上损坏

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:53 26 4
gpt4 key购买 nike

迁移到 Cocoapods 1.0 后,我使用自定义 IBDesignable 的 XIB 或 Storyboard 都无法在动态框架项目上正确呈现。它失败并出现如下错误:

file:///Users/xxxxx/workspace/FooFramework/FooFramework/View.xib: error: IB Designables: Failed to update auto layout status: dlopen(FooFramework.framework, 1): Library not loaded: @rpath/Alamofire.framework/Alamofire
Referenced from: FooFramework.framework
Reason: image not found

file:///Users/xxxxx/workspace/FooFramework/FooFramework/View.xib: error: IB Designables: Failed to render instance of CustomView: dlopen(FooFramework.framework, 1): Library not loaded: @rpath/Alamofire.framework/Alamofire
Referenced from: FooFramework.framework
Reason: image not found

重现步骤:

  1. 创建一个新的 iOS 框架项目。
  2. 创建并向 Podfile 文件添加任何依赖项。例如:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

target 'FooFramework' do
pod 'Alamofire'
end
  1. 执行 pod install 并打开 .xcworkspace 文件。
  2. 创建自定义 IBDesignable UIView 子类。例如:
import UIKit

@IBDesignable class CustomView: UIView {

override init(frame: CGRect) {
super.init(frame: frame)
layer.cornerRadius = 10
}

required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
layer.cornerRadius = 10
}
}
  1. 创建新的 XIB 或 Storyboard并添加自定义 View 。

此时 XCode 将重新编译代码,将无法呈现自定义 View 。给出上面提到的错误。


但是,项目编译正确,创建的 XIB 在执行时成功显示在模拟器中。它仅在 Interface Builder 上的渲染时间失败。

使用 Cocoapods 0.38 或可执行项目的相同过程按预期工作,没有出现错误并且自定义 View 正确呈现。

Podfile 中是否缺少任何配置参数?它是 Cocoapods 错误吗?有什么解决方法吗?


更新:

尝试使用不同的 Runpath Search PathsInstallation Directory 描述 herehere没有运气。

找到了使用 Cocoapods 0.39 的解决方法,仍然可以正常工作:

pod _0.39.0_ install

最佳答案

好像a bug in Cocoapods由于 Interface Builder 和 Playgrounds 不支持默认作用域。

找到变通方法直到它被修复:

  1. 使用 pod _0.39.0_ install 回到 0.39。
  2. 将以下代码添加到 Podfile 的末尾:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['CONFIGURATION_BUILD_DIR'] = '$PODS_CONFIGURATION_BUILD_DIR'
end
end
end

关于ios - Interface Builder 在使用 Cocoapods 1.0 的框架项目上损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38130371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com