This commit is contained in:
DDIsFriend
2023-09-06 15:17:24 +08:00
parent 177b77c044
commit 7fda9d2650
37 changed files with 9331 additions and 8117 deletions

View File

@@ -7,75 +7,124 @@
import Foundation
import AVFoundation
//import DDLogKit_Private
public let DDAS = DDAudioService.default
open class DDAudioService {
public static let `default` = DDAudioService()
private var items : [DDAudioServiceItem] = []
private var audioSoundID : SystemSoundID = 0
private var vibrateSoundID : SystemSoundID = 0
private var audioNumberOfLoops : Int = 0
private var vibrateNumberOfLoops : Int = 0
private var endSound : Bool = false
private var endVibrate : Bool = false
public func playSoundWithVibrate(audioUrl:URL,numberOfLoops:Int = 1) {
playVibrate(numberOfLoops: -1)
playSound(audioUrl: audioUrl,numberOfLoops: numberOfLoops) {[weak self] in
self?.stopSound()
self?.stopVibrate()
public func playSoundWithVibrate(audioUrl:URL,name:String,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
let item = DDAudioServiceItem(name: name)
items.append(item)
item.playSoundWithVibrate(audioUrl: audioUrl,numberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
}
public func playSound(audioUrl:URL,name:String,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
let item = DDAudioServiceItem(name: name)
items.append(item)
item.playSound(audioUrl: audioUrl,numberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
}
public func playVibrate(name:String,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
let item = DDAudioServiceItem(name: name)
items.append(item)
item.playVibrate(numberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
}
public func stopSoundWithVibrate(name:String) {
if items.contains(where: { item in
item.name == name
}) == true {
if let index = items.firstIndex(where: { item in
item.name == name
}) {
let item = items[index]
item.stopSoundWithVibrate {[weak self] in
self?.items.remove(at: index)
}
}
}
}
public func stopSoundWithVibrate() {
stopSound()
stopVibrate()
public func stopSound(name:String) {
if items.contains(where: { item in
item.name == name
}) == true {
if let index = items.firstIndex(where: { item in
item.name == name
}) {
let item = items[index]
item.stopSound {[weak self] in
self?.items.remove(at: index)
}
}
}
}
public func playSound(audioUrl:URL,numberOfLoops:Int = 1, endCompletionBlock: (() -> Void)? = nil) {
self.audioNumberOfLoops = numberOfLoops
public func stopVibrate(name:String) {
if items.contains(where: { item in
item.name == name
}) == true {
if let index = items.firstIndex(where: { item in
item.name == name
}) {
let item = items[index]
item.stopVibrate {[weak self] in
self?.items.remove(at: index)
}
}
}
}
}
open class DDAudioServiceItem {
fileprivate var name : String
private var audioSoundID : SystemSoundID = 0
private var vibrateSoundID : SystemSoundID = 0
private var endSound : Bool = false
private var endVibrate : Bool = false
private var stopSoundCompletionHander : (() -> Void)?
private var stopVibrateCompletionHander : (() -> Void)?
init(name:String) {
self.name = name
}
public func playSoundWithVibrate(audioUrl:URL,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0, eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
playVibrate(numberOfLoops: -1)
playSound(audioUrl: audioUrl,numberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock) {[weak self] in
self?.stopVibrate {
if endCompletionBlock != nil {
endCompletionBlock!()
}
}
}
}
public func stopSoundWithVibrate(completionHander:@escaping (() -> Void)) {
stopSound {[weak self] in
self?.stopVibrate {
completionHander()
}
}
}
public func playSound(audioUrl:URL,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
var audioSoundID:SystemSoundID = 0
AudioServicesCreateSystemSoundID(audioUrl as CFURL, &audioSoundID)
self.audioSoundID = audioSoundID
DispatchQueue.global().async {[weak self] in
self?.playSound(audioSoundID: audioSoundID,leftNumberOfLoops: numberOfLoops,endCompletionBlock: {
if endCompletionBlock != nil {
endCompletionBlock!()
}
})
self?.playSound(audioSoundID: audioSoundID,leftNumberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
}
}
public func playVibrate(numberOfLoops:Int = 1, endCompletionBlock: (() -> Void)? = nil) {
self.audioNumberOfLoops = numberOfLoops
var vibrateSoundID : SystemSoundID = 0
vibrateSoundID = kSystemSoundID_Vibrate
self.vibrateSoundID = vibrateSoundID
DispatchQueue.global().async {[weak self] in
self?.playVibrate(vibrateSoundID: vibrateSoundID, leftNumberOfLoops: numberOfLoops,endCompletionBlock: {
if endCompletionBlock != nil {
endCompletionBlock!()
}
})
}
}
public func stopSound() {
endSound = true
AudioServicesDisposeSystemSoundID(audioSoundID)
}
public func stopVibrate() {
endVibrate = true
AudioServicesDisposeSystemSoundID(vibrateSoundID)
}
private func playSound(audioSoundID:SystemSoundID,leftNumberOfLoops:Int,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil, endCompletionBlock: (() -> Void)? = nil) {
private func playSound(audioSoundID:SystemSoundID,leftNumberOfLoops:Int,timeInterval:TimeInterval,eachLoopCompletionBlock: (() -> Void)?, endCompletionBlock: (() -> Void)?) {
var changeLeftNumberOfLoops = leftNumberOfLoops
AudioServicesPlaySystemSoundWithCompletion(audioSoundID) {[weak self] in
// loop
if eachLoopCompletionBlock != nil {
eachLoopCompletionBlock!()
}
@@ -83,22 +132,61 @@ open class DDAudioService {
// 0
changeLeftNumberOfLoops-=1
if changeLeftNumberOfLoops == 0 || self?.endSound == true {
self?.stopSound()
if endCompletionBlock != nil {
//
AudioServicesDisposeSystemSoundID(audioSoundID)
// DDLog(message: "name = \(self?.name ?? "")sound")
//
self?.audioSoundID = 0
self?.endSound = false
// stop
if self?.stopSoundCompletionHander != nil {
self?.stopSoundCompletionHander!()
}else if endCompletionBlock != nil {
// playloops
endCompletionBlock!()
}
print("sound播放结束")
}else{
DispatchQueue.global().asyncAfter(deadline: .now() + timeInterval, execute: {
self?.playSound(audioSoundID: audioSoundID, leftNumberOfLoops: changeLeftNumberOfLoops,timeInterval: timeInterval)
self?.playSound(audioSoundID: audioSoundID, leftNumberOfLoops: changeLeftNumberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
})
}
}
}
private func playVibrate(vibrateSoundID:SystemSoundID,leftNumberOfLoops:Int,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil, endCompletionBlock: (() -> Void)? = nil) {
public func stopSound(completionHandler:@escaping (() -> Void)) {
stopSoundCompletionHander = completionHandler
//
let status = AudioServicesDisposeSystemSoundID(audioSoundID)
// DDLog(message: "sound dispose status = \(status)")
if status != 0 {
//
endSound = true
}else {
audioSoundID = 0
// DDLog(message: "name = \(name)sound")
completionHandler()
}
}
public func playVibrate(numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
self.endVibrate = false
var vibrateSoundID : SystemSoundID = 0
vibrateSoundID = kSystemSoundID_Vibrate
self.vibrateSoundID = vibrateSoundID
DispatchQueue.global().async {[weak self] in
self?.playVibrate(vibrateSoundID: vibrateSoundID, leftNumberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
}
}
private func playVibrate(vibrateSoundID:SystemSoundID,leftNumberOfLoops:Int,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)?, endCompletionBlock: (() -> Void)?) {
var changeLeftNumberOfLoops = leftNumberOfLoops
AudioServicesPlayAlertSoundWithCompletion(vibrateSoundID) {[weak self] in
// loop
if eachLoopCompletionBlock != nil {
eachLoopCompletionBlock!()
}
@@ -106,17 +194,43 @@ open class DDAudioService {
// 0
changeLeftNumberOfLoops-=1
if changeLeftNumberOfLoops == 0 || self?.endVibrate == true {
self?.stopVibrate()
if endCompletionBlock != nil {
//
AudioServicesDisposeSystemSoundID(vibrateSoundID)
// DDLog(message: "name = \(self?.name ?? "")vibrate")
//
self?.vibrateSoundID = 0
self?.endVibrate = false
// stop
if self?.stopVibrateCompletionHander != nil {
self?.stopVibrateCompletionHander!()
}else if endCompletionBlock != nil {
// playloops
endCompletionBlock!()
}
print("vibrate播放结束")
}else{
DispatchQueue.global().asyncAfter(deadline: .now() + timeInterval, execute: {
self?.playVibrate(vibrateSoundID: vibrateSoundID, leftNumberOfLoops: changeLeftNumberOfLoops,timeInterval: timeInterval)
self?.playVibrate(vibrateSoundID: vibrateSoundID, leftNumberOfLoops: changeLeftNumberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
})
}
}
}
public func stopVibrate(completionHandler:@escaping (() -> Void)) {
stopVibrateCompletionHander = completionHandler
//
let status = AudioServicesDisposeSystemSoundID(vibrateSoundID)
// DDLog(message: "vibrate dispose status = \(status)")
// if status != 0 {
// //
endVibrate = true
// }else{
// vibrateSoundID = 0
// DDLog(message: "name = \(name)vibrate")
// completionHandler()
// }
}
}

View File

@@ -0,0 +1,93 @@
//
// DDSpeechSynthesizer.swift
// DDAudioPlayerKit_Private
//
// Created by on 2023/9/5.
//
import Foundation
import AVFoundation
public let DDSS = DDSpeechSynthesizer.default
open class DDSpeechSynthesizer {
public static let `default` = DDSpeechSynthesizer()
private var items : [DDSpeechSynthesizerItem] = []
public func play(text:String,name:String,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil, endCompletionBlock: (() -> Void)? = nil) {
let item = DDSpeechSynthesizerItem(name: name)
items.append(item)
item.play(text: text,numberOfLoops:numberOfLoops,timeInterval:timeInterval,eachLoopCompletionBlock:eachLoopCompletionBlock,endCompletionBlock:endCompletionBlock)
}
public func stop(name:String) {
if items.contains(where: { item in
item.name == name
}) == true {
if let index = items.firstIndex(where: { item in
item.name == name
}) {
let item = items[index]
item.stop()
items.remove(at: index)
}
}
}
}
class DDSpeechSynthesizerItem: NSObject, AVSpeechSynthesizerDelegate {
private var synthesizer : AVSpeechSynthesizer?
private var utterance : AVSpeechUtterance?
public var name : String
private var numberOfLoops : Int = 0
private var timeInterval : TimeInterval = 0
private var eachLoopCompletionBlock : (() -> Void)?
private var endCompletionBlock : (() -> Void)?
init(name:String) {
self.name = name
}
func play(text:String,numberOfLoops:Int,timeInterval:TimeInterval,eachLoopCompletionBlock: (() -> Void)?, endCompletionBlock: (() -> Void)?) {
self.numberOfLoops = numberOfLoops
self.timeInterval = timeInterval
self.eachLoopCompletionBlock = eachLoopCompletionBlock
self.endCompletionBlock = endCompletionBlock
synthesizer = AVSpeechSynthesizer()
synthesizer?.delegate = self
utterance = AVSpeechUtterance(string: text)
utterance?.voice = AVSpeechSynthesisVoice(language: "zh-Hans")
utterance?.rate = AVSpeechUtteranceDefaultSpeechRate
if let utterance {
synthesizer?.speak(utterance)
}
}
public func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, didFinish utterance: AVSpeechUtterance) {
if eachLoopCompletionBlock != nil {
eachLoopCompletionBlock!()
}
numberOfLoops-=1
if numberOfLoops == 0 {
if endCompletionBlock != nil {
endCompletionBlock!()
}
}else{
DispatchQueue.global().asyncAfter(deadline: .now() + timeInterval, execute: {[weak self] in
if let utterance = self?.utterance {
self?.synthesizer?.speak(utterance)
}
})
}
}
func stop() {
synthesizer?.stopSpeaking(at: .immediate)
synthesizer?.delegate = nil
synthesizer = nil
utterance = nil
}
}

6
Pods/Manifest.lock generated
View File

@@ -23,7 +23,7 @@ PODS:
- BRPickerView/StringPickerView (2.8.1):
- BRPickerView/Base
- CocoaDebug (1.7.7)
- DDAudioPlayerKit_Private (0.1.0)
- DDAudioPlayerKit_Private (0.1.3)
- DDAutoUIKit_Private (0.1.3)
- DDBasicControlsKit_Private/DDBaseAnimation/DDTransitionAnimation (0.3.2)
- DDBasicControlsKit_Private/DDBaseAttributedString (0.3.2):
@@ -374,7 +374,7 @@ SPEC CHECKSUMS:
AMapTrack-NO-IDFA: 7109cf1867f5d6c407c8191492b1f73101e1682e
BRPickerView: 2531a2d4d0fea0b57a1c738de215af0f88863a2f
CocoaDebug: b38d31464b91a9775928f8667d114db07b136565
DDAudioPlayerKit_Private: b18c9b8b4ee2d421227895edac27b2a799fcdb0d
DDAudioPlayerKit_Private: b727c241c5cd06f09d64bb2b3d5682b6e9eb8165
DDAutoUIKit_Private: 188066b4d13c8096676ddd9efa15974238f6dca3
DDBasicControlsKit_Private: d3aebc505eaac273a8f6b85238662ad6e64a1a08
DDCategoryKit_Private: 19d515c43d5e9c4ee80b8ccf3fb8ab40368b8668
@@ -404,6 +404,6 @@ SPEC CHECKSUMS:
SwiftEntryKit: 61b5fa36f34a97dd8013e48a7345bc4c4720be9a
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
PODFILE CHECKSUM: 4a6b876956d7d3482deecd88ffe2bf250614e00b
PODFILE CHECKSUM: 8b73e7b8269156e4fa26d46c40f768817fa76230
COCOAPODS: 1.11.3

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,4 @@
APPLICATION_EXTENSION_API_ONLY = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64

View File

@@ -1,3 +1,4 @@
APPLICATION_EXTENSION_API_ONLY = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64

View File

@@ -1,6 +1,29 @@
# Acknowledgements
This application makes use of the following third party libraries:
## DDAudioPlayerKit_Private
Copyright (c) 2023 DDIsFriend <DDIsFriend@163.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
## JCore
Copyright jpush.cn

View File

@@ -12,6 +12,35 @@
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright (c) 2023 DDIsFriend &lt;DDIsFriend@163.com&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
</string>
<key>License</key>
<string>MIT</string>
<key>Title</key>
<string>DDAudioPlayerKit_Private</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright jpush.cn</string>

View File

@@ -0,0 +1,16 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double Pods_OrderSchedulingNotificationServiceVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_OrderSchedulingNotificationServiceVersionString[];

View File

@@ -2,11 +2,14 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush" "${PODS_ROOT}/JPushExtension"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/CocoaDebug" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDTimerKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
OTHER_LDFLAGS = $(inherited) -ObjC -l"JCore" -l"JPush" -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension" /usr/lib/swift
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap"
OTHER_LDFLAGS = $(inherited) -ObjC -l"DDAudioPlayerKit_Private" -l"JCore" -l"JPush" -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private"
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

View File

@@ -0,0 +1,6 @@
module Pods_OrderSchedulingNotificationService {
umbrella header "Pods-OrderSchedulingNotificationService-umbrella.h"
export *
module * { export * }
}

View File

@@ -2,11 +2,14 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush" "${PODS_ROOT}/JPushExtension"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/CocoaDebug" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDTimerKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
OTHER_LDFLAGS = $(inherited) -ObjC -l"JCore" -l"JPush" -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension" /usr/lib/swift
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap"
OTHER_LDFLAGS = $(inherited) -ObjC -l"DDAudioPlayerKit_Private" -l"JCore" -l"JPush" -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private"
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES