【问题标题】:Cocoapods `Embed pod frameworks` took long time to executeCocoapods `Embed pod frameworks` 需要很长时间才能执行
【发布时间】:2017-03-09 22:15:12
【问题描述】:

环境:

  • 配备 Retina 显示屏的 Macbook Pro 2013 年末配备 8G 内存、256GB ssd。
  • Cocoapods 1.1.1
  • macOS Sierra 10.12.1
  • Xcode 8.0
  • iPhone 6s

已安装的 Pod

inhibit_all_warnings!
use_frameworks!

def import_common_pods
    pod 'AFNetworking', '~> 2.6.3'
    pod 'GoogleAnalytics', '~> 3'
    pod 'SVProgressHUD', '~> 1.1.3'
    pod 'CocoaLumberjack', '~> 2.3.0'
    pod 'SVWebViewController', '~> 1.0'
    pod 'Crashlytics', '~> 3'
end

def import_project_common_pods
  pod 'FDFullscreenPopGesture', '1.1'
  pod 'ImagePicker', :git => 'git@github.com:hyperoslo/ImagePicker.git'
  pod 'Mixpanel', '~> 3.0.4'
  pod "YoutubePlayer-in-WKWebView", "~> 0.2.0"
  pod 'UICollectionViewLeftAlignedLayout'
  pod 'Firebase', '~> 3'
  pod 'Firebase/RemoteConfig', '~> 3'
  pod 'Firebase/AppIndexing', '~> 3'
  pod 'Firebase/Messaging', '~> 3'
  pod 'MWPhotoBrowser', '~> 2.1.2'
  pod 'AppsFlyerFramework'
  pod 'pop', '~> 1.0.9'
  pod 'UICountingLabel'
  pod 'Ono', '~> 1.2.2'
  pod 'DateTools'
  pod 'GoogleIDFASupport', '~> 3.14.0'
  pod 'M13ProgressSuite', '~> 1.2.8'
  pod 'YYText', '~> 1.0'
  pod 'mopub-ios-sdk', '~> 4'
  pod 'KVOController', '~> 1.1.0'
  pod 'Fabric', '~> 1.6'
  pod 'JazzHands', '~> 2.0.8'
  pod 'DeviceUtil'
  pod 'Flurry-iOS-SDK', '~> 7'
  pod 'FBSDKCoreKit', '~> 4'
  pod 'SDWebImage', '~> 3.8.1'
  pod 'TTTAttributedLabel', '~> 2.0.0'
  pod 'IQKeyboardManager', '~> 4.0'
  pod 'MZFormSheetController'
  pod 'Masonry', '~> 1.0.1'
  pod 'DZNEmptyDataSet', '~> 1.8.1'
  pod 'JSQSystemSoundPlayer', '~> 4'
  pod 'HMSegmentedControl', '~> 1.5.2'
  pod 'RNCryptor', '~> 3.0.1'
  pod 'FBSDKShareKit', '~> 4'
  pod 'FBSDKLoginKit', '~> 4'
  pod 'SZTextView'
  pod 'UIScrollView-InfiniteScroll', '~> 0.7.3'
  pod 'FLAnimatedImage', '~> 1.0'
  pod 'Socket.IO-Client-Swift', '~> 8.0.2'
end

target 'MyProject' do
    import_common_pods
    import_project_common_pods
end

有一个名为[CP] Copy Pods Resources的Cocoapods运行脚本

最近我发现这个运行脚本正在扼杀我的构建时间, 将应用程序构建到真实设备时,

完成整个运行脚本大约需要 1~2 分钟。

但是在模拟器上构建时,运行脚本在 10 秒内完成。

在构建到真实设备时通常可以正常工作,

但不知道为什么最近执行运行脚本的时间疯狂增加,我几乎可以喝杯咖啡!

我在 Stackoverflow 上找到了这篇文章:IOS Run custom shell script 'embed pods framework' file not found error,但它没有帮助。

还尝试检查运行脚本的Run Script Only When Installing。 但 Xcode 显示错误消息:

App installation failed no code signature

所以这个解决方案都不适合我......

有人遇到同样的问题吗? 谢谢

【问题讨论】:

  • 我也有同样的问题,但在这里我需要 10-15 分钟来构建!问题的根源是 cocoapods 需要运行的 shell 脚本我也需要帮助! :(
  • @AlysonFreitas 试试这个:stackoverflow.com/questions/40257968/…
  • 谢谢@Johnny,但我已经通过删除 'use_frameworks!' 解决了我的问题。来自我的 podfile
  • 我遇到了同样的问题,设备的构建时间为 7-10 分钟,而模拟器的构建时间不到 1 分钟。
  • 最好在 cocoapods 的 github repo 上创建问题或搜索解决方案。

标签: ios swift xcode cocoapods


【解决方案1】:

自从我安装了 Xcode 8.1 beta 并创建了一个新的 Swift 项目后,我遇到了同样的问题。目前,我通过第一次取消选中“仅在安装时运行脚本”(导致构建时间更长)来“修复”该问题,对于每个后续构建,我都可以使用复选框“仅在安装时运行脚本”来构建和运行应用程序“检查。这一直有效,直到我执行“pod install”或“pod update”。我急切地等待 Xcode 8.1 的官方更新,但也许它与 cocoapods 本身有关?

【讨论】:

  • 是的,我之前尝试过您的解决方案,但这是一个临时解决方案,长期来看仍然不好。也许我们应该在 Cocoapods github (y) 上打开一个问题
  • 嗨,Johnny,我找到了适合我的情况的解决方案。我与更新到 OSX Sierra 时生成的重复证书有关。请检查您的钥匙串 - stackoverflow.com/questions/39934254/… - 此外,我删除了所有开发人员证书,以防万一。现在一切都恢复正常了。
【解决方案2】:

如果您在撰写本文时使用新的 Cocoapods 测试版 - 1.2.1.beta.1,您可以安装 sudo pod install --pre,那么您可以使用超酷的 COCOAPODS_PARALLEL_CODE_SIGN 选项。

这使我在设备上的 Embed Pods Frameworks 构建阶段加快了 75%。

说明如下图。

【讨论】:

  • 谢谢。首次安装后构建时间确实加快了
猜你喜欢
  • 2012-12-03
  • 2011-03-14
  • 2021-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-06
相关资源
最近更新 更多