Build issues with Placenote iOS SDK - ios

I have been working on an app which already had integrated Placenote SDK through pods and it was working fine. Sometimes, it gave me build errors but after build clean up it was working fine.
Now, due to certain reasons, I need to update libraries and Placenote also get updated, and now I am facing persistent build failure with following error:
symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Infinite build cleanups but nothing is solving my issue.
Please let me know if someone get me a fix.
### Stack
```
CocoaPods : 1.7.1
Ruby : ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
RubyGems : 2.5.2.3
Host : Mac OS X 10.14.4 (18E226)
Xcode : 10.1 (10B61)
Git : git version 2.17.2 (Apple Git-113)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib
Repositories : master - https://github.com/CocoaPods/Specs.git # 664639fa034e3b1798282006c9c457c8086ffe64
twilio - https://github.com/twilio/cocoapod-specs # 15612163b2cae5be50339701ce3702af12a090f8
```
### Installation Source
```
Executable Path: /usr/local/bin/pod
```
### Plugins
```
cocoapods-deintegrate : 1.0.4
cocoapods-plugins : 1.0.0
cocoapods-search : 1.0.0
cocoapods-stats : 1.0.0
cocoapods-trunk : 1.3.1
cocoapods-try : 1.1.0
```
### Podfile
```ruby
# AppDelegate.swift
# Bryan Cooper
# RocketCM
# The dependency installation file.
platform :ios, '11.0'
target 'RocketCM' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for RocketCM
# Apollo is the GraphQL code generation library.
pod 'Apollo'
# WebSocket provides network layer socket implementation for subscriptions.
pod 'Apollo/WebSocket'
# Crashlytics is a crash monitoring service.
pod 'Crashlytics'
# IQKeyboardManager manages the keyboard sessions to avoid recognizer errors.
pod 'IQKeyboardManagerSwift'
# Fabric is a monitoring solution required for Crashlytics.
pod 'Fabric'
# FSCalendar is a calendar UI library.
pod 'FSCalendar'
# Firebase is the storage solution implementation.
pod 'Firebase/Core'
# Database is the adapter for Firebase Realtime DB NoSQL.
pod 'Firebase/Database'
# Storage is the adapter for Firebase Asset Store.
pod 'Firebase/Storage'
# Placenote is a SLAM implementation to stabilize AR content.
pod 'PlacenoteSDK'
# Google Maps is used to display a map with Google data sourcing.
pod 'GoogleMaps'
# Google Places is used to geocode and reverse geocode location information.
pod 'GooglePlaces'
# ColorPicker is a hue selection UI library.
pod 'SwiftHSVColorPicker'
# WheelPicker is a vertical and horizontal picker library.
pod 'WheelPicker', '~> 1.0'
target 'RocketCMTests' do
inherit! :search_paths
# Pods for testing
end
target 'RocketCMUITests' do
inherit! :search_paths
# Pods for testing
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
```

Related

"Your Podfile requires that the plugin `cocoapods-patch` be installed" after XCode 13 update

After getting a new M1 Macbook with MacOS Monterey 12.2.1 (21D62) and XCode Version 13.4.1 (13F100) when I run cd ios and pod install in a React Native project I'm getting:
[!] Your Podfile requires that the plugin cocoapods-patch be installed. Please install it and try installation again.
I already searched for solutions.
Globally installing 'cocoapods-patch' doesn't make any difference.
There are no new updated for 'cocoapods-patch' since last year.
Apparently it's possible to force XCode 12 to work in Monterey and this should work, but it's not a proper solution. Eventually I will need to update to XCode 13.
Any ideas? Thank you.
Podfile:
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/#react-native-community/cli-platform-ios/native_modules'
require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
# source 'https://github.com/CocoaPods/Specs.git'
source 'https://cdn.cocoapods.org/'
platform :ios, '12.1.0'
plugin 'cocoapods-patch'
target 'MyProject' do
use_unimodules!
config = use_native_modules!
pod 'Google-Mobile-Ads-SDK'
pod 'GoogleToolboxForMac/NSString+HTML', '2.3.0'
pod 'Mantle', '2.1.6'
pod 'tealium-swift', '2.6.0' # all modules
pod "tealium-react-native-swift", :path => '../node_modules/tealium-react-native/tealium-react-native-swift.podspec'
use_react_native!(
:path => config[:reactNativePath],
# to enable hermes on iOS, change `false` to `true` and then install pods
:hermes_enabled => true
)
permissions_path = '../node_modules/react-native-permissions/ios'
pod 'Permission-AppTrackingTransparency', :path => "#{permissions_path}/AppTrackingTransparency"
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable the next line.
# use_flipper!()
# post_install do |installer|
# react_native_post_install(installer)
# end
# end
post_install do |installer|
react_native_post_install(installer)
__apply_Xcode_12_5_M1_post_install_workaround(installer)
# Apple Silicon builds require a library path tweak for Swift library discovery or "symbol not found" for swift things
installer.aggregate_targets.each do |aggregate_target|
aggregate_target.user_project.native_targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['LIBRARY_SEARCH_PATHS'] = ['$(SDKROOT)/usr/lib/swift', '$(inherited)']
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
aggregate_target.user_project.save
end
# Flipper requires a crude patch to bump up iOS deployment target, or "error: thread-local storage is not supported for the current target"
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
end
end
# ...but if you bump iOS deployment target, Flipper barfs again "Time.h:52:17: error: typedef redefinition with different types"
# We need to make one crude patch to RCT-Folly - set `__IPHONE_10_0` to our iOS target + 1
# https://github.com/facebook/flipper/issues/834 - 84 comments and still going...
`sed -i -e $'s/__IPHONE_10_0/__IPHONE_12_0/' #{installer.sandbox.root}/RCT-Folly/folly/portability/Time.h`
end
end
log after 'pod install --verbose':
Installing unimodules:
expo-constants#11.0.2 from ../node_modules/expo-constants/ios
expo-file-system#11.1.3 from ../node_modules/expo-file-system/ios
expo-image-loader#2.2.0 from ../node_modules/expo-image-loader/ios
expo-in-app-purchases#11.0.1 from ../node_modules/expo-in-app-purchases/ios
expo-modules-core#0.2.0 from ../node_modules/expo-modules-core/ios
unimodules-app-loader#2.2.0 from ../node_modules/unimodules-app-loader/ios
unimodules-core#7.1.2 from ../node_modules/#unimodules/core/ios
unimodules-react-native-adapter#6.3.9 from ../node_modules/#unimodules/react-native-adapter/ios
unimodules-task-manager-interface#6.2.0 from ../node_modules/unimodules-task-manager-interface/ios
$ /Users/ramiro/.nvm/versions/node/v14.15.0/bin/node -e try {console.log(require('#react-native-community/cli').bin);} catch (e)
{console.log(require('react-native/cli').bin);}
/Users/ramiro/mobile-darwin/node_modules/#react-native-community/cli/build/bin.js
RNFBAnalytics: Using default Firebase/Analytics with Ad Ids. May require App Tracking Transparency. Not allowed for Kids apps.
RNFBAnalytics: You may set variable `$RNFirebaseAnalyticsWithoutAdIdSupport=true` in Podfile to use analytics without ad ids.
Using firebase.json from '/Users/ramiro/mobile-darwin/firebase.json'
Adding a custom script phase for Pod RNFBApp: [RNFB] Core Configuration
Adding a custom script phase for Pod RNFBCrashlytics: [RNFB] Crashlytics Configuration
react-native-appsflyer: Using default AppsFlyerFramework.You may require App Tracking Transparency. Not allowed for Kids apps.
react-native-appsflyer: You may set variable `$RNAppsFlyerStrictMode=true` in Podfile to use strict mode for kids apps.
Auto-linking React Native modules for target `NewEspresso`: BVLinearGradient, RNBootSplash, RNCAsyncStorage, RNCMaskedView, RNColorMatrixImageFilters, RNDeviceInfo, RNFBAnalytics, RNFBApp, RNFBCrashlytics, RNFBFirestore, RNFBMessaging, RNFBPerf, RNFBRemoteConfig, RNFS, RNGestureHandler, RNKeychain, RNLocalize, RNPermissions, RNSVG, RNScreens, RNSentry, RNShare, RNSharedElement, RNVectorIcons, apptentive-react-native, react-native-ad-manager, react-native-appsflyer, react-native-background-downloader, react-native-background-timer, react-native-blur, react-native-mmkv-storage, react-native-netinfo, react-native-pager-view, react-native-photo-manipulator, react-native-safe-area-context, react-native-slider, react-native-track-player, react-native-view-shot, react-native-webview, and tealium-react-native
Preparing
[!] Your Podfile requires that the plugin `cocoapods-patch` be installed. Please install it and try installation again.
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:722:in `block in ensure_plugins_are_installed!'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:720:in `each'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:720:in `ensure_plugins_are_installed!'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:225:in `block in prepare'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:149:in `message'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:222:in `prepare'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:160:in `install!'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/command/install.rb:52:in `run'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/command.rb:52:in `run'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/bin/pod:55:in `<top (required)>'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/bin/pod:25:in `load'
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/bin/pod:25:in `<main>'
[!] use_native_modules! skipped the react-native dependency 'react-native-economist'. No podspec file was found.
- Check to see if there is an updated version that contains the necessary podspec file
- Contact the library maintainers or send them a PR to add a podspec. The react-native-webview podspec is a good example of a package.json driven podspec. See
https://github.com/react-native-community/react-native-webview/blob/master/react-native-webview.podspec
- If necessary, you can disable autolinking for the dependency and link it manually. See
https://github.com/react-native-community/cli/blob/master/docs/autolinking.md#how-can-i-disable-autolinking-for-unsupported-library
I want to add that when I do pod, I'm not getting the patch command, it's like cocoapods-patch wasn't installed at all. But I already did sudo gem install cocoapods-patch many times.
The issue was fixed after following steps:
sudo gem uninstall cocoapods cocoapods-patch
sudo brew uninstall cocoapods cocoapods-patch
sudo brew install cocoapods cocoapods-patch
Basically uninstalling everything and reinstalling with brew. It seems I had installed cocoapods with gem and cocoapods-patch with brew or the other way around.

fatal error: module 'firebase_auth' not found #import firebase_auth

I am trying to use Firebase Authentication for my iOS Flutter.
I have tried all of the procedures laid out in this link but I still receive the same error.
https://github.com/FirebaseExtended/flutterfire/issues/1929
This is the error I receive when I run the iOS app.
/ios/Runner/GeneratedPluginRegistrant.m:10:9: fatal error: module 'firebase_auth' not found
#import firebase_auth;
~~~~~~~^~~~~~~~~~~~~
1 error generated.
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description
This is my Podfile
# add pods for desired Firebase products
# https://firebase.google.com/docs/ios/setup#available-pods
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'Runner' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
pod 'Firebase/Analytics'
pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Firestore'
pod 'Firebase/Storage'
end
post_install do |pi|
pi.pods_project.targets.each do |t|
t.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
end
end
end
You may be interested in this thread here: https://github.com/FirebaseExtended/flutterfire/issues/192
Essentially its recommendation is to delete Podfile and Podfile.lock. Once you've done this re-run and flutter should automatically create the correct Podfiles for you.
Hopefully that helps.
DB
When it happens remove the "^" on the dependency. So firebase_auth: ^1.0.0 -> firebase_auth: 1.0.0.

How to add a thirdparty SDK (multiple .framework files) to react native library module?

I have built a react native library module (with RN 0.63). This module depends on some thirdparty SDKs. When integrated with Android (using .aar files) it works just fine. In case of iOS, I have been able to get the library module working without the SDK (using swift hence with the bridging header). On adding the SDK, I am getting errors such as .h is not avaialble.
This is my directory My directory structure:
react-native-lib
--android
--ios
----MyCls.swift
----MyCls.m
----react-native-lib-Bridging-Header.h
----SDKS
------DEBUG
--------A.framework
--------B.framework
--------A-Debug.podspec
--------B-Debug.podspec
------THIRDPARTY
--------JSONModel.framework
--------CocoaLumberjack.framework
--------... other frameworks
--react-native-lib.podspec
--Example
--index.js
--Logger.swift
--package.json
I have a sample application in Swift which uses the SDKS folder, but I cannot seem to get RN to recognize the framework files/headers.
The last few lines of the Podspec file of react-native-lib is as follows:
...
s.dependency "React"
s.dependency 'JSONModel', '~> 1.8.0'
s.dependency 'CocoaLumberjack', '~> 3.6.1'
My example application Podfile:
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/#react-native-community/cli-platform-ios/native_modules'
platform :ios, '11.0'
use_frameworks!
project 'example', {
'Debug' => :debug,
'Release' => :release,
}
#
def applibs
pod 'A-Debug', :configuration => ['Debug'], :path => '../node_modules/react-native-lib/ios/SDKS/DEBUG/A-Debug.podspec'
# ... A-Release, B-Debug, B-Release
# The release folders not shown in structure above.
end
target 'example' do
config = use_native_modules!
use_react_native!(:path => config["reactNativePath"])
applibs
# Disabled Flipper because of use_frameworks!
end
I am not sure what I am doing wrong and how I can overcome this issue. There seems to be not quite a lot of articles on how such 3rd party sdk can be integrated in a library module. I have explored similar questions like this one which is still unsolved and has insufficient information.
after days of research and experimenting, I have been able to resolve the problem. It's simple enough, made difficult with lack of resources on the topic.
Primarily, I used the podspec file in my react native lib (ios folder) to add dependency on the 3rd party frameworks as follows.
react-native-lib.podspec
s.dependency 'A-Debug', '~> 1.2.3', :configurations => :debug
s.dependency 'B-Debug', '~> 2.3.4', :configurations => :debug
s.dependency 'A-Release', '~> 1.2.3', :configurations => :release
s.dependency 'B-Release', '~> 2.3.4', :configurations => :release
In my example application, the podfile works as shown above (by adding the pods in applibs). However, I encountered the 'enable bitcode' error where the compiler asked me to recompile the 3rd party libraries with bitcode enabled. I worked around it with the following post install script in the application (not library) podfile (obtained from here).
Example/ios/Podfile
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
Do a cache clean, and as an extra measure, clear node modules.
Then simply run the following in your application directory:
yarn install && cd ios && pod install && cd .. && yarn react-native start
Open your project in Xcode and import your SDK as per its documentation. Hope this saves you hours of research, experiment and debugging.

How to specify specific source for a certain pod?

Although I believe this is harmless, warnings quite irk me. So I'm using a very specific version of TwilioChatClient together with TwilioClient. These two specific versions are what Twilio have been using in their sample projects.
Anyways, the warning when installing / updating pods:
[!] Found multiple specifications for TwilioChatClient (1.0.9):
- /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.9/TwilioChatClient.podspec.json
- /Users/XXX/.cocoapods/repos/twilio/TwilioChatClient/1.0.9/TwilioChatClient.podspec
[!] Found multiple specifications for TwilioChatClient (1.0.8):
- /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.8/TwilioChatClient.podspec.json
- /Users/XXX/.cocoapods/repos/twilio/TwilioChatClient/1.0.8/TwilioChatClient.podspec
[!] Found multiple specifications for TwilioChatClient (1.0.7):
- /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.7/TwilioChatClient.podspec.json
- /Users/XXX/.cocoapods/repos/twilio/TwilioChatClient/1.0.7/TwilioChatClient.podspec
[!] Found multiple specifications for TwilioChatClient (1.0.6):
- /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.6/TwilioChatClient.podspec.json
- /Users/XXX/.cocoapods/repos/twilio/TwilioChatClient/1.0.6/TwilioChatClient.podspec
[!] Found multiple specifications for TwilioChatClient (1.0.5):
- /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.5/TwilioChatClient.podspec.json
- /Users/XXX/.cocoapods/repos/twilio/TwilioChatClient/1.0.5/TwilioChatClient.podspec
[!] Found multiple specifications for TwilioChatClient (1.0.4):
- /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.4/TwilioChatClient.podspec.json
- /Users/XXX/.cocoapods/repos/twilio/TwilioChatClient/1.0.4/TwilioChatClient.podspec
My podfile:
project 'Proj/Proj.xcodeproj'
source 'https://github.com/CocoaPods/Specs'
source 'https://github.com/twilio/cocoapod-specs'
platform :ios, '10.0'
use_frameworks!
target 'Proj' do
pod 'TwilioClient', '~>1.2' # Twilio Call Framework
pod 'TwilioChatClient', '1.0.4' # Twilio Chat Framework
target 'MobileMedTests' do
inherit! :search_paths
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '4.0'
end
end
end
end
target 'ProjUITests' do
end
I think specifying two kinds of sources (which are both necessary) causes these warnings. Is there a way to put the specific source right beside the pod?
In fact, your problem comes from the fact that you have added the twilio repo to your pod source with this line :
source 'https://github.com/twilio/cocoapod-specs'
So when you type pod repo, you obtain something like :
master
- Type: git (master)
- URL: https://github.com/CocoaPods/Specs.git
- Path: /Users/cyrille/.cocoapods/repos/master
twilio
- Type: git (master)
- URL: https://github.com/twilio/cocoapod-specs
- Path: /Users/cyrille/.cocoapods/repos/twilio
And when you execute pod install, cocoa pods can find a version of this lib both in master's cocoapods repo and in twilio's one... which make the warning.
To remove this warning, remove this line from your Podfile :
source 'https://github.com/twilio/cocoapod-specs'
In a terminal execute the following commands :
pod repo remove twilio
and then :
pod update
You should get the following with no more warnings :
Analyzing dependencies
Removing TwilioClient
Downloading dependencies
Installing TwilioChatClient 2.2.0 (was 1.0.4)
Installing TwilioSDK (1.2.9)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There are 2 dependencies from the Podfile and 2 total pods installed.
just wanted to give a bit of background on the warnings you saw here. We use a separate cocoapods repository during beta testing (https://github.com/twilio/cocoapod-specs) but began publishing to the global cocoapods repository soon after GA when 1.x was released.
We did not stop publishing to our existing cocoapod-specs repository for the rest of the 1.x releases because it would have been a breaking change to existing customers using the beta source line who wished to upgrade if they did not also have the global cocoapods repository declared. This is what cocoapods is warning about, that the same pod with a same version is defined in two places. The podspecs are identical, so this will not cause issues when using any of the versions of the SDK for which this warning shows up.
As of 2.x, we have been publishing chat only to the global repository so that is why the warnings stop with the 1.x series of releases.
First, You need SDK also.I installed pod on my project now. It works fine. Look up this link
http://cocoapods.org/?q=Twilio
Pod Code
project 'Proj/Proj.xcodeproj'
source 'https://github.com/CocoaPods/Specs'
source 'https://github.com/twilio/cocoapod-specs'
platform :ios, '10.0'
use_frameworks!
target 'Proj' do
pod 'TwilioSDK', '1.2.9'
pod 'TwilioChatClient'
target 'MobileMedTests' do
inherit! :search_paths
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '4.0'
end
end
end
end
target 'ProjUITests' do
end
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
platform :ios, '10.0' # (or whatever version you want)
target 'Project Name' do
pod 'TwilioSDK', '1.2.9'
pod 'TwilioChatClient'
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
end
end
end

Running 1 of 2 custom shell script stuck for 2 minutes in Xcode

Running 1 of 2 custom shell scripts it stuck for 2 minutes while trying to build the app.
I tried to fix with the solution :Xcode custom shell scripts are slowing down the compiling time , but still it slows the build process :(.
Build Stuck for 2m here
Build Phases
Further informations:
Xcode 8.1
Swift 3.0
Podfile:
# Uncomment this line to define a global platform for your project
platform :ios, '9.0'
# Uncomment this line if you're using Swift
use_frameworks!
target 'MyProject' do
# Network
pod 'Alamofire'
pod 'SwiftyJSON'
# UI side
pod 'Material', git: 'https://github.com/CosmicMind/Material.git', branch: 'development'
pod 'SDWebImage'
pod 'UIScrollView-InfiniteScroll'
pod 'TPKeyboardAvoiding'
pod 'SwiftKeychainWrapper', git: 'https://github.com/jrendel/SwiftKeychainWrapper.git', branch: 'develop'
pod 'DropDown'
# Facebook
pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'
# Autolayout
pod 'SnapKit'
pod 'KeepLayout'
# Metrics
pod 'Google/Analytics'
# Fabric.io
pod 'Fabric'
pod 'Crashlytics'
end
target 'MyProjectTests' do
end
target 'MyProjectUITests' do
end
Finally, I found a solution for this. At least the total build time now is 57sec.
I found that 'Embed Pods Framework' (Once 'Embed Pods Framework' and 'CP Embed Pods Framework') builds twice. Anyway, I don't have an idea why I have both of them on build phases.
I found for this on Report Navigator.
Solution:
1) I let only active ✓ Run script only when installing only for'[CP]Embed Pods Framework'
2) Optimization Level on Build Settings for debug was -None. I set to Fast...
3) Tip: use Simulator instead of Device for minimal build time.
Added this at the end of you Podfile
post_install do |installer|
puts("Update debug pod settings to speed up build time")
Dir.glob(File.join("Pods", "**", "Pods*{debug,Private}.xcconfig")).each do |file|
File.open(file, 'a') { |f| f.puts "\nDEBUG_INFORMATION_FORMAT = dwarf" }
end
end

Resources