Cocoapods“嵌入式pod框架”执行时间过长

5

环境:

  • 2013年底的Macbook Pro带Retina显示屏,8G内存,256GB固态硬盘。
  • Cocoapods 1.1.1
  • macOS Sierra 10.12.1
  • Xcode 8.0
  • iPhone 6s

已安装的Pods

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,但是没有帮助。我还尝试检查运行脚本的“仅在安装时运行”选项,但Xcode显示错误消息:App installation failed no code signature,因此这个解决方案对我也没有用......有人遇到同样的问题吗?谢谢。

我也遇到了同样的问题,但是在这里我需要花费10-15分钟来构建!问题的源头是cocoapods需要运行的shell脚本。我也需要帮助!:( - Alyson Freitas
1
@AlysonFreitas 试试这个:https://dev59.com/U1kS5IYBdhLWcg3wMTys#40353923 - Johnny
谢谢@Johnny,但我已经通过从我的podfile中删除'use_frameworks!'来解决了我的问题。 - Alyson Freitas
我遇到了相同的问题,将代码编译到设备上需要7-10分钟的时间,而在模拟器上的构建时间不到1分钟。 - Markus Rautopuro
最好在CocoaPods的GitHub存储库上创建问题或搜索解决方案。 - Bogdan
XCode 8.3为我解决了这个问题。 - Yannick Winters
2个回答

9
如果你在撰写本文时使用新版的Cocoapods - 1.2.1.beta.1,可以通过命令sudo pod install --pre进行安装。这样一来,你就可以使用超酷的COCOAPODS_PARALLEL_CODE_SIGN选项了。
这个选项可以让我在设备上构建Embed Pods Frameworks阶段的速度提升了75%。
请参考下图中的指示进行操作。

enter image description here


谢谢。第一次安装后,构建时间真的加快了。 - Emre Gürses

1
自从我安装了Xcode 8.1 beta并创建了一个新的Swift项目以来,我遇到了相同的问题。目前,我通过取消第一次勾选“仅在安装时运行脚本”(导致更长的构建时间)来“解决”此问题,对于每个后续的构建,我都能够勾选“仅在安装时运行脚本”并构建和运行应用程序。这有效,直到我执行“pod install”或“pod update”。我迫切地等待Xcode 8.1的官方更新,但也许这与CocoaPods本身有关?

是的,我之前尝试过你的解决方案,但那只是一个临时的解决办法,对于长期来说并不好。也许我们应该在Cocoapods的github上开一个问题。 - Johnny
1
嗨Johnny,我找到了我的问题的解决方案。这与我更新到OSX Sierra时生成的重复证书有关。请检查您的钥匙串 - https://dev59.com/hlkS5IYBdhLWcg3wY11z#40313078 - 此外,为了保险起见,我删除了所有开发人员证书。现在一切都恢复正常了。 - Yannick Winters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接