grab / cocoapods-binary-cache Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
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
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?
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.
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.12
config_cocoapods_binary_cache(
cache_repo: {
"default" => {
"local" => "~/.test-pods-cache/prebuilt-frameworks"
}
},
bitcode_enabled: true,
device_build_enabled: true
)
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
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.
I delete some files, but after prebuild,the file is still in framework headers directory
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.
[Details go here]
[Details go here]
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)
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.
0.1.11
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
pod binary prebuild
and pod install
(redundant)
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
CocoaPods and CocoaPods Binary Cache related commands did not return error.
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:
- 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.
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.
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
.
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 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
$ pod binary prebuild
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)
How can I handle this issue not to create this unwanted Pods.xcodeproj
? Thanks! :)
0.1.11
cocoapods 1.10.1 / cocoapods-binary-cache
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'
How me check that cache is correct?
I want building cache when cache invalid.
I just have a basic workflow question 😊
Before using this plugin I commited the Pods folder to git.
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...
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 :)
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.
The current latest commit:
bc9ebea
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
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.
This step is failing for me, although I installed the gem.
Any idea why ?
pod binary-cache --cmd=prebuild
[!] Unknown command: binary-cache
[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
/Users/lenar/.rbenv/versions/2.7.2/bin/pod binary prebuild --no-fetch
What did you do?
What did you expect to happen?
What happened instead?
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/
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
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
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>'
Building is okay, but export ipa give me an error :(
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
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'
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.
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:
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.
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:
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.
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"
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?
How to completely clear local cache and compile pods with xcodebuild ? I delete all cache folders, but xcodebuild doesn't work. It doesn't even get called
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
``
How can I make multiple "prebuild_config" for different schemas?
same flag as cocoapods-binary which sets :binary => true to all pods and we only have to set :binary => false on those who we do not want to cache
Seems like colorlog
has to be installed before running the python scripts as import colorlog
on logger.py
fails
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
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
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:
pod 'MBProgressHUD', '1.1.0', :binary => true
and run pod binary-cache --cmd=prebuild
1.2.0
and run the above command again (also observed for downgrading the version)More choice for users
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?
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.
I ran pod binary prebuild
To successfully prebuild all the pods and able to build my own project
It failed every time I have RealmSwift
& RxRealm
in my podfile.
/Users/username/.rvm/gems/ruby-2.6.3/bin/pod binary prebuild
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.
A preliminary proposal is to put cached zip
s 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.lock
s 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.
My flow in CI
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
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
$ bundle exec pod binary prebuild
config_cocoapods_binary_cache(
cache_repo: {
"default" => {
"local" => "~/.cocoapods-binary-cache/prebuilt-frameworks"
}
},
prebuild_config: "Debug",
device_build_enabled: true
)
[Details go here]
Prebuild frameworks (total 0): []
No changes in prebuild
but i add another pod
[Details go here]
[Details go here]
[Details go here]
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)
{
"cache_repo": "https://github.com/XXX/prebuild_frameworks.git",
"cache_path": "~/Documents/Projects/iOS/prebuild_frameworks/"
}
plugin "cocoapods-binary-cache"
config_cocoapods_binary_cache(
prebuild_config: "Debug",
dev_pods_enabled: false
)
So now I should start prebuilding my frameworks ? I just started with one of them, for testing purposes:
pod 'KYDrawerController', :binary => true
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.
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
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'`
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:
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:
Thanks!
When I changed the tag of a Pods file, I need run bundle exec pod binary prebuild
, then generate a new framework and integrate it.
But when I use cocoapods-binary plgin, I only run pod install
, it can prebuild the changed Pods file automaticly.
So why?
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!!
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.
"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'
Plugin version b18577b
- 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
/Users/lenar/.rbenv/versions/2.7.2/bin/pod binary prebuild
What did you do?
What did you expect to happen?
What happened instead?
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/
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
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
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>'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.