1.1.6 首页charts插入

This commit is contained in:
Mr.zhou 2024-08-06 16:47:20 +08:00
parent 724e8c2c9f
commit a5f6bbdc91
14 changed files with 152 additions and 287 deletions

View File

@ -29,4 +29,6 @@ pod "DownloadButton"
pod 'Tiercel' pod 'Tiercel'
#文本跑马灯 #文本跑马灯
pod 'MarqueeLabel' pod 'MarqueeLabel'
#广告组
end end

View File

@ -57,6 +57,6 @@ SPEC CHECKSUMS:
SwiftDate: 72d28954e8e1c6c1c0f917ccc8005e4f83c7d4b2 SwiftDate: 72d28954e8e1c6c1c0f917ccc8005e4f83c7d4b2
Tiercel: c0a73f876a72800333b15f4e7e48791f4ad21e90 Tiercel: c0a73f876a72800333b15f4e7e48791f4ad21e90
PODFILE CHECKSUM: 0dbe586b5221e955924da76b16705e9638055ea1 PODFILE CHECKSUM: a6a950e98b8cead689397a03a4720306543eb266
COCOAPODS: 1.15.2 COCOAPODS: 1.15.2

2
Pods/Manifest.lock generated
View File

@ -57,6 +57,6 @@ SPEC CHECKSUMS:
SwiftDate: 72d28954e8e1c6c1c0f917ccc8005e4f83c7d4b2 SwiftDate: 72d28954e8e1c6c1c0f917ccc8005e4f83c7d4b2
Tiercel: c0a73f876a72800333b15f4e7e48791f4ad21e90 Tiercel: c0a73f876a72800333b15f4e7e48791f4ad21e90
PODFILE CHECKSUM: 0dbe586b5221e955924da76b16705e9638055ea1 PODFILE CHECKSUM: a6a950e98b8cead689397a03a4720306543eb266
COCOAPODS: 1.15.2 COCOAPODS: 1.15.2

View File

@ -1,3 +0,0 @@
${PODS_ROOT}/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-resources.sh
${PODS_CONFIGURATION_BUILD_DIR}/Google-Mobile-Ads-SDK/GoogleMobileAdsResources.bundle
${PODS_CONFIGURATION_BUILD_DIR}/GoogleUserMessagingPlatform/UserMessagingPlatformResources.bundle

View File

@ -1,2 +0,0 @@
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleMobileAdsResources.bundle
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/UserMessagingPlatformResources.bundle

View File

@ -1,3 +0,0 @@
${PODS_ROOT}/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-resources.sh
${PODS_CONFIGURATION_BUILD_DIR}/Google-Mobile-Ads-SDK/GoogleMobileAdsResources.bundle
${PODS_CONFIGURATION_BUILD_DIR}/GoogleUserMessagingPlatform/UserMessagingPlatformResources.bundle

View File

@ -1,2 +0,0 @@
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleMobileAdsResources.bundle
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/UserMessagingPlatformResources.bundle

View File

@ -1,131 +0,0 @@
#!/bin/sh
set -e
set -u
set -o pipefail
function on_error {
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
}
trap 'on_error $LINENO' ERR
if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
# If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
# resources to, so exit 0 (signalling the script phase was successful).
exit 0
fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
> "$RESOURCES_TO_COPY"
XCASSET_FILES=()
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
case "${TARGETED_DEVICE_FAMILY:-}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
1)
TARGET_DEVICE_ARGS="--target-device iphone"
;;
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
3)
TARGET_DEVICE_ARGS="--target-device tv"
;;
4)
TARGET_DEVICE_ARGS="--target-device watch"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
install_resource()
{
if [[ "$1" = /* ]] ; then
RESOURCE_PATH="$1"
else
RESOURCE_PATH="${PODS_ROOT}/$1"
fi
if [[ ! -e "$RESOURCE_PATH" ]] ; then
cat << EOM
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
EOM
exit 1
fi
case $RESOURCE_PATH in
*.storyboard)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "$RESOURCE_PATH" || true
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_resource "${PODS_CONFIGURATION_BUILD_DIR}/Google-Mobile-Ads-SDK/GoogleMobileAdsResources.bundle"
install_resource "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUserMessagingPlatform/UserMessagingPlatformResources.bundle"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_resource "${PODS_CONFIGURATION_BUILD_DIR}/Google-Mobile-Ads-SDK/GoogleMobileAdsResources.bundle"
install_resource "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUserMessagingPlatform/UserMessagingPlatformResources.bundle"
fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi
rm -f "$RESOURCES_TO_COPY"
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
then
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
OTHER_XCASSETS=$(find -L "$PWD" -iname "*.xcassets" -type d)
while read line; do
if [[ $line != "${PODS_ROOT}*" ]]; then
XCASSET_FILES+=("$line")
fi
done <<<"$OTHER_XCASSETS"
if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
else
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist"
fi
fi

View File

@ -7,8 +7,7 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
46C4D5B84AF3CA6292152C70 /* Pods_relax_offline_mp3_music.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DB1E9160CFEC3A0E35F11BF /* Pods_relax_offline_mp3_music.framework */; }; 82F33EC0D64393B7AAD72A45 /* Pods_relax_offline_mp3_music.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10D55D4705A4D9E0F0805527 /* Pods_relax_offline_mp3_music.framework */; };
CB000F442C12AD2300B0FC0A /* GoogleMobileAds in Frameworks */ = {isa = PBXBuildFile; productRef = CB000F432C12AD2300B0FC0A /* GoogleMobileAds */; };
CB0033F02C290AC200B18FD3 /* MPPositive_CustomPlayListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB0033EF2C290AC200B18FD3 /* MPPositive_CustomPlayListViewModel.swift */; }; CB0033F02C290AC200B18FD3 /* MPPositive_CustomPlayListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB0033EF2C290AC200B18FD3 /* MPPositive_CustomPlayListViewModel.swift */; };
CB0033F22C291C7700B18FD3 /* MPPositive_CollectionListsShowTypeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB0033F12C291C7700B18FD3 /* MPPositive_CollectionListsShowTypeView.swift */; }; CB0033F22C291C7700B18FD3 /* MPPositive_CollectionListsShowTypeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB0033F12C291C7700B18FD3 /* MPPositive_CollectionListsShowTypeView.swift */; };
CB0033F42C294DBF00B18FD3 /* MPPositive_CustomPlayListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB0033F32C294DBF00B18FD3 /* MPPositive_CustomPlayListViewController.swift */; }; CB0033F42C294DBF00B18FD3 /* MPPositive_CustomPlayListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB0033F32C294DBF00B18FD3 /* MPPositive_CustomPlayListViewController.swift */; };
@ -26,7 +25,6 @@
CB2CAAD42C59DC1100EF691D /* MPPositive_TrashListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB2CAAD32C59DC1100EF691D /* MPPositive_TrashListModel.swift */; }; CB2CAAD42C59DC1100EF691D /* MPPositive_TrashListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB2CAAD32C59DC1100EF691D /* MPPositive_TrashListModel.swift */; };
CB2CAAD72C5A1AC500EF691D /* MP_IAPViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = CB2CAAD62C5A1AC500EF691D /* MP_IAPViewController.xib */; }; CB2CAAD72C5A1AC500EF691D /* MP_IAPViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = CB2CAAD62C5A1AC500EF691D /* MP_IAPViewController.xib */; };
CB2CAAD82C5A1AC500EF691D /* MP_IAPViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB2CAAD52C5A1AC500EF691D /* MP_IAPViewController.swift */; }; CB2CAAD82C5A1AC500EF691D /* MP_IAPViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB2CAAD52C5A1AC500EF691D /* MP_IAPViewController.swift */; };
CB4FA4D92C5CDC4A0027C949 /* relax.offline.mp3.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = CB4FA4D72C5CDC4A0027C949 /* relax.offline.mp3.xcdatamodeld */; };
CB6EEB8E2C5DFE6100AEC414 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB6EEB8D2C5DFE6100AEC414 /* StoreKit.framework */; }; CB6EEB8E2C5DFE6100AEC414 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB6EEB8D2C5DFE6100AEC414 /* StoreKit.framework */; };
CB7FC5422C2AA01F00292A43 /* FacebookAEM in Frameworks */ = {isa = PBXBuildFile; productRef = CB7FC5412C2AA01F00292A43 /* FacebookAEM */; }; CB7FC5422C2AA01F00292A43 /* FacebookAEM in Frameworks */ = {isa = PBXBuildFile; productRef = CB7FC5412C2AA01F00292A43 /* FacebookAEM */; };
CB7FC5442C2AA01F00292A43 /* FacebookBasics in Frameworks */ = {isa = PBXBuildFile; productRef = CB7FC5432C2AA01F00292A43 /* FacebookBasics */; }; CB7FC5442C2AA01F00292A43 /* FacebookBasics in Frameworks */ = {isa = PBXBuildFile; productRef = CB7FC5432C2AA01F00292A43 /* FacebookBasics */; };
@ -255,12 +253,15 @@
CBDBDDF22C40C40900767F0B /* MPPositive_GridLoadViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBDBDDF12C40C40900767F0B /* MPPositive_GridLoadViewModel.swift */; }; CBDBDDF22C40C40900767F0B /* MPPositive_GridLoadViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBDBDDF12C40C40900767F0B /* MPPositive_GridLoadViewModel.swift */; };
CBDBDDF42C40D03F00767F0B /* MPPositive_SearchGrideCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBDBDDF32C40D03F00767F0B /* MPPositive_SearchGrideCollectionViewCell.swift */; }; CBDBDDF42C40D03F00767F0B /* MPPositive_SearchGrideCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBDBDDF32C40D03F00767F0B /* MPPositive_SearchGrideCollectionViewCell.swift */; };
CBDBDDF62C40FFC600767F0B /* MPPositive_GrideMoodViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBDBDDF52C40FFC600767F0B /* MPPositive_GrideMoodViewController.swift */; }; CBDBDDF62C40FFC600767F0B /* MPPositive_GrideMoodViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBDBDDF52C40FFC600767F0B /* MPPositive_GrideMoodViewController.swift */; };
CBDC4A292C61B88300960649 /* relax.offline.mp3.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = CBDC4A272C61B88300960649 /* relax.offline.mp3.xcdatamodeld */; };
CBDC4A402C6219EF00960649 /* GoogleMobileAds in Frameworks */ = {isa = PBXBuildFile; productRef = CBDC4A3F2C6219EF00960649 /* GoogleMobileAds */; };
CBF3AEDA2C255B1200947AFC /* MPPositive_PlayListsShowTypeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBF3AED92C255B1200947AFC /* MPPositive_PlayListsShowTypeView.swift */; }; CBF3AEDA2C255B1200947AFC /* MPPositive_PlayListsShowTypeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBF3AED92C255B1200947AFC /* MPPositive_PlayListsShowTypeView.swift */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
5D0F6D7469D3B1668D7B52D9 /* Pods-relax.offline.mp3.music.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-relax.offline.mp3.music.release.xcconfig"; path = "Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.release.xcconfig"; sourceTree = "<group>"; }; 10D55D4705A4D9E0F0805527 /* Pods_relax_offline_mp3_music.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_relax_offline_mp3_music.framework; sourceTree = BUILT_PRODUCTS_DIR; };
8DB1E9160CFEC3A0E35F11BF /* Pods_relax_offline_mp3_music.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_relax_offline_mp3_music.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4CEDA702C32CE777A8364913 /* Pods-relax.offline.mp3.music.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-relax.offline.mp3.music.debug.xcconfig"; path = "Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.debug.xcconfig"; sourceTree = "<group>"; };
52181392A4B967D8F80363A1 /* Pods-relax.offline.mp3.music.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-relax.offline.mp3.music.release.xcconfig"; path = "Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.release.xcconfig"; sourceTree = "<group>"; };
CB0033EF2C290AC200B18FD3 /* MPPositive_CustomPlayListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_CustomPlayListViewModel.swift; sourceTree = "<group>"; }; CB0033EF2C290AC200B18FD3 /* MPPositive_CustomPlayListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_CustomPlayListViewModel.swift; sourceTree = "<group>"; };
CB0033F12C291C7700B18FD3 /* MPPositive_CollectionListsShowTypeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_CollectionListsShowTypeView.swift; sourceTree = "<group>"; }; CB0033F12C291C7700B18FD3 /* MPPositive_CollectionListsShowTypeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_CollectionListsShowTypeView.swift; sourceTree = "<group>"; };
CB0033F32C294DBF00B18FD3 /* MPPositive_CustomPlayListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_CustomPlayListViewController.swift; sourceTree = "<group>"; }; CB0033F32C294DBF00B18FD3 /* MPPositive_CustomPlayListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_CustomPlayListViewController.swift; sourceTree = "<group>"; };
@ -281,7 +282,6 @@
CB2CAAD32C59DC1100EF691D /* MPPositive_TrashListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_TrashListModel.swift; sourceTree = "<group>"; }; CB2CAAD32C59DC1100EF691D /* MPPositive_TrashListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_TrashListModel.swift; sourceTree = "<group>"; };
CB2CAAD52C5A1AC500EF691D /* MP_IAPViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MP_IAPViewController.swift; sourceTree = "<group>"; }; CB2CAAD52C5A1AC500EF691D /* MP_IAPViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MP_IAPViewController.swift; sourceTree = "<group>"; };
CB2CAAD62C5A1AC500EF691D /* MP_IAPViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MP_IAPViewController.xib; sourceTree = "<group>"; }; CB2CAAD62C5A1AC500EF691D /* MP_IAPViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MP_IAPViewController.xib; sourceTree = "<group>"; };
CB4FA4D82C5CDC4A0027C949 /* MusicPlayer.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = MusicPlayer.xcdatamodel; sourceTree = "<group>"; };
CB6EEB8D2C5DFE6100AEC414 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; CB6EEB8D2C5DFE6100AEC414 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
CB7FC5472C2AC25C00292A43 /* MPPositive_CenterListSearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_CenterListSearchView.swift; sourceTree = "<group>"; }; CB7FC5472C2AC25C00292A43 /* MPPositive_CenterListSearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_CenterListSearchView.swift; sourceTree = "<group>"; };
CBAFC9F22C0A10500054500E /* MP_BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MP_BaseViewController.swift; sourceTree = "<group>"; }; CBAFC9F22C0A10500054500E /* MP_BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MP_BaseViewController.swift; sourceTree = "<group>"; };
@ -506,8 +506,8 @@
CBDBDDF12C40C40900767F0B /* MPPositive_GridLoadViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_GridLoadViewModel.swift; sourceTree = "<group>"; }; CBDBDDF12C40C40900767F0B /* MPPositive_GridLoadViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_GridLoadViewModel.swift; sourceTree = "<group>"; };
CBDBDDF32C40D03F00767F0B /* MPPositive_SearchGrideCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_SearchGrideCollectionViewCell.swift; sourceTree = "<group>"; }; CBDBDDF32C40D03F00767F0B /* MPPositive_SearchGrideCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_SearchGrideCollectionViewCell.swift; sourceTree = "<group>"; };
CBDBDDF52C40FFC600767F0B /* MPPositive_GrideMoodViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_GrideMoodViewController.swift; sourceTree = "<group>"; }; CBDBDDF52C40FFC600767F0B /* MPPositive_GrideMoodViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_GrideMoodViewController.swift; sourceTree = "<group>"; };
CBDC4A282C61B88300960649 /* MusicPlayer.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = MusicPlayer.xcdatamodel; sourceTree = "<group>"; };
CBF3AED92C255B1200947AFC /* MPPositive_PlayListsShowTypeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_PlayListsShowTypeView.swift; sourceTree = "<group>"; }; CBF3AED92C255B1200947AFC /* MPPositive_PlayListsShowTypeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPPositive_PlayListsShowTypeView.swift; sourceTree = "<group>"; };
EE70E1FE424F9A64CCD389DD /* Pods-relax.offline.mp3.music.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-relax.offline.mp3.music.debug.xcconfig"; path = "Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -517,14 +517,14 @@
files = ( files = (
CB7FC5442C2AA01F00292A43 /* FacebookBasics in Frameworks */, CB7FC5442C2AA01F00292A43 /* FacebookBasics in Frameworks */,
CB7FC5422C2AA01F00292A43 /* FacebookAEM in Frameworks */, CB7FC5422C2AA01F00292A43 /* FacebookAEM in Frameworks */,
CBDC4A402C6219EF00960649 /* GoogleMobileAds in Frameworks */,
CBAFCBAD2C0A10DA0054500E /* FirebaseCrashlytics in Frameworks */, CBAFCBAD2C0A10DA0054500E /* FirebaseCrashlytics in Frameworks */,
CBD4570D2C2EC38400CE766D /* AppTrackingTransparency.framework in Frameworks */, CBD4570D2C2EC38400CE766D /* AppTrackingTransparency.framework in Frameworks */,
CBAFCBAB2C0A10DA0054500E /* FirebaseAnalytics in Frameworks */, CBAFCBAB2C0A10DA0054500E /* FirebaseAnalytics in Frameworks */,
CB000F442C12AD2300B0FC0A /* GoogleMobileAds in Frameworks */,
46C4D5B84AF3CA6292152C70 /* Pods_relax_offline_mp3_music.framework in Frameworks */,
CB6EEB8E2C5DFE6100AEC414 /* StoreKit.framework in Frameworks */, CB6EEB8E2C5DFE6100AEC414 /* StoreKit.framework in Frameworks */,
CBAFCBAF2C0A10DA0054500E /* FirebaseRemoteConfig in Frameworks */, CBAFCBAF2C0A10DA0054500E /* FirebaseRemoteConfig in Frameworks */,
CB7FC5462C2AA01F00292A43 /* FacebookCore in Frameworks */, CB7FC5462C2AA01F00292A43 /* FacebookCore in Frameworks */,
82F33EC0D64393B7AAD72A45 /* Pods_relax_offline_mp3_music.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -536,7 +536,7 @@
children = ( children = (
CB6EEB8D2C5DFE6100AEC414 /* StoreKit.framework */, CB6EEB8D2C5DFE6100AEC414 /* StoreKit.framework */,
CBD4570C2C2EC38400CE766D /* AppTrackingTransparency.framework */, CBD4570C2C2EC38400CE766D /* AppTrackingTransparency.framework */,
8DB1E9160CFEC3A0E35F11BF /* Pods_relax_offline_mp3_music.framework */, 10D55D4705A4D9E0F0805527 /* Pods_relax_offline_mp3_music.framework */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
@ -544,8 +544,8 @@
96A499915F2622FAB880DA5B /* Pods */ = { 96A499915F2622FAB880DA5B /* Pods */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
EE70E1FE424F9A64CCD389DD /* Pods-relax.offline.mp3.music.debug.xcconfig */, 4CEDA702C32CE777A8364913 /* Pods-relax.offline.mp3.music.debug.xcconfig */,
5D0F6D7469D3B1668D7B52D9 /* Pods-relax.offline.mp3.music.release.xcconfig */, 52181392A4B967D8F80363A1 /* Pods-relax.offline.mp3.music.release.xcconfig */,
); );
path = Pods; path = Pods;
sourceTree = "<group>"; sourceTree = "<group>";
@ -598,7 +598,7 @@
CBAFC9FB2C0A10500054500E /* DataBase */ = { CBAFC9FB2C0A10500054500E /* DataBase */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
CB4FA4D72C5CDC4A0027C949 /* relax.offline.mp3.xcdatamodeld */, CBDC4A272C61B88300960649 /* relax.offline.mp3.xcdatamodeld */,
); );
path = DataBase; path = DataBase;
sourceTree = "<group>"; sourceTree = "<group>";
@ -1217,12 +1217,12 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = CBC2D6FF2BFDF3D800E17703 /* Build configuration list for PBXNativeTarget "relax.offline.mp3.music" */; buildConfigurationList = CBC2D6FF2BFDF3D800E17703 /* Build configuration list for PBXNativeTarget "relax.offline.mp3.music" */;
buildPhases = ( buildPhases = (
CFEB2643ED606EF96359B55A /* [CP] Check Pods Manifest.lock */, 0445BFB07A72203603FD6CBA /* [CP] Check Pods Manifest.lock */,
CBC2D6E42BFDF3D700E17703 /* Sources */, CBC2D6E42BFDF3D700E17703 /* Sources */,
CBC2D6E52BFDF3D700E17703 /* Frameworks */, CBC2D6E52BFDF3D700E17703 /* Frameworks */,
CBC2D6E62BFDF3D700E17703 /* Resources */, CBC2D6E62BFDF3D700E17703 /* Resources */,
B1C37032482F13ACE7C8DA99 /* [CP] Embed Pods Frameworks */,
0018BD0A2C1050F60066717C /* ShellScript */, 0018BD0A2C1050F60066717C /* ShellScript */,
4F340A16CA4CBC1A386EF0AF /* [CP] Embed Pods Frameworks */,
); );
buildRules = ( buildRules = (
); );
@ -1233,10 +1233,10 @@
CBAFCBAA2C0A10DA0054500E /* FirebaseAnalytics */, CBAFCBAA2C0A10DA0054500E /* FirebaseAnalytics */,
CBAFCBAC2C0A10DA0054500E /* FirebaseCrashlytics */, CBAFCBAC2C0A10DA0054500E /* FirebaseCrashlytics */,
CBAFCBAE2C0A10DA0054500E /* FirebaseRemoteConfig */, CBAFCBAE2C0A10DA0054500E /* FirebaseRemoteConfig */,
CB000F432C12AD2300B0FC0A /* GoogleMobileAds */,
CB7FC5412C2AA01F00292A43 /* FacebookAEM */, CB7FC5412C2AA01F00292A43 /* FacebookAEM */,
CB7FC5432C2AA01F00292A43 /* FacebookBasics */, CB7FC5432C2AA01F00292A43 /* FacebookBasics */,
CB7FC5452C2AA01F00292A43 /* FacebookCore */, CB7FC5452C2AA01F00292A43 /* FacebookCore */,
CBDC4A3F2C6219EF00960649 /* GoogleMobileAds */,
); );
productName = relax.offline.mp3.music; productName = relax.offline.mp3.music;
productReference = CBC2D6E82BFDF3D700E17703 /* relax.offline.mp3.music.app */; productReference = CBC2D6E82BFDF3D700E17703 /* relax.offline.mp3.music.app */;
@ -1268,8 +1268,8 @@
mainGroup = CBC2D6DF2BFDF3D700E17703; mainGroup = CBC2D6DF2BFDF3D700E17703;
packageReferences = ( packageReferences = (
CBAFCBA92C0A10DA0054500E /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */, CBAFCBA92C0A10DA0054500E /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
CB000F422C12AD2300B0FC0A /* XCRemoteSwiftPackageReference "swift-package-manager-google-mobile-ads" */,
CB7FC5402C2AA01F00292A43 /* XCRemoteSwiftPackageReference "facebook-ios-sdk" */, CB7FC5402C2AA01F00292A43 /* XCRemoteSwiftPackageReference "facebook-ios-sdk" */,
CBDC4A3E2C6219EF00960649 /* XCRemoteSwiftPackageReference "swift-package-manager-google-mobile-ads" */,
); );
productRefGroup = CBC2D6E92BFDF3D700E17703 /* Products */; productRefGroup = CBC2D6E92BFDF3D700E17703 /* Products */;
projectDirPath = ""; projectDirPath = "";
@ -1356,24 +1356,7 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run\"\n"; shellScript = "\"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run\"\n";
}; };
B1C37032482F13ACE7C8DA99 /* [CP] Embed Pods Frameworks */ = { 0445BFB07A72203603FD6CBA /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
CFEB2643ED606EF96359B55A /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
@ -1395,6 +1378,23 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
4F340A16CA4CBC1A386EF0AF /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-relax.offline.mp3.music/Pods-relax.offline.mp3.music-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
@ -1411,6 +1411,7 @@
CBD344DE2C3FD8230095F18F /* MPPositive_GridViewModel.swift in Sources */, CBD344DE2C3FD8230095F18F /* MPPositive_GridViewModel.swift in Sources */,
CBAFCB622C0A10500054500E /* MPPositive_HomeListFirstCollectionViewCell.swift in Sources */, CBAFCB622C0A10500054500E /* MPPositive_HomeListFirstCollectionViewCell.swift in Sources */,
CBAFCB112C0A10500054500E /* MP_PlayerManager.swift in Sources */, CBAFCB112C0A10500054500E /* MP_PlayerManager.swift in Sources */,
CBDC4A292C61B88300960649 /* relax.offline.mp3.xcdatamodeld in Sources */,
CBAFCB582C0A10500054500E /* MPPositive_LibraryTableViewCell.swift in Sources */, CBAFCB582C0A10500054500E /* MPPositive_LibraryTableViewCell.swift in Sources */,
CBAFCB222C0A10500054500E /* MPPositive_JsonSearchTypeResults.swift in Sources */, CBAFCB222C0A10500054500E /* MPPositive_JsonSearchTypeResults.swift in Sources */,
CBAFCB492C0A10500054500E /* MPPositive_OfflineSongsViewController.swift in Sources */, CBAFCB492C0A10500054500E /* MPPositive_OfflineSongsViewController.swift in Sources */,
@ -1439,7 +1440,6 @@
CBAFCAF52C0A10500054500E /* CoreDataDelegete.swift in Sources */, CBAFCAF52C0A10500054500E /* CoreDataDelegete.swift in Sources */,
CBAFCB5B2C0A10500054500E /* MPPositive_ArtistShowCollectionViewCell.swift in Sources */, CBAFCB5B2C0A10500054500E /* MPPositive_ArtistShowCollectionViewCell.swift in Sources */,
CBAFCB182C0A10500054500E /* MPPositive_JsonArtistMore.swift in Sources */, CBAFCB182C0A10500054500E /* MPPositive_JsonArtistMore.swift in Sources */,
CB4FA4D92C5CDC4A0027C949 /* relax.offline.mp3.xcdatamodeld in Sources */,
CBAFCB982C0A10500054500E /* MPSideA_CustomTabBarItem.swift in Sources */, CBAFCB982C0A10500054500E /* MPSideA_CustomTabBarItem.swift in Sources */,
CBAFCB5D2C0A10500054500E /* MPPositive_ArtistShowListableViewCell.swift in Sources */, CBAFCB5D2C0A10500054500E /* MPPositive_ArtistShowListableViewCell.swift in Sources */,
CBAFCB7D2C0A10500054500E /* MPSideA_PresentationController.swift in Sources */, CBAFCB7D2C0A10500054500E /* MPSideA_PresentationController.swift in Sources */,
@ -1741,7 +1741,7 @@
}; };
CBC2D7002BFDF3D800E17703 /* Debug */ = { CBC2D7002BFDF3D800E17703 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = EE70E1FE424F9A64CCD389DD /* Pods-relax.offline.mp3.music.debug.xcconfig */; baseConfigurationReference = 4CEDA702C32CE777A8364913 /* Pods-relax.offline.mp3.music.debug.xcconfig */;
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
@ -1787,7 +1787,7 @@
}; };
CBC2D7012BFDF3D800E17703 /* Release */ = { CBC2D7012BFDF3D800E17703 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 5D0F6D7469D3B1668D7B52D9 /* Pods-relax.offline.mp3.music.release.xcconfig */; baseConfigurationReference = 52181392A4B967D8F80363A1 /* Pods-relax.offline.mp3.music.release.xcconfig */;
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
@ -1855,14 +1855,6 @@
/* End XCConfigurationList section */ /* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */ /* Begin XCRemoteSwiftPackageReference section */
CB000F422C12AD2300B0FC0A /* XCRemoteSwiftPackageReference "swift-package-manager-google-mobile-ads" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/googleads/swift-package-manager-google-mobile-ads.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 11.5.0;
};
};
CB7FC5402C2AA01F00292A43 /* XCRemoteSwiftPackageReference "facebook-ios-sdk" */ = { CB7FC5402C2AA01F00292A43 /* XCRemoteSwiftPackageReference "facebook-ios-sdk" */ = {
isa = XCRemoteSwiftPackageReference; isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/facebook/facebook-ios-sdk"; repositoryURL = "https://github.com/facebook/facebook-ios-sdk";
@ -1879,14 +1871,17 @@
minimumVersion = 10.27.0; minimumVersion = 10.27.0;
}; };
}; };
CBDC4A3E2C6219EF00960649 /* XCRemoteSwiftPackageReference "swift-package-manager-google-mobile-ads" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/googleads/swift-package-manager-google-mobile-ads.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 11.7.0;
};
};
/* End XCRemoteSwiftPackageReference section */ /* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */ /* Begin XCSwiftPackageProductDependency section */
CB000F432C12AD2300B0FC0A /* GoogleMobileAds */ = {
isa = XCSwiftPackageProductDependency;
package = CB000F422C12AD2300B0FC0A /* XCRemoteSwiftPackageReference "swift-package-manager-google-mobile-ads" */;
productName = GoogleMobileAds;
};
CB7FC5412C2AA01F00292A43 /* FacebookAEM */ = { CB7FC5412C2AA01F00292A43 /* FacebookAEM */ = {
isa = XCSwiftPackageProductDependency; isa = XCSwiftPackageProductDependency;
package = CB7FC5402C2AA01F00292A43 /* XCRemoteSwiftPackageReference "facebook-ios-sdk" */; package = CB7FC5402C2AA01F00292A43 /* XCRemoteSwiftPackageReference "facebook-ios-sdk" */;
@ -1917,17 +1912,22 @@
package = CBAFCBA92C0A10DA0054500E /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; package = CBAFCBA92C0A10DA0054500E /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
productName = FirebaseRemoteConfig; productName = FirebaseRemoteConfig;
}; };
CBDC4A3F2C6219EF00960649 /* GoogleMobileAds */ = {
isa = XCSwiftPackageProductDependency;
package = CBDC4A3E2C6219EF00960649 /* XCRemoteSwiftPackageReference "swift-package-manager-google-mobile-ads" */;
productName = GoogleMobileAds;
};
/* End XCSwiftPackageProductDependency section */ /* End XCSwiftPackageProductDependency section */
/* Begin XCVersionGroup section */ /* Begin XCVersionGroup section */
CB4FA4D72C5CDC4A0027C949 /* relax.offline.mp3.xcdatamodeld */ = { CBDC4A272C61B88300960649 /* relax.offline.mp3.xcdatamodeld */ = {
isa = XCVersionGroup; isa = XCVersionGroup;
children = ( children = (
CB4FA4D82C5CDC4A0027C949 /* MusicPlayer.xcdatamodel */, CBDC4A282C61B88300960649 /* MusicPlayer.xcdatamodel */,
); );
currentVersion = CB4FA4D82C5CDC4A0027C949 /* MusicPlayer.xcdatamodel */; currentVersion = CBDC4A282C61B88300960649 /* MusicPlayer.xcdatamodel */;
name = relax.offline.mp3.xcdatamodeld; name = relax.offline.mp3.xcdatamodeld;
path = "/Users/zhou/Desktop/纳克斯互娱/relax.offline.mp3.music/relax.offline.mp3.music/MP/Common/DataBase/relax.offline.mp3.xcdatamodeld"; path = "/Users/zhou/Desktop/纳克斯互娱/MusicLax/relax.offline.mp3.music/MP/Common/DataBase/relax.offline.mp3.xcdatamodeld";
sourceTree = "<group>"; sourceTree = "<group>";
versionGroupType = wrapper.xcdatamodel; versionGroupType = wrapper.xcdatamodel;
}; };

View File

@ -123,8 +123,8 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/googleads/swift-package-manager-google-mobile-ads.git", "location" : "https://github.com/googleads/swift-package-manager-google-mobile-ads.git",
"state" : { "state" : {
"revision" : "2e4ae78561feac7192c5d8757464546adebb4c7d", "revision" : "6457f9651bea0d62a548ac63fa9d34aae7d0488e",
"version" : "11.6.0" "version" : "11.7.0"
} }
}, },
{ {

View File

@ -527,6 +527,59 @@ extension MP_NetWorkManager {
} }
} }
} }
///
private func requestChartsUS() {
//browse
let path = header+point+browse
//url
guard let url = URL(string: path) else {
print("Url is Incorrect")
return
}
//
browseQueque?.sync {
[weak self] in
guard let self = self else { return }
let parameters:[String:Any] = [
"browseId": "FEmusic_charts",
"prettyPrint":"false",
"context":[
"client":[
//web
"clientName": "WEB_REMIX",
//访
"clientVersion": clientVersion,
"platform":"MOBILE",
//
"hl":Language_first_local,
//
"gl":locaton ?? ""
]
],
"formData":[
"selectedValues":["US"]
]
]
requestPostChartsUS(url, parameters: parameters)
}
}
///
private func requestPostChartsUS(_ url:URL, parameters:Parameters) {
MPSession.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseDecodable(of: JsonCharts.self) { [weak self] (response) in
guard let self = self else {return}
switch response.result {
case .success(let charts):
if let content = charts.contents?.singleColumnBrowseResultsRenderer?.tabs?.first?.tabRenderer?.content?.sectionListRenderer?.contents {
parsingChartsUS(content)
}
case .failure(let error):
print("Failed to parse browses content")
//
homeError(error: error)
browseQueque = nil
}
}
}
//MARK: - //MARK: -
/// YouTubemusic/browse /// YouTubemusic/browse
/// - Parameters: /// - Parameters:
@ -1625,10 +1678,37 @@ extension MP_NetWorkManager {
return return
} }
// //
self.browseRequestStateBlock!(browses, false)
requestChartsUS()
}
private func parsingChartsUS(_ contents:[JsonCharts.Contents.SingleColumnBrowseResultsRenderer.Tab.TabRenderer.Content.SectionListRenderer.Content]) {
var browses:[MPPositive_BrowseModuleListViewModel] = []
contents.forEach { content in
//content
if let musicCarouselShelfRenderer = content.musicCarouselShelfRenderer {
//
let browse = MPPositive_BrowseModuleListViewModel()
browse.title = musicCarouselShelfRenderer.header?.musicCarouselShelfBasicHeaderRenderer?.title?.runs?.first?.text
//
musicCarouselShelfRenderer.contents?.forEach({ content in
if let musicTwoRowItemRenderer = content.musicTwoRowItemRenderer, let item = parsingMusicTwoRowItemRenderer(musicTwoRowItemRenderer) {
browse.items.append(.init(item))
}
})
browses.append(browse)
}
}
//
browses = browses.filter({$0.items.contains(where: {$0.browseItem.pageType == "MUSIC_PAGE_TYPE_PLAYLIST"})})
guard browseRequestStateBlock != nil else {
return
}
//
self.browseRequestStateBlock!(browses, true) self.browseRequestStateBlock!(browses, true)
// //
browseQueque = nil browseQueque = nil
} }
///_ContinuationContents ///_ContinuationContents
private func parsingBrowseContinuationContents(_ continuationContents:JsonBrowses.ContinuationContents) { private func parsingBrowseContinuationContents(_ continuationContents:JsonBrowses.ContinuationContents) {
//:idid //:idid

View File

@ -149,14 +149,15 @@ struct JsonCharts: Codable {
/// ///
struct Content: Codable { struct Content: Codable {
let musicResponsiveListItemRenderer:MusicResponsiveListItemRenderer? let musicResponsiveListItemRenderer:MusicResponsiveListItemRenderer?
let musicTwoRowItemRenderer:RootMusicTwoRowItemRenderer?
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case musicResponsiveListItemRenderer = "musicResponsiveListItemRenderer" case musicResponsiveListItemRenderer = "musicResponsiveListItemRenderer"
case musicTwoRowItemRenderer = "musicTwoRowItemRenderer"
} }
init(from decoder: Decoder) throws { init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self) let values = try decoder.container(keyedBy: CodingKeys.self)
musicResponsiveListItemRenderer = try values.decodeIfPresent(MusicResponsiveListItemRenderer.self, forKey: .musicResponsiveListItemRenderer) musicResponsiveListItemRenderer = try values.decodeIfPresent(MusicResponsiveListItemRenderer.self, forKey: .musicResponsiveListItemRenderer)
musicTwoRowItemRenderer = try values.decodeIfPresent(RootMusicTwoRowItemRenderer.self, forKey: .musicTwoRowItemRenderer)
} }
struct MusicResponsiveListItemRenderer: Codable { struct MusicResponsiveListItemRenderer: Codable {
/// ///

View File

@ -451,6 +451,7 @@ extension MPPositive_HomeViewController: UITableViewDataSource, UITableViewDeleg
self.navView.frame = frame self.navView.frame = frame
} }
} }
func numberOfSections(in tableView: UITableView) -> Int { func numberOfSections(in tableView: UITableView) -> Int {
if MPPositive_BrowseLoadViewModel.shared.libraryList.libraryViewModels.isEmpty { if MPPositive_BrowseLoadViewModel.shared.libraryList.libraryViewModels.isEmpty {
return 1 return 1
@ -471,93 +472,16 @@ extension MPPositive_HomeViewController: UITableViewDataSource, UITableViewDeleg
} }
} }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if MPPositive_BrowseLoadViewModel.shared.libraryList.libraryViewModels.isEmpty {
if let first = MPPositive_BrowseLoadViewModel.shared.browseModuleLists[indexPath.row].items.first, first.browseItem.itemType == .single, first.browseItem.pageType == "MUSIC_VIDEO_TYPE_ATV" {
//
let cell = tableView.dequeueReusableCell(withIdentifier: MPPositive_HomeSinglesTableViewCellID, for: indexPath) as! MPPositive_HomeSinglesTableViewCell
cell.browseViewModel = MPPositive_BrowseLoadViewModel.shared.browseModuleLists[indexPath.row]
return cell
}else {
let cell = tableView.dequeueReusableCell(withIdentifier: MPPositive_HomeShowTableViewCellID, for: indexPath) as! MPPositive_HomeShowTableViewCell
cell.browseViewModel = MPPositive_BrowseLoadViewModel.shared.browseModuleLists[indexPath.row]
if let first = MPPositive_BrowseLoadViewModel.shared.browseModuleLists[indexPath.row].items.first, first.browseItem.itemType == .single, first.browseItem.pageType == "MUSIC_VIDEO_TYPE_OMV" {
cell.showType = .Fifth
}else {
//
if MPPositive_BrowseLoadViewModel.shared.browseModuleLists[indexPath.row].items.first?.browseItem.pageType == "MUSIC_PAGE_TYPE_ARTIST" {
cell.showType = .Fourth
}else {
cell.showType = .Third
}
}
cell.requestNextBlock = {
[weak self] (item) in
guard let self = self else {return}
MP_AnalyticsManager.shared.home_b_module_clickAction(item.browseItem.pageType ?? "")
switch item.browseItem.itemType {
case .single:
///
MPPositive_Debouncer.shared.call {
[weak self] in
guard let self = self else {return}
guard MP_NetWorkManager.shared.netWorkStatu == .reachable else {
MP_HUD.text("Weak connection.", delay: 2.0, completion: nil)
return
}
MP_AnalyticsManager.shared.song_clickAction("Home")
//
MP_PlayerManager.shared.loadPlayer = nil
//
NotificationCenter.notificationKey.post(notificationName: .pup_player_vc)
MP_AnalyticsManager.shared.player_b_impAction()
//next
MP_NetWorkManager.shared.requestNextList(item.browseItem.playListId ?? "", videoId: item.browseItem.videoId ?? "", clickTrackingParams: item.browseItem.clickTrackingParams){ [weak self] listSongs in
guard let self = self else {return}
//playerloadViewModel
let lodaViewModel = MPPositive_PlayerLoadViewModel(listSongs, currentVideoId: item.browseItem.videoId ?? "")
lodaViewModel.improveData(item.browseItem.videoId ?? "")
//
MP_PlayerManager.shared.setPlayType(.normal)
MP_PlayerManager.shared.loadPlayer = lodaViewModel
MP_AnalyticsManager.shared.player_b_listAction()
}
}
case .list:
isFirstAppearance = false
//
let listVC = MPPositive_ListShowViewController(item.browseItem.browseId ?? "", params: "", title: item.title ?? "", subtitle: item.subtitle ?? "", clickTrackingParams: item.browseItem.clickTrackingParams ?? "")
navigationController?.pushViewController(listVC, animated: true)
case .artist:
isFirstAppearance = false
//
let artistVC = MPPositive_ArtistShowViewController(item.browseItem.artistId ?? "", clickTrackingParams: item.browseItem.clickTrackingParams ?? "")
navigationController?.pushViewController(artistVC, animated: true)
default:
break
}
}
cell.findMoreBlock = {
[weak self] in
guard let self = self else {return}
isFirstAppearance = false
let moreVC = MPPositive_MoreContentViewController(MPPositive_BrowseLoadViewModel.shared.browseModuleLists[indexPath.row])
navigationController?.pushViewController(moreVC, animated: true)
}
return cell
}
}else {
switch indexPath.section { switch indexPath.section {
case 0: case 0:
let cell = tableView.dequeueReusableCell(withIdentifier: MPPositive_HomeLibraryListstableViewCellID, for: indexPath) as! MPPositive_HomeLibraryListstableViewCell let cell = tableView.dequeueReusableCell(withIdentifier: MPPositive_HomeLibraryListstableViewCellID, for: indexPath) as! MPPositive_HomeLibraryListstableViewCell
cell.libraryViewModels = MPPositive_BrowseLoadViewModel.shared.libraryList.libraryViewModels cell.libraryViewModels = MPPositive_BrowseLoadViewModel.shared.libraryList.libraryViewModels
return cell return cell
default: default:
if let first = MPPositive_BrowseLoadViewModel.shared.browseModuleLists[indexPath.row].items.first, first.browseItem.itemType == .single, first.browseItem.pageType == "MUSIC_VIDEO_TYPE_ATV" { if let first = MPPositive_BrowseLoadViewModel.shared.browseModuleLists[indexPath.row].items.first, first.browseItem.itemType == .single, (first.browseItem.pageType == "MUSIC_VIDEO_TYPE_ATV" || first.browseItem.pageType == "MUSIC_VIDEO_TYPE_UGC") {
// //
let cell = tableView.dequeueReusableCell(withIdentifier: MPPositive_HomeSinglesTableViewCellID, for: indexPath) as! MPPositive_HomeSinglesTableViewCell let cell = tableView.dequeueReusableCell(withIdentifier: MPPositive_HomeSinglesTableViewCellID, for: indexPath) as! MPPositive_HomeSinglesTableViewCell
cell.browseViewModel = MPPositive_BrowseLoadViewModel.shared.browseModuleLists[indexPath.row] cell.browseViewModel = MPPositive_BrowseLoadViewModel.shared.browseModuleLists[indexPath.row]
return cell return cell
}else { }else {
let cell = tableView.dequeueReusableCell(withIdentifier: MPPositive_HomeShowTableViewCellID, for: indexPath) as! MPPositive_HomeShowTableViewCell let cell = tableView.dequeueReusableCell(withIdentifier: MPPositive_HomeShowTableViewCellID, for: indexPath) as! MPPositive_HomeShowTableViewCell
@ -630,4 +554,3 @@ extension MPPositive_HomeViewController: UITableViewDataSource, UITableViewDeleg
} }
} }
} }
}