我的项目中安装了很多pod。自上次pod更新以来,一切正常。在上次pod更新后,我有28个构建错误,以&#34开头;无法构建模块xxx"。
这是我的podfile:
target 'projectXXX' do
use_frameworks!
pod 'Firebase'
pod 'Firebase/Database'
pod 'Firebase/Auth'
pod 'Firebase/Storage'
pod 'Firebase/Messaging'
pod 'Firebase/Crash'
pod 'TwitterKit'
pod 'Fabric'
pod 'Crashlytics' end
我的想法已经不多了。请问,任何其他解决方案? 非常感谢你
修改
我刚刚发现我的Pods.framework处于红色状态,如下面的截图所示。也许这有用吗?
答案 0 :(得分:0)
更新Xcode可以解决此问题。事实上,pod可能支持多个swift版本,因此pod应该能够指定一系列swift版本。
在更新之前检查是否未删除目标的Build Settings中的PODS_ROOT用户定义器值可能会意外。如果是这样尝试添加PODS_ROOT = $ {SRCROOT} / Pods
答案 1 :(得分:0)
您可能使用旧的pods存储库,并且在更新之后(几个月前),您需要指定要使用的pod存储库。我建议你需要旧的。看看我的pod文件如何查看旧项目:
var database = require('../database/postgresDB.js');
var pg = require('pg');
var html = {};
var connectionString = "postgres://dabladmin:dabldem@localhost:5432/dablpatient";
var client = new pg.Client(connectionString);
client.connect();
var query = client.query('SELECT * FROM htmlfiles WHERE id = 1', function(err, result){
console.log(JSON.stringify(result));
console.log(result.rows[0].htmlfile);
html = result.rows[0].htmlfile;
//return result.rows[0].htmlfile;
//console.dir(html);
});
module.exports = html;
答案 2 :(得分:0)
当您执行pod update
更新所有库时 swift4 上的大多数库仍然是 swift3
如果库在swift 4中,而你的项目在swift 3.2中则有两种可能性
1)您可以将项目迁移到swift4
<强>(或)强>
2)您需要回滚到支持swift 3.2的pod
如果在swift3中的swift4库中进行项目,则需要将这些库迁移到swift4中以解决当前问题
答案 3 :(得分:0)
可能导致问题的原因:
- 破坏Pods / API的变化
- 由于支持/不支持Swift版本而中断更改
如果您使用的是版本控制系统(Git等)。
检索旧版Podfile.lock
。
阅读该文件(它是一个文本文件,您可以在more somePath/Podfile.lock
中执行Terminal.app
),以及&#34;显式&#34;您的pod的版本应该在那里。
你应该得到类似的东西:
PODS:
- GSKStretchyHeaderView (1.0.3)
- Masonry (1.1.0)
...
PODFILE CHECKSUM: someCheckSum
COCOAPODS: 1.1.1
当你执行pod 'Firebase'
时,你没有指定版本,所以你应该得到最后一个版本。但如果某些版本不兼容,您可能会遇到问题。
因此,您可以添加'~> 1.0.3'
(例如,如果我以GSKStretchyHeaderView
为例)。有关如何使用它的更多信息here。
因此,当一切正常时,您应该重新使用旧版本。现在,您可以查看每个pod的文档(以及他们各自的podspec寻找&#34;隐藏&#34;依赖关系)并逐个更新它们,检查哪一个是罪魁祸首,然后可能会升起一个标志(一个问题)如果需要,他们的repo / git。
对于下一个开发者,我建议至少使用&#34;乐观运算符~>
&#34;设置&#34;版本&#34;。如果他们尊重版本规则(主要/次要/补丁),那么至少确定主要/次要,补丁不应该破坏任何东西,而是解决问题。未成年人可能会有突破性变化,而主要人员很有可能与以前的工作不兼容(不同的声明,类重命名等)。
如果您不使用像Git这样的版本控制系统,我强烈建议您立即行动。
但如果这是你的情况,你仍然有问题。记住pod update/install
之后一切正常的日期。然后,转到您的pod的每个Git,并阅读历史记录以查找该日期的版本,并在该pod的podfile中设置该版本。
答案 4 :(得分:0)
首先尝试完全移除可可豆荚
gem install cocoapods-deintegrate
pod deintegrate
gem install cocoapods-clean
pod clean
然后再次安装
pod setup
open -a Xcode Podfile
在Pod文件中添加如下
# Uncomment this line to define a global platform for your project
platform :ios, '10.0'
# Uncomment this line if you're using Swift
use_frameworks!
target 'TestProject' do
pod 'Firebase'
pod 'Firebase/Database'
pod 'Firebase/Auth'
pod 'Firebase/Storage'
pod 'Firebase/Messaging'
pod 'Firebase/Crash'
pod 'TwitterKit'
pod 'Fabric'
pod 'Crashlytics'
end
target 'ProjectTests' do
end
pod install