Commit 8a40a10c by pierce

添加消息的新人引导

parent ccb8400c
Showing with 1162 additions and 1 deletions
......@@ -53,7 +53,7 @@
+ (nullable NSArray<UIImage *> *)animatedImageArrayNamed:(NSString * __nonnull)name {
NSMutableArray *images = [NSMutableArray array];
for (NSInteger i = 0; i < 40; i++) {
for (NSInteger i = 0; i < 100; i++) {
UIImage *image = [self imageWithContentFile:[NSString stringWithFormat:@"%@%zd",name,i] inBundle:[self.class bundle]];
if (image) {
[images addObject:image];
......
......@@ -22,4 +22,5 @@ public enum GDTabBarType {
public protocol GDTabbarSwiftRouter: GDTabbarRouter {
var tabbarVC: UITabBarController? { get }
func jumpToTabbar(page:GDTabBarType, rootVC:UIViewController?)
func getFrame(for type: GDTabBarType) -> CGRect?
}
......@@ -27,6 +27,13 @@ public struct GDChatRoomArchieveKey {
public static let chatGiftDataMd5 = "chatGiftDataMd5Key"
}
public struct GDChatRoomPublicUDKey {
/// 是否显示过消息的新人引导
public static let hadShowMessageGuide = "hadShowMessageGuide"
/// 请求显示消息新人引导的次数
public static let requestShowMessageGuideTimes = "requestShowMessageGuideTimes"
}
public enum GDIMCommandCode: Int {
// 对方不是自己的好友,需删除该好友
......@@ -83,6 +90,8 @@ public protocol GDChatRoomSwiftRouter: GDChatRoomRouter {
func isFakeFriend(uid: String?) -> Bool
func deleteFakeFriend(fid: String)
func showMessageGuideIfNeeded()
}
......
......@@ -8,6 +8,7 @@
/* Begin PBXBuildFile section */
6137D16167B01F1EBA20B3CA /* Pods_GDChatMessage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13EFD1E55F853B412648A98C /* Pods_GDChatMessage.framework */; };
BEA8EA992BECFCFA00162AD6 /* GDMessageGuideView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEA8EA982BECFCFA00162AD6 /* GDMessageGuideView.swift */; };
BEC737F92B627B3A006391D3 /* GDChatMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = BEC737F82B627B3A006391D3 /* GDChatMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
BEC738092B627B84006391D3 /* GDChatMessageAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEC738002B627B84006391D3 /* GDChatMessageAPI.swift */; };
BEC7380A2B627B84006391D3 /* GDChatMessageHttpHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEC738012B627B84006391D3 /* GDChatMessageHttpHelper.swift */; };
......@@ -101,6 +102,7 @@
13EFD1E55F853B412648A98C /* Pods_GDChatMessage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_GDChatMessage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
1C60D1D821E1015E5B94D6CF /* Pods-GDChatMessage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-GDChatMessage.release.xcconfig"; path = "Target Support Files/Pods-GDChatMessage/Pods-GDChatMessage.release.xcconfig"; sourceTree = "<group>"; };
4048B94281E811ECB2770048 /* Pods-GDChatMessage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-GDChatMessage.debug.xcconfig"; path = "Target Support Files/Pods-GDChatMessage/Pods-GDChatMessage.debug.xcconfig"; sourceTree = "<group>"; };
BEA8EA982BECFCFA00162AD6 /* GDMessageGuideView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDMessageGuideView.swift; sourceTree = "<group>"; };
BEC737F52B627B3A006391D3 /* GDChatMessage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GDChatMessage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BEC737F82B627B3A006391D3 /* GDChatMessage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GDChatMessage.h; sourceTree = "<group>"; };
BEC738002B627B84006391D3 /* GDChatMessageAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GDChatMessageAPI.swift; sourceTree = "<group>"; };
......@@ -230,6 +232,14 @@
name = Frameworks;
sourceTree = "<group>";
};
BEA8EA972BECFCDB00162AD6 /* Guide */ = {
isa = PBXGroup;
children = (
BEA8EA982BECFCFA00162AD6 /* GDMessageGuideView.swift */,
);
path = Guide;
sourceTree = "<group>";
};
BEC737EB2B627B3A006391D3 = {
isa = PBXGroup;
children = (
......@@ -460,6 +470,7 @@
BEC738442B635C64006391D3 /* Message */ = {
isa = PBXGroup;
children = (
BEA8EA972BECFCDB00162AD6 /* Guide */,
BEC738452B635C64006391D3 /* Preorder */,
BEC7384F2B635C64006391D3 /* Notification */,
BEC738762B635C64006391D3 /* MomentMessage */,
......@@ -1058,6 +1069,7 @@
BEC7389F2B635C64006391D3 /* GDSingleChatMessageModel.swift in Sources */,
BEC7389A2B635C64006391D3 /* GDBlackListModel.swift in Sources */,
BEC738C12B635C64006391D3 /* GDMessageNotificationRechargeInfoCell.swift in Sources */,
BEA8EA992BECFCFA00162AD6 /* GDMessageGuideView.swift in Sources */,
BEC7380A2B627B84006391D3 /* GDChatMessageHttpHelper.swift in Sources */,
BEC738D52B635C64006391D3 /* GDServiceChatCell.swift in Sources */,
BEC738D42B635C64006391D3 /* GDServiceInputView.swift in Sources */,
......
//
// GDMessageGuideView.swift
// TealiveSwift
//
// Created by Jim Chan on 2021/8/11.
// Copyright © 2021 YAZHAI Inc. All rights reserved.
//
import UIKit
import GDToolBox
import GDRouter
class GDMessageGuideView: BaseView {
var clickHandler: EmptyClosure?
let targetFrame: CGRect
init(targetFrame: CGRect) {
self.targetFrame = targetFrame
super.init(frame: GDScreen.frame)
//TODO:Live: added By Pidan
// GDDataCenter.shared.audienceInviteCenter.enableToShowInviteView.accept(false)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// MARK: UI
let iconImageView = UIImageView(frame: .zero)
private var animateTimer: Timer?
private var iconIndex: Int = 1
override func makeUI() {
super.makeUI()
self.backgroundColor = .clear
let bgView = UIView(frame: GDScreen.frame)
bgView.backgroundColor = .init(white: 0, alpha: 0.6)
self.addSubview(bgView)
let btn = UIButton(type: .custom)
btn.frame = .init(x: 0, y: 0, width: 74, height: 80)
btn.center = .init(x: targetFrame.origin.x + (targetFrame.size.width / 2.0), y: targetFrame.origin.y + (targetFrame.size.height / 2.0) + 8)
btn.setImage(GDChatMessageBundle.imageNamed("guide_message_mask_icon"), for: .normal)
btn.alpha = 0
self.addSubview(btn)
let wordImageView = UIImageView(frame: .zero)
wordImageView.image = GDChatMessageBundle.imageNamed("guide_message_word_60")
wordImageView.animationImages = GDChatMessageBundle.animatedImageArrayNamed("guide_message_word_")
wordImageView.animationDuration = 4
wordImageView.animationRepeatCount = 1
wordImageView.size = .init(width: 265, height: 30)
wordImageView.centerX = btn.centerX
wordImageView.y = btn.y - 30 - wordImageView.height
self.addSubview(wordImageView)
wordImageView.startAnimating()
iconImageView.size = .init(width: 148, height: 69)
iconImageView.x = wordImageView.x - 10
iconImageView.y = wordImageView.y - iconImageView.height
self.addSubview(iconImageView)
let dotImageView = UIImageView(image: GDChatMessageBundle.imageNamed("guide_dot_icon"))
dotImageView.size = .init(width: 5, height: 5)
dotImageView.centerX = wordImageView.centerX
dotImageView.centerY = wordImageView.maxY
dotImageView.alpha = 0
self.addSubview(dotImageView)
let lineView = UIView(frame: .zero)
lineView.backgroundColor = .hexColor("84E3E3")
lineView.size = .init(width: 1, height: 0)
lineView.center = dotImageView.center
lineView.alpha = 0
self.insertSubview(lineView, belowSubview: dotImageView)
btn.rx.tap.subscribe(onNext: {[weak self] _ in
self?.removeFromSuperview()
self?.clickHandler?()
//TODO:Live: added By Pidan
// GDDataCenter.shared.audienceInviteCenter.enableToShowInviteView.accept(true)
UserDefaults.standard.setValue(true, forKey: GDChatRoomPublicUDKey.hadShowMessageGuide)
}).disposed(by: disposeBag)
animateTimer = Timer.scheduledTimer(withTimeInterval: 0.067, block: {[weak self] _ in
guard let self = self else { return }
if let image = GDChatMessageBundle.imageNamed("guide_message_icon_\(self.iconIndex)") {
self.iconImageView.image = image
self.iconIndex += 1
} else {
self.iconIndex = 27
self.iconImageView.image = GDChatMessageBundle.imageNamed("guide_message_icon_\(self.iconIndex)")
}
}, repeats: true)
UIView.animate(withDuration: 0.15, delay: 0.5, options: .layoutSubviews) {
dotImageView.alpha = 1
lineView.alpha = 1
} completion: { _ in
UIView.animate(withDuration: 0.25) {
dotImageView.centerY = btn.y
lineView.height = 30
} completion: { _ in
btn.transform = .init(scaleX: 0.9, y: 0.9)
UIView.animate(withDuration: 0.25) {
btn.alpha = 1
btn.transform = .identity
} completion: { _ in
let scaleAnimation = CAKeyframeAnimation(keyPath: "transform.scale")
scaleAnimation.values = [1, 1.1, 1]
scaleAnimation.duration = 1.5
scaleAnimation.repeatCount = .infinity
scaleAnimation.timingFunction = .init(name: .easeInEaseOut)
btn.layer.add(scaleAnimation, forKey: nil)
}
}
}
}
// MARK: Data
override func bindViewModel() {
super.bindViewModel()
self.addGestureRecognizer(UITapGestureRecognizer(actionBlock: {[weak self] _ in
self?.removeFromSuperview()
UserDefaults.standard.setValue(true, forKey: GDChatRoomPublicUDKey.hadShowMessageGuide)
//TODO:Live: added By Pidan
// GDDataCenter.shared.audienceInviteCenter.enableToShowInviteView.accept(true)
}))
}
deinit {
animateTimer?.invalidate()
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_1@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_10@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_11@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_12@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_13@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_14@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_15@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_16@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_17@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_18@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_19@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_2@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_20@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_21@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_22@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_23@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_24@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_25@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_26@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_27@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_28@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_29@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_3@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_30@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_31@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_32@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_33@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_34@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_35@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_36@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_37@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_38@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_39@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_4@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_40@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_41@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_42@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_43@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_44@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_45@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_46@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_47@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_48@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_49@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_5@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "guide_message_icon_50@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment