Git Product home page Git Product logo

cocoapods-binary-cache's People

Contributors

bangnguyengrab avatar christhuyenatgrab avatar kientux avatar orta avatar rogerluan avatar thomvis avatar tinder-maxwellelliott avatar trinhngocthuyen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cocoapods-binary-cache's Issues

Support serveral swift version

Hi, is there a plan to support binary archived from different swift version?

In some cases,like evolution of swift or framework upgrade, we need to develop with different version of pod binary in parallel. While the cache repo only keeps the latest version, this can make cache miss more often.
In some other case, if we need share binary between different projects,while pod version or swift version not always the same, how could we do with the pod binary storage in the logic of fetch and apply cache. Any advices?

A question from a newbie, wish it's not a too naive question. :)
Best thanks

Feature Request: remote branch name per configuration

I'd like to know if it's possible to set the branch in the configuration from the Podfile to get something like:

config_cocoapods_binary_cache(
  cache_repo: {
    "default" => {
      "remote" => "git@cache_repo.git",
      "remote_branch" => "all_pods",  <<<<<<<
      "local" => "~/.cocoapods-binary-cache/prebuilt-frameworks"
    }
  },
  prebuild_config: "Debug"
)

We have an app that dictates the dependencies of 9 other internal pods. I'd love to build once from the app and be able to do something like

cd app
pod binary prebuild --push app_version
cd ../my_sub_pod 
pod binary fetch app_version 
pod install # to cleanup all unused cached pods
pod binary push my_sub_pod # update all cached pods for a specific sdk

Would it be something possible?

Pod install not working properly on specific prebuilt pods

Checklist

Description

CocoaPods install is not copying the prebuilt pods into Pods folder, which means that the project is not able to find these libraries integrated in the project. 0.1.12 solves this but project pod install takes really long.

Summary

Version 0.1.12 solves this issue by enabling still_download_sources, but this is affecting the pods install time, it goes through every pod installing them and copying sources, like if prebuilt was there for nothing. Not sure if I am missing anything, but I had to keep the version of the library to 0.1.11 and keeping the pods on the sample project as non binary ones. So I would like to know what I can do to still download the sources to the Pods folder of those specific pods, but at the same time, do not do that for the rest of pods that do not need it to make it work.

Pods folder structure after pod install with 0.1.11
Pods folder structure after pod install with 0.1.11
Pods folder structure after pod install with 0.1.12
Pods folder structure after pod install with 0.1.12

config_cocoapods_binary_cache(
  cache_repo: {
    "default" => {
      "local" => "~/.test-pods-cache/prebuilt-frameworks"
    }
  },
  bitcode_enabled: true,
  device_build_enabled: true
)

Sample Project

Includes a Podfile with the pods I am not able to install and integrate on the project properly after being prebuilt locally. Problem gets solved if I increase version to 0.1.12, but pod install takes too long.
https://github.com/Oxthor/test-cocoapods-binary-cache

I have problem when change binary from 'true' to 'false'?

first, I use pod 'A', '~> 0.3.0', :binary => true, it's ok.
but when I change binary from 'true' to 'false', I run "bundle exec pod binary prebuild" or "pod install"
the Pods A folder has no source code.
if I remove the Pods/ before prebuild or install, it's fine.

Build frameworks for arm64 architecture as well ?

Checklist

Description

As of now when we use pod binary prebuild, it prebuilds the framework line below

xcodebuild -project /Users/XXX/projects/XXX/XXX/_Prebuild/Pods.xcodeproj -target IntuitAuthorization -configuration Debug -sdk iphonesimulator -destination "generic/platform=iOS Simulator" ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO build 2>&1

How to can we include ARCHS=x86_64, arm64? so that archiving works.

Motivation

[Details go here]

Summary

[Details go here]

A framework includes statically linked binaries cannot output binary well

I have a framework that contain statically linked binaries, after prebuild,it emit error like this:

[!] The 'Pods-PodBinCacheExample' target has transitive dependencies that include statically linked binaries: (/Users/xx/Desktop/CICD/cocoapods-binary-cache/PodBinaryCacheExample/Pods/xxx/Vendor/LAME/libmp3lame.a, /Users/xx/Desktop/CICD/cocoapods-binary-cache/PodBinaryCacheExample/Pods/xxx/Vendor/Speex/Speex.framework, and /Users/xx/Desktop/CICD/cocoapods-binary-cache/PodBinaryCacheExample/Pods/xxx/Vendor/OpusCodec.framework)

[CP] Embed Pods Frameworks fails when Archiving

Checklist

Issue Description

I'm attempting to use cocoapods-binary-cache in my project, but I'm having a problem archiving to app when using it.
The app builds and runs successfully, but archiving fails. There's an execution error for the [CP] Embed Pods Frameworks script. See bellow:

PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/spencerdiniz/Library/Developer/Xcode/DerivedData/Pixie-fyzwsjbzhfhiwrciwvfjfhfuzudr/Build/Intermediates.noindex/ArchiveIntermediates/Global\ TestFlight/IntermediateBuildFilesPath/Pixie.build/Debug-iphoneos/Pixsee\ Global.build/Script-E3CF3E6BE471CF8384D698BC.sh (in target 'Pixsee Global' from project 'Pixie')
    cd /Users/spencerdiniz/Work/Venturus/SourceCode/ios
    /bin/sh -c /Users/spencerdiniz/Library/Developer/Xcode/DerivedData/Pixie-fyzwsjbzhfhiwrciwvfjfhfuzudr/Build/Intermediates.noindex/ArchiveIntermediates/Global\\\ TestFlight/IntermediateBuildFilesPath/Pixie.build/Debug-iphoneos/Pixsee\\\ Global.build/Script-E3CF3E6BE471CF8384D698BC.sh

mkdir -p /Users/spencerdiniz/Library/Developer/Xcode/DerivedData/Pixie-fyzwsjbzhfhiwrciwvfjfhfuzudr/Build/Intermediates.noindex/ArchiveIntermediates/Global TestFlight/BuildProductsPath/Debug-iphoneos/Pixsee Global.app/Frameworks
Symlinked...
Command PhaseScriptExecution failed with a nonzero exit code

Any help would be greatly appreciated.

Environment

Plugin version

0.1.11

Installed CocoaPods plugins

Installed CocoaPods Plugins:
    - cocoapods-binary-cache : 0.1.11 (pre_install and post_install hooks)
    - cocoapods-deintegrate  : 1.0.4
    - cocoapods-plugins      : 1.0.0
    - cocoapods-search       : 1.0.0
    - cocoapods-stats        : 1.1.0 (post_install hook)
    - cocoapods-trunk        : 1.5.0
    - cocoapods-try          : 1.2.0

Multiple Commands Produce "Assets.car"

Checklist

Issue Description

Command executed

pod binary prebuild and pod install (redundant)

What went wrong?

Generated Xcode workspace does not build. Build log:

Showing All Messages

Prepare build
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description

Build system information
error: Multiple commands produce '/Users/vasld/Library/Developer/Xcode/DerivedData/FirebaseDemo-bjjtanfhcruvxjcxvtssaaumoyta/Build/Products/Debug-iphonesimulator/FirebaseDemo.app/Assets.car':
1) Target 'FirebaseDemo' (project 'FirebaseDemo') has compile command with input '/Users/vasld/Developer/FirebaseDemo/iOS/FirebaseDemo/Assets.xcassets'
2) That command depends on command in Target 'FirebaseDemo' (project 'FirebaseDemo'): script phase “[CP] Copy Pods Resources”

Build target FirebaseDemo of project FirebaseDemo with configuration Debug
warning: duplicate output file '/Users/vasld/Library/Developer/Xcode/DerivedData/FirebaseDemo-bjjtanfhcruvxjcxvtssaaumoyta/Build/Products/Debug-iphonesimulator/FirebaseDemo.app/Assets.car' on task: PhaseScriptExecution [CP] Copy Pods Resources /Users/vasld/Library/Developer/Xcode/DerivedData/FirebaseDemo-bjjtanfhcruvxjcxvtssaaumoyta/Build/Intermediates.noindex/FirebaseDemo.build/Debug-iphonesimulator/FirebaseDemo.build/Script-201C8E33CE01A30A778D8F7D.sh (in target 'FirebaseDemo' from project 'FirebaseDemo')

Build failed    11/15/20, 22:18    1.1 seconds

Podfile:

platform :ios, '13.0'
inhibit_all_warnings!
use_frameworks!

plugin 'cocoapods-binary'
keep_source_code_for_prebuilt_frameworks!
enable_bitcode_for_prebuilt_frameworks!
all_binary!

target 'FirebaseDemo' do
    inherit! :search_paths
    all_binary!

    pod 'Sentry', :git => 'https://github.com/getsentry/sentry-cocoa.git', :tag => '6.0.7'

    # Firebase
    pod 'Firebase/Analytics'
    pod 'Firebase/Auth'
    pod 'Firebase/DynamicLinks'
    pod 'Firebase/Firestore'
    pod 'FirebaseFirestoreSwift'
    pod 'Firebase/Functions'
    pod 'Firebase/Messaging'
    pod 'Firebase/Storage'
    pod 'InstantSearch', '~> 7'

    # Design
    pod 'MaterialComponents'
    pod 'MicrosoftFluentUI'
    
    pod 'SDWebImage'
    pod 'SDWebImagePhotosPlugin'

    pod 'AcknowList'
    pod 'CenteredCollectionView'
    pod 'Eureka'
    pod 'Haptica'
    pod 'ImageViewer'
    pod 'Lightbox'
    pod 'LocationPicker'
    pod 'MagazineLayout'
    pod 'MBProgressHUD', '~> 1.2.0'
    pod 'MessageKit'
    pod "MTBBarcodeScanner"
    pod 'SPAlert'
    pod 'SPPermissions/Calendar'
    pod 'SPPermissions/Camera'
    pod 'SPPermissions/Contacts'
    pod 'SPPermissions/Location'
    pod 'SPPermissions/Microphone'
    pod 'SPPermissions/Notification'
    pod 'SPPermissions/PhotoLibrary'
    pod 'SPPermissions/Reminders'
    pod 'SPPermissions/SpeechRecognizer'
    pod 'UPCarouselFlowLayout'
    pod 'WhatsNewKit'
end


post_install do |installer|
    # This is a workaround for CocoaPods issue 5334.
    # See discussions on: https://github.com/CocoaPods/CocoaPods/issues/5334#issuecomment-255831772
    installer.pods_project.build_configurations.each do |config|
      config.build_settings['LD_RUNPATH_SEARCH_PATHS'] = [
        '$(FRAMEWORK_SEARCH_PATHS)'
      ]
    end

    # Remove Xcode warnings on minimum deployment targets.
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        if Gem::Version.new('9.0') > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
        end
      end
    end
end

Stack trace

CocoaPods and CocoaPods Binary Cache related commands did not return error.

Environment

Plugin version

Gem: 3.0.3

*** LOCAL GEMS ***

activesupport (5.2.4.4)
addressable (2.7.0)
algoliasearch (1.27.5)
atomos (0.1.3)
bigdecimal (default: 1.4.1)
bundler (default: 1.17.2)
CFPropertyList (2.3.6)
claide (1.0.3)
cmath (default: 1.0.0)
cocoapods (1.10.0)
cocoapods-binary (0.4.4)
cocoapods-binary-cache (0.1.11)
cocoapods-core (1.10.0)
cocoapods-deintegrate (1.0.4)
cocoapods-downloader (1.4.0)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.0)
cocoapods-trunk (1.5.0)
cocoapods-try (1.2.0)
cocoapods-wholemodule (0.0.1)
colored2 (3.1.2)
concurrent-ruby (1.1.7)
csv (default: 3.0.9)
date (default: 2.0.0)
dbm (default: 1.0.0)
did_you_mean (1.3.0)
e2mmap (default: 0.1.0)
escape (0.0.4)
etc (default: 1.0.1)
ethon (0.12.0)
fcntl (default: 1.0.0)
ffi (1.13.1)
fiddle (default: 1.0.0)
fileutils (default: 1.1.0)
forwardable (default: 1.2.0)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
httpclient (2.8.3)
i18n (1.8.5)
io-console (default: 0.4.7)
ipaddr (default: 1.2.2)
irb (default: 1.0.0)
json (default: 2.1.0)
lazy_priority_queue (0.1.1)
libxml-ruby (3.1.0)
logger (default: 1.3.0)
matrix (default: 0.1.0)
mini_portile2 (2.4.0)
minitest (5.11.3)
molinillo (0.6.6)
mutex_m (default: 0.1.0)
nanaimo (0.3.0)
nap (1.1.0)
net-telnet (0.2.0)
netrc (0.11.0)
nokogiri (1.10.1)
openssl (default: 2.1.2)
ostruct (default: 0.1.0)
power_assert (1.1.3)
prime (default: 0.1.0)
psych (default: 3.1.0)
public_suffix (4.0.6)
rake (12.3.2)
rdoc (default: 6.1.0)
rexml (default: 3.1.9)
rgl (0.5.6)
rouge (2.0.7)
rss (default: 0.2.7)
ruby-macho (1.4.0)
scanf (default: 1.0.0)
sdbm (default: 1.0.0)
shell (default: 0.7)
sqlite3 (1.3.13)
stream (0.5.2)
stringio (default: 0.0.2)
strscan (default: 1.0.0)
sync (default: 0.5.0)
test-unit (3.2.9)
thread_safe (0.3.6)
thwait (default: 0.1.0)
tracer (default: 0.1.0)
typhoeus (1.4.0)
tzinfo (1.2.7)
webrick (default: 1.4.2)
xcodeproj (1.19.0)
xcpretty (0.3.0)
xmlrpc (0.3.0)
zlib (default: 1.0.0)

Installed CocoaPods plugins

Installed CocoaPods Plugins:
    - cocoapods-binary       : 0.4.4 (pre_install hook)
    - cocoapods-binary-cache : 0.1.11 (pre_install and post_install hooks)
    - cocoapods-deintegrate  : 1.0.4
    - cocoapods-plugins      : 1.0.0
    - cocoapods-search       : 1.0.0
    - cocoapods-trunk        : 1.5.0
    - cocoapods-try          : 1.2.0
    - cocoapods-wholemodule  : 0.0.1 (post_install hook)

Although installed many plugins are not used in this project. See Podfile above.

Notes

I'll try my best to remove proprietary code and upload a minimal reproduce project but it takes time.

There are no special scripts or build/compiler settings configured in the original Xcode project. It was created from Single View App template, then had CocoaPods installed before development. We had been using it without binary cache for a few months.

Script crashes/throws exception when there is no Podfile.lock in the directory

Hi,

lockfile.rb script crashes at line number 9 when I am trying to do bundle exec pod binary prebuild --push. After struggling for a long time, realized that it is failing because it is trying to get hash of lock file and lock file does not exist in the directory.

I am on 0.1.5 version of cocoapods-binary-cache.

Support Project & Cache Paths with Space

Please properly quote project and cache paths in git and xcodebuild commands to support project and cache paths with space and other special characters. It's 2020.

Currently, pod binary prebuild --push fails with "fatal: Too many arguments." when executing git if cache path contains space; and with "RuntimeError - Fail to build targets" when executing xcodebuild if Xcode project folder contains space.

I hope I'm not asking too much because interestingly alternatives to this cocoapods-binary-cache also suffer from this issue. I don't know if Ruby does it differently or is more complicated to deal with, but quoting paths is like rule No. 1 of programming.

I have problem when building

i enable cache and have this problem.
In logs i dont see information by error

INFO [2020-09-29 12:29:16.14]: ▸ error: exportArchive: IPA processing failed
INFO [2020-09-29 12:29:16.14]: ▸ Error Domain=IDEFoundationErrorDomain Code=1 "IPA processing failed" UserInfo={NSLocalizedDescription=IPA processing failed}
INFO [2020-09-29 12:29:16.14]: ▸ ** EXPORT FAILED

Unexpected 'Pods.xcodeproj' is kept shown after 'pod binary prebuild'

Checklist

Issue Description

Command executed

$ pod binary prebuild

What went wrong?

I recently migrated my project's cocoapods-binary from leavez/cocoapods-binary to this, and I found some weird issue after migration. After pod binary prebuild, Unexpected Pods.xcodeproj is seems to be created to my xcworkspace like below.

It says the path is _Prebuild/Pods.xcodeproj but there are only GeneratedFrameworks folder and Manifest.lock file 🤔 (The path of right Pods.xcodeproj is Pods/Pods.xcodeproj as I expected)

Screen Shot 2021-01-18 at 9 22 32 PM Screen Shot 2021-01-18 at 9 22 41 PM

How can I handle this issue not to create this unwanted Pods.xcodeproj? Thanks! :)

Environment

Plugin version

 0.1.11 

Installed CocoaPods plugins

 cocoapods 1.10.1 / cocoapods-binary-cache 

My problem returned to me

I rebuild cache and there is to set CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES=YES
But i have error

How is it fix?

<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:21:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMArray.h'
#import <Realm/RLMArray.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:22:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMDecimal128.h'
#import <Realm/RLMDecimal128.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:23:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMEmbeddedObject.h'
#import <Realm/RLMEmbeddedObject.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:24:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMMigration.h'
#import <Realm/RLMMigration.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:25:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMObject.h'
#import <Realm/RLMObject.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:26:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMObjectId.h'
#import <Realm/RLMObjectId.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:27:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMObjectSchema.h'
#import <Realm/RLMObjectSchema.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:28:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMPlatform.h'
#import <Realm/RLMPlatform.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:29:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMProperty.h'
#import <Realm/RLMProperty.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:30:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMProviderClient.h'
#import <Realm/RLMProviderClient.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:31:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMRealm+Sync.h'
#import <Realm/RLMRealm+Sync.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:32:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMRealm.h'
#import <Realm/RLMRealm.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:33:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMRealmConfiguration+Sync.h'
#import <Realm/RLMRealmConfiguration+Sync.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:34:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMRealmConfiguration.h'
#import <Realm/RLMRealmConfiguration.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:35:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMResults.h'
#import <Realm/RLMResults.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:36:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMSchema.h'
#import <Realm/RLMSchema.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:38:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMApp.h'
#import <Realm/RLMApp.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:39:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMCredentials.h'
#import <Realm/RLMCredentials.h>
        ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "Headers/Realm.h"
        ^
/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Realm/_Prebuilt/Realm.framework/Headers/Realm.h:40:9: error: include of non-modular header inside framework module 'Realm': '/Users/rprokofev/Works/Waves/waveswallet-ios_dex/Pods/Headers/Public/Realm/RLMNetworkTransport.h'
#import <Realm/RLMNetworkTransport.h>
        ^
<unknown>:0: error: too many errors emitted, stopping now
<unknown>:0: error: could not build Objective-C module 'Realm'

[Question] Pods Sources Workflow

I just have a basic workflow question 😊

Before using this plugin I commited the Pods folder to git.

  • This speeds up the pod install alot
  • It gives me the safety that the used sources don't change and that I have a copy of the Pods source
  • I already had this like "deleted git repos"

How do you handle this with this plugin? I still build from source in the CI, exactly as you have it in the example project.

What I currently do:
I copy the sources to a folder called PodSources on the CI I move to Pods. Then I call pod install.
However this is a bit complicated and error prone...

Generated frameworks are empty

Checklist

Issue Description

Command executed

I created a new repository for the cache, pushed one file so there is a master branch.
I modified my podfile (see the attached podfile).
Deleted all local folders regarding the plugin (_Prebuild, _Prebuild_delta, .cocoapods-binary-cache)
Called:
bundle exec pod binary prebuild
bundle exec pod binary push

I attached my podfile. I dont have a dev pod. I hope you can help, your plugin would be a real time safer :)

What went wrong?

xcodebuild seams to be called but all frameworks are empty. They are all 1kb big.
The framework zips are pushed to the repo, but are all empty.

Environment

Plugin version

The current latest commit:
bc9ebea

Installed CocoaPods plugins

Cocoapods Version: 1.10.0

Plugins:
- cocoapods-binary-cache : 0.1.11 (pre_install and post_install hooks)
- cocoapods-deintegrate : 1.0.4
- cocoapods-plugins : 1.0.0
- cocoapods-search : 1.0.0
- cocoapods-trunk : 1.5.0
- cocoapods-try : 1.2.0

Podfile.txt

Error with static framework using *.xib resources

When running with static frameworks that have resources declared by spec.resources = [...], it throws an error saying that the *.xib file does not exist.

This happens to me when using GTMOAuth2 as a static framework.

s.ios.resources = 'Source/Touch/*.xib'

The issue occurred in the integration step when we generate the project file.

Errno::ENOENT - No such file or directory @ realpath_rec - /Users/chris.thuyen/dev/pod-cache-demo/Pods/_Prebuild/GeneratedFrameworks/GTMOAuth2/GTMOAuth2.framework/GTMOAuth2ViewTouch.xib // <------------ HERE
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/project.rb:320:in `realpath'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/project.rb:320:in `realpath'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/project.rb:320:in `reference_for_path'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/project.rb:266:in `add_file_reference'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb:220:in `block (2 levels) in add_file_accessors_paths_to_pods_group'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb:219:in `each'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb:219:in `block in add_file_accessors_paths_to_pods_group'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb:210:in `each'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb:210:in `add_file_accessors_paths_to_pods_group'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb:126:in `block in add_resources'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/user_interface.rb:145:in `message'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb:125:in `add_resources'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb:49:in `install!'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/pods_project_generator.rb:101:in `block in install_file_references'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/user_interface.rb:145:in `message'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/pods_project_generator.rb:99:in `install_file_references'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer/xcode/single_pods_project_generator.rb:17:in `generate!'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer.rb:295:in `block in create_and_save_projects'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/user_interface.rb:64:in `section'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer.rb:290:in `create_and_save_projects'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer.rb:281:in `generate_pods_project'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/installer.rb:159:in `install!'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/command/install.rb:51:in `run'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/lib/cocoapods/command.rb:52:in `run'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/gems/cocoapods-1.7.5/bin/pod:55:in `<top (required)>'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/bin/pod:23:in `load'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/bin/pod:23:in `<main>'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/bin/ruby_executable_hooks:24:in `eval'
/Users/chris.thuyen/bundle_dir/ruby/2.6.0/bin/ruby_executable_hooks:24:in `<main>'

After a quick investigation, I figured out that after compiling the framework, the *.xib resource files were copied to the framework as *.nib files.

Unknown command: `binary-cache`

This step is failing for me, although I installed the gem.
Any idea why ?

pod binary-cache --cmd=prebuild
[!] Unknown command: binary-cache

Error with arm64

[x] /Users/lenar/Documents/02_Work/01_iOSNative/DevPods/MKFoundation/Pods/_Prebuild/MovikaSDK_Dev/MovikaSDK/interactive/BaseInteractiveView.swift:10:8: could not find module 'RxSwift' for target 'arm64-apple-ios'; found: armv7-apple-ios, arm, armv7

import RxSwift
^
[x] /Users/lenar/Documents/02_Work/01_iOSNative/DevPods/MKFoundation/Pods/_Prebuild/MovikaSDK_Dev/MovikaSDK/interactive/BaseInteractiveView.swift:10:8: could not find module 'RxSwift' for target 'arm64-apple-ios'; found: armv7-apple-ios, arm, armv7

import RxSwift

Command

/Users/lenar/.rbenv/versions/2.7.2/bin/pod binary prebuild --no-fetch

Report

  • What did you do?

  • What did you expect to happen?

  • What happened instead?

Stack

   CocoaPods : 1.10.0
        Ruby : ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
    RubyGems : 3.1.4
        Host : Mac OS X 10.15.7 (19H2)
       Xcode : 12.1 (12A7403)
         Git : git version 2.18.0
Ruby lib dir : /Users/lenar/.rbenv/versions/2.7.2/lib
Repositories : bitbucket-interactiveplatform-ios.sdk.movika.com - git - https://bitbucket.org/interactiveplatform/ios.sdk.movika.com.git @ f6ab14c7d4582d433a35e31e326958d5f77dc0fa

               bitbucket-interactiveplatform-ios.sdk.player.interactive.film - git - https://bitbucket.org/interactiveplatform/ios.sdk.player.interactive.film.git @ 8eddfd4cef3f35769395e7095c2323377b85bfe0

               master - git - https://github.com/CocoaPods/Specs.git @ 6b18aa56727760e998268032c3353ba9b7c5b6cf

               MovikaSDK_Dev - git - https://[email protected]/interactiveplatform/ios.sdk.player.interactive.film.git @ a82f0ce82d4e46f10fe95aa7a507dc5208e5c94f

               trunk - CDN - https://cdn.cocoapods.org/

Plugins

cocoapods-binary-cache : 0.1.10
cocoapods-deintegrate  : 1.0.4
cocoapods-plugins      : 1.0.0
cocoapods-search       : 1.0.0
cocoapods-trunk        : 1.5.0
cocoapods-try          : 1.2.0

Podfile

platform :ios, '13.0'

plugin 'cocoapods-binary-cache'

config_cocoapods_binary_cache(
	cache_repo: {
	  "default" => {
	    "remote" => "https://[email protected]/lenar-gilyazov/binarypods.git",
	    "local" => "~/.cocoapods-binary-cache/MKFoundation-libs"
	  }
	},
	device_build_enabled: true,
	prebuild_sandbox_path: "Pods/_Prebuild",
	excluded_pods: ["R.swift", "R.swift.Library"],
	still_download_sources: true
)

def binary_pod(name, *args)
  pod name, args, :binary => true
end

target 'MKFoundation' do
  
  use_frameworks!
  inhibit_all_warnings!

  binary_pod 'Alamofire'
  pod 'R.swift'
  binary_pod 'RealmSwift'
  binary_pod 'RxSwift'
  binary_pod 'RxCocoa'
  binary_pod 'RxDataSources'
  binary_pod 'KeychainSwift'
  binary_pod 'SwiftDate'
  binary_pod 'MaterialShowcase'
  pod 'MovikaSDK_Dev', :git => 'https://bitbucket.org/interactiveplatform/ios.sdk.player.interactive.film.git', :branch => 'dev', :binary => true

  target 'MKFoundationTests' do
    pod 'RxTest'
    pod 'RxBlocking'
  end

end

Error

RuntimeError - Fail to build targets: ["Alamofire", "Differentiator", "KeychainSwift", "MaterialShowcase", "MovikaSDK_Dev", "Realm", "RealmSwift", "RxCocoa", "RxDataSources", "RxRelay", "RxSwift", "SnapKit", "SwiftDate"]
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/pod-rome/xcodebuild_raw.rb:44:in `xcodebuild'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/pod-rome/xcodebuild_command.rb:65:in `build_for_sdk'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/pod-rome/xcodebuild_command.rb:23:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/pod-binary/helper/build.rb:14:in `build'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/pod-binary/prebuild.rb:46:in `prebuild_frameworks!'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/pod-binary/prebuild.rb:155:in `block in <class:PrebuildInstaller>'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:612:in `perform_post_install_actions'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:169:in `install!'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/hooks/pre_install.rb:102:in `block in prebuild!'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:118:in `title'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/hooks/pre_install.rb:100:in `prebuild!'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/hooks/pre_install.rb:25:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/pod-binary/prebuild_hook.rb:5:in `block in <top (required)>'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/hooks_manager.rb:124:in `block (3 levels) in run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:145:in `message'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/hooks_manager.rb:116:in `block (2 levels) in run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/hooks_manager.rb:115:in `each'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/hooks_manager.rb:115:in `block in run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:145:in `message'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/hooks_manager.rb:114:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:604:in `run_plugins_pre_install_hooks'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:224:in `block in prepare'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:145:in `message'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:220:in `prepare'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:159:in `install!'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/command/executor/prebuilder.rb:31:in `block in prebuild'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/ui.rb:5:in `block in step'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:64:in `section'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/cocoapods-binary-cache/ui.rb:5:in `step'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/command/executor/prebuilder.rb:29:in `prebuild'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/command/executor/prebuilder.rb:18:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.10/lib/command/prebuild.rb:42:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/command.rb:52:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/bin/pod:55:in `<top (required)>'
/Users/lenar/.rbenv/versions/2.7.2/bin/pod:23:in `load'
/Users/lenar/.rbenv/versions/2.7.2/bin/pod:23:in `<main>'

error: ad-hoc export app

Building is okay, but export ipa   give me an error :(
image
Because all builded frameworks includes this flag.

My Podfile:

platform :ios, '11.0'

def is_pod_binary_cache_enabled
  ENV['IS_POD_BINARY_CACHE_ENABLED'] == 'true'
end

if is_pod_binary_cache_enabled
  plugin "cocoapods-binary-cache"
  config_cocoapods_binary_cache(
    cache_repo: {
      "default" => {
        "remote" => "[email protected]:somegit.git",
        "local" => "~/.cocoapods-binary-cache/some-release-config"
      }
    },
    
    prebuild_config: "Release",
    device_build_enabled: true,
    bitcode_enabled: true,
    excluded_pods: ["Capacitor"],
    dev_pods_enabled: true
  )
end

use_frameworks!

# workaround to avoid Xcode 10 caching of Pods that requires
# Product -> Clean Build Folder after new Cordova plugins installed
# Requires CocoaPods 1.6 or newer
install! 'cocoapods', :disable_input_output_paths => true

def capacitor_pods
  # Automatic Capacitor Pod dependencies, do not delete
  pod 'Capacitor', :path => '../../node_modules/@capacitor/ios', :binary => false
  pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios', :binary => true
  pod 'CapacitorCommunityFirebaseAnalytics', :path => '../../node_modules/@capacitor-community/firebase-analytics', :binary => true
  pod 'CordovaPluginsStatic', :path => '../capacitor-cordova-ios-plugins', :binary => true
  # Do not delete
end

target 'App' do
  capacitor_pods
  # Add your Pods here
  pod 'Firebase/Core', :binary => true
  pod 'Firebase/Auth', :binary => true
  pod 'Firebase/Analytics', :binary => true
  pod 'Firebase/Firestore', :binary => true
end


post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' # Only work from Xcode 11
    end
  end
end

Could not find gem

What is Problem ? 🔍

  • I added one line in my Gemfile
gem 'coccoapods-binary-cache', :git => 'https://github.com/grab/cocoapods-binary-cache.git', :tag => '0.0.3'
  • try command bundle install

  • Result

Fetching https://github.com/grab/cocoapods-binary-cache.git
Fetching gem metadata from https://rubygems.org/........
Could not find gem 'coccoapods-binary-cache' in https://github.com/grab/cocoapods-binary-cache.git (at 0.0.3@e0782bc).
The source does not contain any versions of 'coccoapods-binary-cache'

My Environment 💻

  • version: ruby (2.6.4)
  • version: cocoapods (1.8.4)
  • version : python (3.7.7)

[Idea] Centralized Cache

I really love your plugin and its a massive time saver 😊

I just want to share my basic idea which would lead to a massive change in the architecture and workflow of the plugin.
On the other hand I could bring use a centralized cache :)

I would be nice I you could share your thoughts on this.

Workaround for Realm

I had some trouble with Realm (#57).
While I was not able to resolve these issues I reworked them by creating a "binary pod" of Realm.

I prebuilt it myself (which is pretty easy but a manual task...) and put it on a interal git repo, than I created a Podspec which uses the internal podspec repo together with the offical cdn repo.
By this the official Realm/RealmSwift Pod is overruled with my internal binary version.
The clou:
I also use RxRealm, which depends on RealmSwift. By overriding the dependency with a binary version, the pod resolution still works.
This "workaround" made me thinking, if we could create a more global, not project specific binary cache. The global cache could work more like a maven repository.

A few preconditions for this, for making the cache relatively stable:

  • host xcframeworks
  • build all archs
  • build with library evolution support

I've built my binary repo with this basic scheme, mirroring the podspec repo:
PodName/Version/PodName.xcframework.zip

i.e:
Realm/10.5.1/Realm.xcframeworks.zip
RealmSwift/10.5.1/RealmSwift.xcframework.zip

I created Podspecs like these:

Pod::Spec.new do |s|
  s.name         = 'Realm'
  s.version      = '10.5.1'
 ....
  s.platform = :ios, '11.0'
  s.source = { git: 'binary_pods.git' }
  s.ios.vendored_frameworks = "#{s.name}/#{s.version}/#{s.name}.xcframework"
end

In the Podfile there are two ways to use this:
pod 'Realm', '10.5.1', source: 'cocoapods_binary_specs.git'
or

source: 'cocoapods_binary_specs.git'
pod 'Realm', '10.5.1'

However this will trigger a warning, that i.e. the Realm pod is found multiple sources. This can be silenced with by setting warn_for_multiple_pod_sources.

This is just a basic example, but it shows how we could basicly overwrite any source code dependency with a binary verison.

Basic proposal

Currently we have a binary cache per project, which cannot be versioned.
Cached artifacts, cannot be shared.
We have nothing like a "maven repository".
I want to keep the changes to the podfile minimal by only adding a new source (no explicit pod_binary).

pod binary prebuild --push behavior:
option 1, prebuild all pods:

  • builds all dependencies as xcframeworks for a specific Podfile
  • searches all pods and find dependencies
  • tries to build every pod

option 2, prebuild a single pod:
pod binary prebuild --push Resolver:1.4.0
find a pod and build that exact version.
also build all dependencies of the pod.

  • binaries are added versioned (like Realm/10.5.1/Realm.xcframeworks.zip) to the central cache
  • create binary Podspecs and push them to cocoapods_binary_specs.git
  • add transitive dependencies to the generated binary Podspecs

Usage

  • Podfile has an additional source i.e. source: 'cocoapods_binary_specs.git'
  • now "binary_pod" function would be used explicitly
  • cocoapods_binary_pods would not integrate the xcframework itself, since the specs from cocoapods_binary_specs are used

App doesn't build/compile after `bundle exec pod install`

Hi,

I have a dependency on React Native in my project. Here is my snipped of pods in my Podfile.

plugin 'cocoapods-binary-cache'
platform :ios, '10.0'
install! 'cocoapods'

use_frameworks!

source 'https://cdn.cocoapods.org/'
source 'https://github.com/PhonePe/CustomPods.git'

config_cocoapods_binary_cache(
  prebuild_config: "Debug"
)

target 'PhonePe' do
pod 'React', '0.59.9.PhonePe', :subspecs => [
'Core',
'CxxBridge',
'DevSupport',
'RCTText',
'RCTImage',
'RCTNetwork',
'RCTWebSocket',
'RCTLinkingIOS',
'RCTAnimation',
'RCTGeolocation',
'RCTActionSheet'
], :inhibit_warnings => true, :binary => true

pod 'RNSVG', '9.5.1', :inhibit_warnings => true, :binary => true
pod 'react-native-maps', '0.20.0', :inhibit_warnings => true, :binary => true
pod 'SentryReactNative', '0.39.0', :inhibit_warnings => true, :binary => true
pod 'GoogleMaps', :inhibit_warnings => true, :binary => true

end

With this Podfile, If I run bundle exec pod binary prebuild --push, it prebuilds all these frameworks and pushes it to my remote repository as well. But when I try to build the app, compilation fails saying "doubleconversion/doubleconversion.h" file not found. Thing is, React uses folly and DoubleConversion frameworks as a dependency. This error triggers especially from folly. I even see folly.framework getting created once the prebuild command succeeds.

But If I run the same prebuild command with extra addition in the configuration prebuild_all_pods: "true", it prebuilds successfully + uploads it to the remote repository as well. Even when I compile the code, it builds successfully and I am able to run the app successfully.

config_cocoapods_binary_cache(
    prebuild_config: "Debug",
    prebuild_all_pods: "true"
)

But the same problem arises If I run bundle exec pod install right after prebuild command. It ends up showing the same build error as state above.

This is what I have in my gem file as of (4th Sept 2020, 11:30pm IST)

source "https://rubygems.org"

gem "fastlane"
gem 'cocoapods', "= 1.9.3"
gem "cocoapods-binary-cache", :git => "https://github.com/grab/cocoapods-binary-cache.git", :branch => "master"

Switch from binary mode to code mode, it doesn't work well

Hi, when I want debug and switch binary mode to code mode, I tried set :binary=>false or remove plugin 'cocoapods-binary-cache', only Development Pods works. But RxSwift or Alamofire always framework. Now I only use rm -rf Pods can go well, it's my config issue?

About open source the example's cache repo

Could u please open source the 'https://github.com/bigbangvn/demo-pod-binary-cache-prebuilt-libs.git' repo

I fetch some trouble when using this plugin, I don't now what happened when logging 'fatal: not a git repository (or any of the parent directories): .git'

``shell
bundle exec pod binary-cache --cmd=prebuild -verbose master!?
BinaryCache run: prebuild
[22:23:51] [INFO] 🚀 Start func: prebuild_if_needed
[22:23:51] [INFO] 🚀 Start func: fetch_and_apply_cache
[22:23:51] [INFO] 🚀 Start func: fetch_cache
[22:23:51] [INFO] Step started: fetch_prebuild_libs
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
[22:23:51] [INFO] Step finished: fetch_prebuild_libs. Time spent: 0.0 s ~ 0.0 m
[22:23:51] [INFO] 🚀 Start func: unzip_cache
[22:23:51] [INFO] Step started: unzip_prebuild_libs
[22:23:51] [INFO] Step finished: unzip_prebuild_libs. Time spent: 0.0 s ~ 0.0 m
🚀 Prebuild frameworks
control features
make another custom sandbox
get the podfile for prebuild
No pod binary lock file.
Vendor pod cache miss: []
=> clients: []
Dev pod cache-miss: []
=> clients []
Cache miss libs: 0
[]
clean_delta_file: /Users/vincentttli/Workspace/Tencent/QQSports_git/QQSports_2/Scripts/_QSNetworking/QSNetworking-Example/Pods/_Prebuild/../_Prebuild_delta/changes.txt
cache hit

🤖 Pod Install
Analyzing dependencies
Downloading dependencies
Generating Pods project
Integrating client project
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
[22:23:53] [INFO] No change in prebuilt frameworks
``

Can't push to repo with Push command

When I write

bundle exec pod binary push

it looks for a branch called Push to Fetch from

shouldn't it Push the pods to it?

I use this command in the project's folder not the cache path

thanks in advance

Unable to get things working

Hello.

I am trying to adopt your plugin to my project and I've faced numerous issues.

At first, I was unable to install the plugin due to various ruby issues. Did manage to overcome those using info from here and here

Then I've tried configuring the Podfile. And the first couple lines of code given in the readme got me totally confused.

The below snippet is given as an example

config_cocoapods_binary_cache(
  cache_repo: {
    "default" => {
      "remote" => "git@cache_repo.git",
      "local" => "~/.cocoapods-binary-cache/prebuilt-frameworks-debug-config"
    },
    "test" => {
      "remote" => "git@another_cache_repo.git",
      "local" => "~/.cocoapods-binary-cache/prebuilt-frameworks-test-config"
    }
  }
)

My problem is that I have no idea of what default or test would mean and what should I add there.

OK then. So I decided to check out the example podfile. I've copy-pasted the provided config_cocoapods_binary_cache() with my own remote and local repos addresses. But when I try

bundle exec pod install

I get an error:

[!] Invalid 'Podfile' file: undefined method 'config_cocoapods_binary_cache' for #<Pod::Podfile:0x00007ffde3c12a80>.

 #  from /<#path_to_my_roject#>/Podfile:11
 #  -------------------------------------------
 #    plugin 'cocoapods-binary-cache'
 >    config_cocoapods_binary_cache(
 #      cache_repo: {
 #  -------------------------------------------

The same goes for another command provided in the readme:

CENSORED % bundle exec pod binary fetch
[!] Unknown command: `binary`
Did you mean: try?

Would you please be so kind to try to investigate into what am I doing wrong? Thanks

Changing pod version doesn't update the binary

When updating a pod version and running pod binary-cache --cmd=prebuild the binary is not updated (I observed this behavior with cocoapods-binary plugin, but since you're listening to its hooks and manipulating the files I thought you could address this)

Steps to reproduce:

  1. Have a basic podfile with pod 'MBProgressHUD', '1.1.0', :binary => true and run pod binary-cache --cmd=prebuild
  2. Bump the version to 1.2.0 and run the above command again (also observed for downgrading the version)
  3. The manifest gets updated, but not binary

[Question] S3 support

Checklist

Description

Motivation

More choice for users

Summary

More than a feature request, this is a question. I noticed than in your documentation on how the system works you mention that caches can be stored in git but also in S3: https://github.com/grab/cocoapods-binary-cache/blob/master/docs/how_it_works.md . I could not find any other reference in all the docs regarding S3. Is it actually supported at all? Is there any way we can use S3 instead of a git remote repository?

RuntimeError - Fail to build targets: ["RealmSwift", "RxRealm"]

I have a project that uses Objc & Swift. I'm trying to use this plugin to and it took me a while to realize that it only failed when I have RealmSwift & RxRealm in podfile.

Report

  • What did you do?

I ran pod binary prebuild

  • What did you expect to happen?

To successfully prebuild all the pods and able to build my own project

  • What happened instead?

It failed every time I have RealmSwift & RxRealm in my podfile.

Command

/Users/username/.rvm/gems/ruby-2.6.3/bin/pod binary prebuild

Feature Request: Versioned Cache

Checklist

Description

Motivation

Our team follows Git Flow practice and maintains multiple branches referring to different versions of a Pod. Especially when we decides to upgrade a Pod's major version, it takes several code reviews and assessment rounds to pin a single version across the entire repo.

Since the remote repo managed by cocoapods-binary-cache is not versioned, only a few branches in our project benefit from using a shared cache. More importantly, when someone unaware of the version change accidentally pushes to remote cache, the fun game of swapping cached version begins.

Summary

A preliminary proposal is to put cached zips in subfolders whose name matches the lock hash in Podfile.lock and Manifest.lock.

For example:

GeneratedFrameworks/Protobuf/2ccbaf193f6c65adc67745453ca0c13234c32796/Protobuf.zip

Or simply:

GeneratedFrameworks/Protobuf/2ccbaf193f6c65adc67745453ca0c13234c32796.zip

Versioned Manifest.locks can also be cached this way. Though I have no idea why this file is required as the remote cache should not care about Pods not hosted there.

Every time my cache rebuild

My flow in CI

  1. Fetch from cache repo
  2. Prebuild binary pods
  3. Push to repository.
    Every time my cache rebuild. How fix it?

Local cache directory?

Hi, great plugin! I have been using cocoapods-binary but just discovered this and it looks much more active.

I have a quick question. Our project currently uses git-lfs to store the large files/frameworks in our project.
Is it at all possible configure cocoapods-binary-cache to continue to use a local directory inside our repo instead of the separate git repo? Or even jut continue to use the _Prebuild directory? That way we do not have to fetch. We would like our project to continue to be able to be "cloned and run" without needing further steps, network, and user permissions to another repo.

I was hoping to maintain our workflow of just pre-building the desired pods and storing them locally as git-lfs automatically handles and uploads these large files.

I tried configuring the cache_repo config hash to just have a local key and not remote however did not have much luck.

Thanks,
Daniel

Support Apple Silicon

Checklist

Issue Description

This plugin builds pods into fat .framework binary which is not supported anymore on Xcode 12 (and Apple Silicon when build on simulator). Is there anyway to build xcframework instead?

Module 'NVActivityIndicatorView' was created for incompatible target arm64-apple-ios9.0:
.../Pods/NVActivityIndicatorView/_Prebuilt/NVActivityIndicatorView.framework/Modules/NVActivityIndicatorView.swiftmodule/arm64.swiftmodule

Command executed

$ bundle exec pod binary prebuild

Configuration

config_cocoapods_binary_cache(
  cache_repo: {
    "default" => {
      "local" => "~/.cocoapods-binary-cache/prebuilt-frameworks"
    }
  },
  prebuild_config: "Debug",
  device_build_enabled: true
)

I only succeeded for the first time, when I add more pods in my project, it can not prebuild frameworks

Checklist

Issue Description

Command executed

[Details go here]

What went wrong?

Prebuild frameworks (total 0): []
No changes in prebuild

but i add another pod

Stack trace

[Details go here]

Environment

Plugin version

[Details go here]

Installed CocoaPods plugins

[Details go here]

Prebuild step fails

I'm following the new changes since last week and ran into some issues. (also, btw, in the Readme, installing via gemfile using tag 1.0.0 fails, it needs to be 1.0.1)

  1. I installed the gem via bundle install, all OK.
  2. I created a repo in my github, empty, called prebuild_frameworks, cloned if locally in the folder shown below.
  3. I created the PodBinaryCacheConfig.json file:

{
"cache_repo": "https://github.com/XXX/prebuild_frameworks.git",
"cache_path": "~/Documents/Projects/iOS/prebuild_frameworks/"
}

  1. Updated the Podfile with:

plugin "cocoapods-binary-cache"

config_cocoapods_binary_cache(
prebuild_config: "Debug",
dev_pods_enabled: false
)

  1. So now I should start prebuilding my frameworks ? I just started with one of them, for testing purposes:
    pod 'KYDrawerController', :binary => true

  2. run bundle exec pod binary prebuild. This one fails:

❯❯❯ Step: Fetching cache
Fetching cache from https://github.com/XXX/prebuild_frameworks.git (branch: master)
Cloning into '/Users/XXX/Documents/Projects/iOS/prebuilt_frameworks'...
fatal: Remote branch master not found in upstream origin
Unzipping cache: /Users/XXX/Documents/Projects/iOS/prebuild_frameworks -> Pods/_Prebuild
....
...
....
Errno::ENOENT - No such file or directory @ rb_sysopen - /Users/XXX/Documents/Projects/iOS/prebuilt_frameworks/Manifest.lock

Am I doing something wrong ?
The flow seems straighforward: run prebuild... run push ... then on another machine, run fetch and pod install and that's it.

Error when using *.xcdatamodeld resources

When the Development Pods that have resources declared by spec.resources = [...], it throws an error saying that the *. xcdatamodeld file does not exist.

Our Development Pods podspec file.

s.resources = 'Code/**/*.{xcdatamodeld}'

The issue occurred in the integration step when we generate the project file.

Errno::ENOENT - No such file or directory @ realpath_rec - /Users/dj/MyTestProject/code/ios/_Prebuild/GeneratedFrameworks/Test/Test.framework/Test.xcdatamodeld
....

I found when installing, it will overwrite original *. xcdatamodeld file, and make a soft link to the GenerateFramework/Test/Test.xcdatamodeld, but the real xcdatamodeld file is Test.framework/Test.momd

Fails if there're no dev pods

If you remove any of these keys: devpod_cache_repo / devpod_cache_repo / devpod_prebuild_output then prebuild_config.py fails because we're getting the keys with config['devpod_cache_path'] instead of config.get('devpod_cache_path')

Also, if your Podfile doesn't have a dev pod then this fails: prebuild_cache.rb:89:in get_dev_pods'`

arm64 Support Question

Hello!

I am loving this gem and it shaved a lot of time when building my app on the simulator. However when I switched to my real device when building I got warnings that the pods in the project only support x86_64 architecture as seen in the image below:

Screen Shot 2020-08-28 at 2 35 10 PM

I tried playing with the Podfile configurations provided in the "README.md" but with no luck. Also running lipo command on the .framework files only shows x86_64 for the pods installed.

This is the Xcode Build Command:

Screen Shot 2020-08-28 at 2 33 38 PM

Thanks!

Unable to push to remote repo

Thanks for creating and maintaining this plugin! Just discovered it and attempting to use it in my project.

Am facing an issue where I am unable to push to the remote repo. Followed the README steps to integrate this plugin, and was able to run and compile the app via bundle exec pod install. However, upon successful compilation, I tried to run bundle exec pod binary push, but met with an issue:

TypeError - no implicit conversion of nil into String
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/bundler/gems/cocoapods-binary-cache-a5325ada7980/lib/command/config.rb:10:in `expand_path'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/bundler/gems/cocoapods-binary-cache-a5325ada7980/lib/command/config.rb:10:in `initialize'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/bundler/gems/cocoapods-binary-cache-a5325ada7980/lib/command/binary.rb:14:in `new'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/bundler/gems/cocoapods-binary-cache-a5325ada7980/lib/command/binary.rb:14:in `prebuild_config'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/bundler/gems/cocoapods-binary-cache-a5325ada7980/lib/command/prebuild.rb:17:in `initialize'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/gems/claide-1.0.3/lib/claide/command.rb:356:in `new'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/gems/claide-1.0.3/lib/claide/command.rb:356:in `parse'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/gems/claide-1.0.3/lib/claide/command.rb:352:in `parse'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/gems/claide-1.0.3/lib/claide/command.rb:352:in `parse'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/gems/claide-1.0.3/lib/claide/command.rb:330:in `run'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/gems/cocoapods-1.10.0/lib/cocoapods/command.rb:52:in `run'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/gems/cocoapods-1.10.0/bin/pod:55:in `<top (required)>'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/bin/pod:23:in `load'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/bin/pod:23:in `<main>'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/bin/ruby_executable_hooks:24:in `eval'
/Users/jianyaoang/.rvm/gems/ruby-2.5.6@project-ios/bin/ruby_executable_hooks:24:in `<main>'

If it helps, here's my Podfile:

plugin "cocoapods-binary-cache"

source '[email protected]:ProjectName/Specs.git'
source 'https://cdn.cocoapods.org/'

platform :ios, '10.0'
inhibit_all_warnings!

workspace 'WorkspaceName'

config_cocoapods_binary_cache(
  cache_repo: {
    "default" => {
      "remote" => "https://github.com/ProjectName/CocoapodsCache.git",
      "local" => "~/.cocoapods-binary-cache/prebuilt-frameworks"
    }
  },
  prebuild_config: "Debug"
)

def cocoapods_cache
  pod 'YouTubePlayer', '0.7.0', :binary => true
end

target 'ProjectName' do
  project 'WorkspaceName.xcodeproj'
  cocoapods_cache
end

Additional details:

CocoaPods : 1.10.0
Ruby : ruby 2.5.6p201 (2019-08-28 revision 67796) [x86_64-darwin18]
RubyGems : 3.1.2
Xcode : 12.1

Appreciate any hint to move forward, thank you!!

Integration Attempts to Use Dependent Frameworks from Wrong Path

Not entirely sure whether this is a cocoapods-binary-cache issue or CocoaPods issue. I did not see this before so I'll assume it's related to cocoapods-binary-cache.

I have some app modules packaged as Pods hosted on private Git repo, the Podfile is defined as follows:

# Enable prebuilt binary pods.
plugin "cocoapods-binary-cache"
config_cocoapods_binary_cache(
  cache_repo: {
    "default" => {
      "remote" => "[email protected]:some/repo.git",
      "local" => "~/Library/Caches/CocoaPods/Binary",
    },
  },
  prebuild_config: "Debug",
  prebuild_sandbox_path: "Pods/_Prebuild",
  device_build_enabled: true,

  # Pull source for binary pods.
  still_download_sources: false,
)

platform :ios, "11.0"
inhibit_all_warnings!
use_frameworks!

...

pod "ModuleOne", :git => "[email protected]:some/repo.git", :tag => "1.0", :binary => true

ModuleOne here is a mega Pod that depends on some other framework, say ModuleZero and so on. It has an oversimplified folder structure like this:

.
├── ModuleOne
│   └─── ModuleZero
│        ├── ModuleZero.bundle
│        └── ModuleZero.framework
├── License
├── ModuleOne.podspec
└── ReadMe.md

Running pod binary prebuild --push or bundle exec pod binary prebuild --push generated/prebuilt ModuleOne and dependencies as expected in the specified sandbox directory, but the final integration failed due to "Errno::ENOENT - No such file or directory @ realpath_rec - ...". No Pod-related workspace was generated after the command failed.

I dug around and it seemed the issue was cocoapods-binary-cache or CocoaPods looking into the wrong path when searching for dependent frameworks. When ModuleOne depended on ModuleZero, ModuleOne was prebuilt into $SANDBOX_PATH/GeneratedFrameworks/ModuleOne/ModuleOne.framework, where CocoaPods got it right; ModuleZero was left in $SANDBOX_PATH/GeneratedFrameworks/ModuleOne/ModuleOne/ModuleZero/ModuleZero.framework but somehow CocoaPods wanted to find it in $SANBOX_PATH/GeneratedFrameworks/ModuleOne/ModuleZero.framework. Even if I manually moved .framework directory, .bundle also faced the same issue.

Verbose pod binary prebuild points the stack to .gem/gems/cocoapods-1.10.0/lib/cocoapods/project.rb:326 but I've never ran into this issue on stock CocoaPods installation.

RealmSwift and Realm Problems

Checklist

Issue Description

"bundle exec pod binary prebuild" correctly build the frameworks for Realm and RealmSwift.
However when I open the app project and build it I get " nclude of non-modular header inside framework module" errors.
I've about 40 other pods, all of them work.

I've found these issues:
#51
--> I'm on the newest version already. 10.5.1

#24
I tried this:
config.build_settings["CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES"] = "YES"
Doesn't seam to have any impact.

Did anyone succeed in using Realm with this plugin? If yes could you please share your solution?

Showing All Messages
/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:21:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMArray.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:22:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMDecimal128.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:23:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMEmbeddedObject.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:24:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMMigration.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:25:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMObject.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:26:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMObjectId.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:27:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMObjectSchema.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:28:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMPlatform.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:29:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMProperty.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:30:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMProviderClient.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:31:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMRealm+Sync.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:32:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMRealm.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:33:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMRealmConfiguration+Sync.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:34:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMRealmConfiguration.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:35:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMResults.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:36:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMSchema.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:38:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMApp.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:39:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMCredentials.h'

/Users/dummy_user/Library/Developer/Xcode/DerivedData/app-bsailbcgwgmcjhaaxuaaycmoobwx/Build/Products/Production Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Realm.framework/Headers/Realm.h:40:9: Include of non-modular header inside framework module 'Realm': 'dummy_path_ios/Pods/Headers/Public/Realm/RLMNetworkTransport.h'

Too many errors emitted, stopping now

Could not build Objective-C module 'Realm'

Environment

Plugin version

Plugin version b18577b

Installed CocoaPods plugins

- cocoapods-binary-cache : 0.1.11 (pre_install and post_install hooks)
- cocoapods-deintegrate  : 1.0.4
- cocoapods-plugins      : 1.0.0
- cocoapods-search       : 1.0.0
- cocoapods-trunk        : 1.5.0
- cocoapods-try          : 1.2.0

Error when execute `pod binary prebuild`

Command

/Users/lenar/.rbenv/versions/2.7.2/bin/pod binary prebuild

Report

  • What did you do?

  • What did you expect to happen?

  • What happened instead?

Stack

   CocoaPods : 1.10.0
        Ruby : ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
    RubyGems : 3.1.4
        Host : Mac OS X 10.15.7 (19H2)
       Xcode : 12.1 (12A7403)
         Git : git version 2.18.0
Ruby lib dir : /Users/lenar/.rbenv/versions/2.7.2/lib
Repositories : bitbucket-interactiveplatform-ios.sdk.movika.com - git - https://bitbucket.org/interactiveplatform/ios.sdk.movika.com.git @ f6ab14c7d4582d433a35e31e326958d5f77dc0fa

               bitbucket-interactiveplatform-ios.sdk.player.interactive.film - git - https://bitbucket.org/interactiveplatform/ios.sdk.player.interactive.film.git @ 8eddfd4cef3f35769395e7095c2323377b85bfe0

               master - git - https://github.com/CocoaPods/Specs.git @ 6b18aa56727760e998268032c3353ba9b7c5b6cf

               MovikaSDK_Dev - git - https://[email protected]/interactiveplatform/ios.sdk.player.interactive.film.git @ a82f0ce82d4e46f10fe95aa7a507dc5208e5c94f

               trunk - CDN - https://cdn.cocoapods.org/

Plugins

cocoapods-binary       : 0.4.4
cocoapods-binary-cache : 0.1.9
cocoapods-deintegrate  : 1.0.4
cocoapods-plugins      : 1.0.0
cocoapods-rome         : 1.0.1
cocoapods-search       : 1.0.0
cocoapods-trunk        : 1.5.0
cocoapods-try          : 1.2.0

Podfile

platform :ios, '13.0'

plugin 'cocoapods-binary-cache'

config_cocoapods_binary_cache(
    cache_repo: {
      "default" => {
      "remote" => "https://[email protected]/lenar-gilyazov/binarypods.git",
      "local" => "~/.cocoapods-binary-cache/MKFoundation-libs"
    }
  },
  prebuild_config: "Release",
  dev_pods_enabled: true
)

target 'MKFoundation' do
  
  use_frameworks!
  inhibit_all_warnings!

  pod 'Alamofire', :binary => true
  pod 'R.swift'
  pod 'RealmSwift'
  pod 'RxSwift'
  pod 'RxCocoa'
  pod 'RxDataSources'
  pod 'KeychainSwift'
  pod 'SwiftDate'
  pod 'MaterialShowcase'
  pod 'MovikaSDK_Dev', :git => 'https://bitbucket.org/interactiveplatform/ios.sdk.player.interactive.film.git', :branch => 'dev', :binary => false

  target 'MKFoundationTests' do
    pod 'RxTest'
    pod 'RxBlocking'
  end

end

Error

ArgumentError - wrong number of arguments (given 1, expected 3..5)
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-rome-1.0.1/lib/cocoapods-rome/post_install.rb:33:in `xcodebuild'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/pod-rome/xcodebuild_command.rb:64:in `build_for_sdk'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/pod-rome/xcodebuild_command.rb:21:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/pod-binary/helper/build.rb:15:in `build'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/pod-binary/prebuild.rb:46:in `prebuild_frameworks!'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/pod-binary/prebuild.rb:155:in `block in <class:PrebuildInstaller>'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:612:in `perform_post_install_actions'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:169:in `install!'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/hooks/pre_install.rb:101:in `block in prebuild!'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:118:in `title'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/hooks/pre_install.rb:99:in `prebuild!'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/hooks/pre_install.rb:24:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/pod-binary/prebuild_hook.rb:5:in `block in <top (required)>'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/hooks_manager.rb:124:in `block (3 levels) in run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:145:in `message'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/hooks_manager.rb:116:in `block (2 levels) in run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/hooks_manager.rb:115:in `each'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/hooks_manager.rb:115:in `block in run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:145:in `message'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/hooks_manager.rb:114:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:604:in `run_plugins_pre_install_hooks'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:224:in `block in prepare'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:145:in `message'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:220:in `prepare'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:159:in `install!'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/command/executor/prebuilder.rb:31:in `block in prebuild'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/ui.rb:5:in `block in step'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:64:in `section'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/cocoapods-binary-cache/ui.rb:5:in `step'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/command/executor/prebuilder.rb:29:in `prebuild'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/command/executor/prebuilder.rb:18:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-binary-cache-0.1.9/lib/command/prebuild.rb:38:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/lib/cocoapods/command.rb:52:in `run'
/Users/lenar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/cocoapods-1.10.0/bin/pod:55:in `<top (required)>'
/Users/lenar/.rbenv/versions/2.7.2/bin/pod:23:in `load'
/Users/lenar/.rbenv/versions/2.7.2/bin/pod:23:in `<main>'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.