source 'https://cdn.cocoapods.org/'
source '/Volumes/inno eng/SourceCode/Apple/spec.git'
source 'https://dev.penpower.com.tw/innoeng/pod/spec.git'

# 出現[!] [Xcodeproj] Generated duplicate UUIDs:
# 有可能是元件有檔案重複，可先檢視
# 如果要忽略此問題可用下面的語法
# 參考: http://www.jianshu.com/p/209d01f4ae6e
#install! 'cocoapods', :deterministic_uuids => false

# define platform
platform :ios, '11.0'

#####################################
# unmark to use local pod
# xxxLocalPath = ""是用來始始化
# +"xxxx"是加入local path, 為了方便mark所以用這種方式加入
WCContactAccessFlowControllerLocalPath = ""#+"/Volumes/Data/Base/WCComponent/WCContactAccessFlowController/WCContactAccessFlowController.podspec"
WCNewCardFlowControllerLocalPath = ""#+"/Volumes/Data/Base/WCComponent/WCNewCardFlowController/WCNewCardFlowController.podspec"

WCContactViewControllerLocalPath = ""#+"/Volumes/Data/Base/WCComponent/WCContactViewController/WCContactViewController.podspec"
WCGroupAccessFlowControllerLocalPath = ""#+"/Volumes/Data/Base/WCComponent/FlowController/WCGroupAccessFlowController/WCGroupAccessFlowController.podspec"
WCBackupRestoreFlowControllerLocalPath = ""#+"/Volumes/Data/Base/WCComponent/FlowController/WCBackupRestoreFlowController/WCBackupRestoreFlowController.podspec"
WCExportFlowControllerLocalPath = ""#+"/Volumes/Data/Base/WCComponent/FlowController/WCExportFlowController/WCExportFlowController.podspec"
WCCoverFlowControllerLocalPath = ""#+"/Volumes/Data/Base/WCComponent/WCCoverFlowController/WCCoverFlowController.podspec"
WCSubscriptionControllerLocalPath = ""#+"/Volumes/Data/Base/WCComponent/WCSubscriptionController/WCSubscriptionController.podspec"

# WCM, WCSF, WCO365
WCCardDBControllerLocalPath = ""#+"/Volumes/Data/Base/WCComponent/WCCardDBController/WCCardDBController.podspec"
WCDataControllerLocalPath = ""#+"/Volumes/Data/Base/WCComponent/WCDataController/WCDataController.podspec"
WCDataModelPath = ""#+"/Volumes/Data/Base/WCComponent/WCDataModel/WCDataModel.podspec"

#####################################
# 元件有分subspec時，加果要使用local pod，可以用這個，方便開關
# local_path為空字串時，會用remote pod
def pod_with_debug(pod_name, local_path="")
    if local_path && local_path.length()>0
        pod "#{pod_name}", :path => "#{local_path}"
    else
        pod "#{pod_name}"
    end
end
def wcm_pods
#    pod 'PPRemoteNotificationController'
    # debug
    #    pod 'PPSQLiteDBController'#, :path => '/Volumes/Data/Base/Controller/PPSQLiteDBController/PPSQLiteDBController.podspec'
       # pod 'PPSyncActionController', :path =>'/Volumes/Data/Base/SyncComponent/PPSyncActionController/PPSyncActionController.podspec'
#        pod 'PPGoogleDataController', :path =>'/Volumes/Data/Base/SyncComponent/PPGoogleDataController/PPGoogleDataController.podspec'
    #    pod 'PPSyncCardModel', :path =>'/Volumes/Data/Base/SyncComponent/PPSyncCardModel/PPSyncCardModel.podspec'
    #    pod 'WCCardModel+PPSyncCardModel', :path =>'/Volumes/Data/Base/SyncComponent/WCCardModel+PPSyncCardModel/WCCardModel+PPSyncCardModel.podspec'
    #    pod 'WCXFDataController', :path => '/Volumes/Data/Base/WCComponent/WCXFDataController/WCXFDataController.podspec'
#        pod 'PPCloudController', :path => '/Volumes/Data/Base/Controller/PPCloudController/PPCloudController.podspec'
#    pod 'PPGData', :path => '/Volumes/Data/Base/Class/PPGData/PPGData.podspec'
#    pod 'PPCountryCodeConvert', :path => '/Volumes/Data/Base/Class/PPCountryCodeConvert/PPCountryCodeConvert.podspec'
    #controller
    pod_with_debug("WCCardDBController","#{WCCardDBControllerLocalPath}")
    pod_with_debug("WCDataController","#{WCDataControllerLocalPath}")

    #flow controller
    pod_with_debug("WCBackupRestoreFlowController/ForWCM","#{WCBackupRestoreFlowControllerLocalPath}")
    pod_with_debug("WCContactAccessFlowController/ForWCM","#{WCContactAccessFlowControllerLocalPath}")
    pod_with_debug("WCGroupAccessFlowController/ForWCM","#{WCGroupAccessFlowControllerLocalPath}")
    pod 'WCReminderFlowController'#, :path => '/Volumes/Data/Base/WCComponent/WCReminderFlowController/WCReminderFlowController.podspec'
    pod 'WCSyncFlowController'#, :path =>'/Volumes/Data/Base/WCComponent/WCSyncFlowController/WCSyncFlowController.podspec'
    
    
end

#####################################
# WCT pods
def wct_pods
    # WCT model
#     pod 'WCTDataModel', :path =>'/Volumes/Data/Base/WCTComponent/WCTDataModel/WCTDataModel.podspec'
#    pod 'libIndexing', :path =>'/Volumes/Data/Base/Kernel/libIndexing/libIndexing.podspec'
#    pod 'PPIndexingController', :path => '/Volumes/Data/Base/Library/PPIndexingController/PPIndexingController.podspec'
#    pod 'WCCaptureFlowController', :path =>'/Volumes/Data/Base/WCComponent/WCCaptureFlowController/WCCaptureFlowController.podspec'
#    pod 'PPSalesforceLoginView', :path =>'/Volumes/Data/Base/View/PPSalesforceLoginView/PPSalesforceLoginView.podspec'
    pod 'PPMatomoController/ForWCT'

    # WCT Controller
    #    pod 'PPSQLiteDBController'#, :path => '/Volumes/Data/Base/Controller/PPSQLiteDBController/PPSQLiteDBController.podspec'
#        pod 'PPRestClient', :path => '/Volumes/Data/Base/WCTComponent/PPRestClient/PPRestClient.podspec'
    pod 'WCTAccountDataController'#, :path => '/Volumes/Data/Base/WCTComponent/WCTAccountDataController/WCTAccountDataController.podspec'
    pod 'WCTCardDBController'#, :path => '/Volumes/Data/Base/WCTComponent/WCTCardDBController/WCTCardDBController.podspec'
    pod 'WCTDataController'#, :path => '/Volumes/Data/Base/WCTComponent/WCTDataController/WCTDataController.podspec'
    pod 'WCTLoginController'#,:path=>'/Volumes/Data/Base/WCTComponent/WCTLoginController/WCTLoginController.podspec'
    pod 'WCTRestClientController'#, :path => '/Volumes/Data/Base/WCTComponent/WCTRestClientController/WCTRestClientController.podspec'
    pod_with_debug("WCCoverFlowController/ForWCT","#{WCCoverFlowControllerLocalPath}")

    # WCT viewController
    pod 'WCTAccountInfoViewController'#, :path =>'/Volumes/Data/Base/WCTComponent/WCTAccountInfoViewController/WCTAccountInfoViewController.podspec'
    pod 'WCTAccountSelectViewController'#,:path=>'/Volumes/Data/Base/WCTComponent/WCTAccountSelectViewController/WCTAccountSelectViewController.podspec'
    pod 'WCTAdvancedSearchViewController'#, :path =>'/Volumes/Data/Base/WCTComponent/WCTAdvancedSearchViewController/WCTAdvancedSearchViewController.podspec'
    pod 'WCTCompanyContactViewController'#, :path =>'/Volumes/Data/Base/WCTComponent/WCTCompanyContactViewController/WCTCompanyContactViewController.podspec'
    pod 'WCTLoginViewController', '2.8.0'#,:path=>'/Volumes/Data/Base/WCTComponent/WCTLoginViewController/WCTLoginViewController.podspec'
    pod 'WCTPasswordViewController'#, :path =>'/Volumes/Data/Base/WCTComponent/WCTPasswordViewController/WCTPasswordViewController.podspec'
    
    # WCT flow controller
    pod 'WCTAccountFlowController'#, :path =>'/Volumes/Data/Base/WCTComponent/WCTAccountFlowController/WCTAccountFlowController.podspec'
    pod 'WCTServerContactExportFlowController'#, :path => '/Volumes/Data/Base/WCTComponent/WCTServerContactExportFlowController/WCTServerContactExportFlowController.podspec'
    pod 'WCTNoticeFlowController'#, :path =>'/Volumes/Data/Base/WCTComponent/WCTNoticeFlowController/WCTNoticeFlowController.podspec'
    pod 'WCTSyncFlowController'#, :path =>'/Volumes/Data/Base/WCTComponent/WCTSyncFlowController/WCTSyncFlowController.podspec'
    pod_with_debug("WCExportFlowController/ForWCT","#{WCExportFlowControllerLocalPath}")
    pod_with_debug("WCBackupRestoreFlowController/ForWCT","#{WCBackupRestoreFlowControllerLocalPath}")
    pod_with_debug("WCGroupAccessFlowController/ForWCT","#{WCGroupAccessFlowControllerLocalPath}")
    
    # TSMC_Feature
    pod_with_debug("WCContactViewController/ForTSMC","#{WCContactViewControllerLocalPath}")
    pod_with_debug("WCContactAccessFlowController/ForWCT","#{WCContactAccessFlowControllerLocalPath}")
    pod_with_debug("WCNewCardFlowController/ForWCT","#{WCNewCardFlowControllerLocalPath}")

    # 這個是用來開啟WCTCardDBController的log的，release時應該要移掉
    #    pod 'WCTCardDBController/EnableLog'#, :path => '/Volumes/Data/Base/WCTComponent/WCTCardDBController/WCTCardDBController.podspec'
    
end

#####################################
# WC pods
def wc_pods    
    #model
    # pod 'WCDataModel'#, :path => '/Volumes/Data/Base/WCComponent/WCDataModel/WCDataModel.podspec'
#   pod 'PPNavigationController', :path => '/Volumes/Data/Base/Controller/PPNavigationController/PPNavigationController.podspec'
#   pod 'PPViewController', :path => '/Volumes/Data/Base/Controller/PPViewController/PPViewController.podspec'
#       pod 'PPCardImageViewController', :path => '/Volumes/Data/Base/Controller/PPCardImageViewController/PPCardImageViewController.podspec'
#    pod 'WCAlbumFlowController', :path =>'/Volumes/Data/Base/WCComponent/WCAlbumFlowController/WCAlbumFlowController.podspec'

 # 用來指定要用的Library
    pod 'PPZipController/ZipArchive'#, :path => '/Volumes/Data/Base/Controller/PPZipController/PPZipController.podspec'

    ##categories
    pod 'PPButton/Factory'
    pod 'NSAttributedString+CCLFormat'
    
    #view
    pod 'PPAlertView'
    pod 'PPAutoResizedLabel/Factory'
    pod 'PPBarView/NavigationBar'#, :path => '/Volumes/Data/Base/View/PPBarView/PPBarView.podspec'
    pod 'PPBusyView'#, :path => '/Volumes/Data/Base/View/PPBusyView/PPBusyView.podspec'
    pod 'PPBusyView/NSObject+PPBusyView'#, :path => '/Volumes/Data/Base/View/PPBusyView/PPBusyView.podspec'
    pod 'PPFloatingMenuButton'
    pod 'PPRefreshControl'#, :path => '/Volumes/Data/Base/View/PPRefreshControl/PPRefreshControl.podspec'
    pod 'PPTableView'
    pod 'PPTableViewCell'#, :path => '/Volumes/Data/Base/View/PPTableViewCell/PPTableViewCell.podspec'
    pod 'PPTableViewCell/FitLabelSize'#, :path => '/Volumes/Data/Base/View/PPTableViewCell/PPTableViewCell.podspec'
    pod 'WCCardHolderCell'#, :path => '/Volumes/Data/Base/WCComponent/WCCardHolderCell/WCCardHolderCell.podspec'
#    pod 'WCGroupView', :path =>'/Volumes/Data/Base/View/WCGroupView/WCGroupView.podspec'

    # resource
    pod 'PPSelectImageView/GrayResources'
    pod 'PPPromotionViewController/ResourceForAll'
    
    #controllers
    pod 'PPCutPhoneNumberController'
    pod 'PPEditableTableViewController'
    pod 'PPLogController'
    pod 'PPSelectController'#, :path => '/Volumes/Data/Base/Controller/PPSelectController/PPSelectController.podspec'
    pod 'PPSettingsController'
    pod 'PPSectionController'#, :path => '/Volumes/Data/Base/Controller/PPSectionController/PPSectionController.podspec'
    pod 'PPSectionController/IndexSection'#, :path => '/Volumes/Data/Base/Controller/PPSectionController/PPSectionController.podspec'
    pod 'PPSupportController'#, :path => '/Volumes/Data/Base/Controller/PPSupportController/PPSupportController.podspec'
    pod 'PPURLController/ForTSMC'#, :path => '/Volumes/Data/Base/Controller/PPURLController/PPURLController.podspec'
    pod 'WCDisplayNameController'#, :path => '/Volumes/Data/Base/WCComponent/WCDisplayNameController/WCDisplayNameController.podspec'
    pod 'WCMFileCollectController'#, :path =>'/Volumes/Data/Base/WCComponent/WCMFileCollectController/WCMFileCollectController.podspec'
    pod 'PPLockScreenController'#, :path => '/Volumes/Data/Base/Controller/PPLockScreenController/PPLockScreenController.podspec'
    pod 'PPRefreshController'#, :path => '/Volumes/Data/Base/Controller/PPRefreshController/PPRefreshController.podspec'
    pod 'PPPromotionViewController/Common'
    pod 'WCToastController'#, :path =>'/Volumes/Data/Base/WCComponent/WCToastController/WCToastController.podspec'
    pod 'PPGuideController'#, :path => '/Volumes/Data/Base/Controller/PPGuideController/PPGuideController.podspec'
    pod 'PPWorldcardAddressController'
    pod 'WCPromotionADController'#, :path => '/Volumes/Data/Base/WCComponent/WCPromotionADController/WCPromotionADController.podspec'
    pod 'WCRecognitionController'#, :path => '/Volumes/Data/Base/WCComponent/WCRecognitionController/WCRecognitionController.podspec'
    pod 'PPSettingsController/DisplayRule'
    pod 'WCVCFDataController'#, :path => '/Volumes/Data/Base/WCComponent/WCVCFDataController/WCVCFDataController.podspec'
    pod 'WCXLSXDataController'#, :path => '/Volumes/Data/Base/WCComponent/WCXLSXDataController/WCXLSXDataController.podspec'
    pod 'WCABDataController'#, :path => '/Volumes/Data/Base/WCComponent/WCABDataController/WCABDataController.podspec'
    
    #view controllers
    pod 'PPAboutViewController'#, :path => '/Volumes/Data/Base/Controller/PPAboutViewController/PPAboutViewController.podspec'
    pod 'PPMessageComposeViewController'#, :path => '/Volumes/Data/Base/Controller/PPMessageComposeViewController/PPMessageComposeViewController.podspec'
    pod 'PPMailComposeViewController'#, :path => '/Volumes/Data/Base/Controller/PPMailComposeViewController/PPMailComposeViewController.podspec'
    pod 'PPScrollTabController'#, :path => '/Volumes/Data/Base/Controller/PPScrollTabController/PPScrollTabController.podspec'
    pod 'PPSelectItemViewController'#, :path => '/Volumes/Data/Base/Controller/PPSelectItemViewController/PPSelectItemViewController.podspec'
    pod 'PPSideMenuController'#, :path => '/Volumes/Data/Base/Controller/PPSideMenuController/PPSideMenuController.podspec'
#    pod 'PPViewController'
#    pod 'PPWebView'#, :path => '/Volumes/Data/Base/View/PPWebView/PPWebView.podspec'
    pod 'PPWebViewController/Dictionary'#, :path => '/Volumes/Data/Base/Controller/PPWebViewController/PPWebViewController.podspec'
    pod 'WCCaptureViewController'#, :path => '/Volumes/Data/Base/WCComponent/WCCaptureViewController/WCCaptureViewController.podspec'
    pod 'WCMapViewController'#, :path => '/Volumes/Data/Base/WCComponent/WCMapViewController/WCMapViewController.podspec'
    pod 'WCMultiSelectViewController'
    pod 'WCReorderViewController'#, :path => '/Volumes/Data/Base/WCComponent/WCReorderViewController/WCReorderViewController.podspec'
    pod 'WCSearchViewController'#, :path => '/Volumes/Data/Base/WCComponent/WCSearchViewController/WCSearchViewController.podspec'
    pod 'WCAdvancedSearchViewController'#, :path => '/Volumes/Data/Base/WCComponent/WCAdvancedSearchViewController/WCAdvancedSearchViewController.podspec'
    pod 'WCTableViewController'#, :path => '/Volumes/Data/Base/WCComponent/WCTableViewController/WCTableViewController.podspec'
    pod 'PPStorageSpaceSelectViewController'#, :path => '/Volumes/Data/Base/Controller/PPStorageSpaceSelectViewController/PPStorageSpaceSelectViewController.podspec'
    pod 'PPStorageFileSelectViewController'#, :path => '/Volumes/Data/Base/Controller/PPStorageFileSelectViewController/PPStorageFileSelectViewController.podspec'
    pod_with_debug("WCContactViewController","#{WCContactViewControllerLocalPath}")

    #Flow Controller
    pod 'PPDataConvertFlowController'#, :path => '/Volumes/Data/Base/Controller/PPDataConvertFlowController/PPDataConvertFlowController.podspec'
    pod 'PPSplitViewController'#, :path => '/Volumes/Data/Base/Controller/PPSplitViewController/PPSplitViewController.podspec'
    pod 'WCImportFlowController'#, :path => '/Volumes/Data/Base/WCComponent/WCImportFlowController/WCImportFlowController.podspec'
    pod 'WCShareFlowController'#, :path => '/Volumes/Data/Base/WCComponent/WCShareFlowController/WCShareFlowController.podspec'
    pod 'WCABItemSelectFlowController'#, :path => '/Volumes/Data/Base/WCComponent/WCABItemSelectFlowController/WCABItemSelectFlowController.podspec'
    pod_with_debug("WCExportFlowController","#{WCExportFlowControllerLocalPath}")
    pod_with_debug("WCBackupRestoreFlowController","#{WCBackupRestoreFlowControllerLocalPath}")
    pod_with_debug("WCContactAccessFlowController","#{WCContactAccessFlowControllerLocalPath}")
    pod_with_debug("WCNewCardFlowController","#{WCNewCardFlowControllerLocalPath}")

    # cover flow
    pod 'WCCoverFlowViewController'#, :path=>'/Volumes/Data/Base/WCComponent/WCCoverFlowViewController/WCCoverFlowViewController.podspec'
    pod_with_debug("WCCoverFlowController","#{WCCoverFlowControllerLocalPath}")

    pod 'RATreeView', :git => 'https://github.com/mgfjxxiexiaolong/RATreeView'
    ######################################
    ##for lite
#    pod 'PPRegisterController/WorldCardMobileModel'
#    pod 'PPHamiPassController'
#    pod 'PPRegisterViewController'
    
    #####################################
    #for crashlytics
    # Add the pod for Firebase Crashlytics
#    pod 'Firebase/Crashlytics'
#    
#    # Recommended: Add the Firebase pod for Google Analytics
#    pod 'Firebase/Analytics'
#
    #dynamic links
    pod 'Firebase/DynamicLinks',:modular_headers => true

    # The following Swift pods cannot yet be integrated as static libraries:
    # 以下要加",:modular_headers => true"
    pod 'GoogleUtilities',:modular_headers => true
    pod 'GoogleDataTransport',:modular_headers => true
    pod 'FirebaseCore',:modular_headers => true
    pod 'FirebaseInstallations',:modular_headers => true
    pod 'FirebaseCoreExtension',:modular_headers => true
    pod 'FirebaseSessions',:modular_headers => true
    pod 'nanopb',:modular_headers => true
    
#    # When user's location is at China, use Bugly instead of Firebase
#    pod 'Bugly'
end


# post_install
# cocoapods 2.0之後，不能放在 def block中，要獨立在外面
post_install do |installer|
    
    #ignore comment warnings when release build
    installer.pods_project.build_configurations.each do |config|
        #        if config.name.include?("Release")
        config.build_settings['CLANG_WARN_DOCUMENTATION_COMMENTS'] = 'NO'
        #        end
    end
    
    # 在pods project的preprocessor define加上PPLogMacro才可以打開log
    installer.pods_project.build_configurations.each do |config|
#        if config.name.include?("Debug")
            config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
            config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'PPLogMacro'
#        end
    end
    
    installer.pods_project.targets.each do |target|
        # SSL連線，允許使用不合法的憑証
        if target.name.include?("RestKit")
            target.build_configurations.each do |config|
                definitions = '$(inherited)'
                definitions += ' _AFRKNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_'
                config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = definitions
            end
        end
    end
    
    # GTMSessionFetcher要開啟log功能
    installer.pods_project.targets.each do |target|
        if target.name.include?("GTMSessionFetcher")
            target.build_configurations.each do |config|
                definitions = '$(inherited)'
                definitions += ' STRIP_GTM_FETCH_LOGGING=0'
                config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = definitions
            end
        end
    end
end

#####################################
# set linked target
target "WorldCardTeam" do
    wc_pods
    wct_pods
end

target "WorldCardTeam_TSMC" do
  wc_pods
  wct_pods
end

