自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 收藏
  • 关注

原创 技术人创业是怎么被自己短板KO的

和代码,协议,文档打交道多了,不管自己情愿不情愿,人多多少少就有很强的“契约概念”,代码的世界条理清晰,因果分明,1就是1,0就是0,在这样的世界里呆多了,你要说思维方式不被改变,那是不可能的 --- 而且总的来说,这种塑造其实是好事情。和他私下聊了几句,他跟我说他现在过的也还好,人生路还长着呢,谈起了自己在现在这行做事情的经历,碎碎念说了不少有趣的事情,最后还和我感慨说:“转行后感觉脑子灵活了很多”,我说那你写程序的时候脑子不灵活吗,他发了个尴尬而不失礼貌的表情,“我以前技术搞多了,有时候死脑筋。

2023-05-29 14:53:12 257

原创 (2023)iOS开发审核条例5.6基础知识汇总

5.6 条例是苹果开发者条例中的一个类别。它的归类名称叫。用直白一点的话说,5.6 违规就是被苹果发现了你“不老实”。从我的咨询对象了解的情况看,99% 的开发者中的 5.6 是确实违规,没有冤枉的。可见 5.6 的审判准确度很高,所以如果你觉得自己中了 5.6 并且认为自己是冤枉的,最好还是再考虑考虑。

2023-05-20 23:36:59 478

原创 (2023)苹果2.1应用完整性问题自查笔记

苹果审核应用完整性问题。一般文案以这种方式开头:一般此处会给出具体的设备和网络环境。

2023-05-09 17:39:40 402

原创 iOS AudioUnit笔记

AudioUnit 组件实体的创建函数是。传入 AudioComponent 并输出 AudioComponentInstance,返回错误码。AudioComponent 需要通过函数 AudioComponentFindNext 来获得。

2023-05-02 21:36:36 198

原创 (2023)iOS17开放侧载的网友观点调研

因为欧盟方面的强制措施,不出意外的话,iOS 17 开始苹果将被迫开放侧载。虽然具体如何开放的细节还不确定,但是这毕竟对苹果,开发者,以及用户都是不小的事情。整理了下网友们(主要是开发者们),对侧载的一系列看法和猜测。因为很多意见是相左的,所以整理成了反面观点和正面观点。

2023-04-29 13:19:47 898

原创 (2023)用AIGC写iOS项目单元总结

ChatGPT 对所有公开的技术文档都非常熟悉,可以说是手到拈来。对于 iOS SDK 自然是不在话下。所以,对于“某个实现用什么系统 API 来完成”,ChatGPT 可以完成的非常漂亮。如果不让它写代码,而是把它当成 SDK 顾问,然后让它提供示例代码,对开发者来说等于多了一个高级帮工。

2023-04-27 16:58:03 840

原创 CoreGraphics做高性能像素级渲染

第二个参数是负值,这意味着绘制的区域会做反向拉伸,于是画面会被翻转,结合 CGContextTranslateCTM 后,画面的绘制就变成从屏幕左下角作为纵向坐标的起始地址,绘制到屏幕的左上角。也就是说,UIView 调用 drawRect 后才会进一步调用 drawLayer,因此继承 UIView 时,必须继承实现 drawRect,这样 drawLayer 继承才会被调用。需要注意的是,这里不需要释放位图,是因为该引用会被用于绘制 UIView,接下来它会进入 UIView 的生命周期管理。

2023-04-24 10:23:31 284

原创 (2023)Admob广告实践笔记

最佳做法是,在 GADFullScreenContentDelegate 上的 adDidDismissFullScreenContent: 方法中加载另一个插页式广告,以便在上一个插页式广告关闭后,立即开始加载下一个插页式广告。Admob 开屏热启动部分的平台违规率比较高,如果出现设计或者代码上的差错,不只是导致 Admob 违规限流,还可能导致苹果审核的风险。另外,是不是一定要观看完广告才给予奖励,这一点是开发者可以自己决定的,一般来说“慷慨”一点无妨。如插屏,激励视频等。比较好懂,坑也少的广告类型。

2023-04-22 16:47:37 1288

原创 一个python脚本生成iOS所有尺寸的icon

icon_generator.py 脚本的作用就是根据用户给定的 icon 文件,生成整个 AppIcon.appiconset 文件夹,并且能保证文件夹内的所有文件符合 xcode 所要求的规范。编程语言运行环境 Python 3Python 3 的图形处理库 PIL(也称 Pillow)

2023-04-20 16:46:22 975

原创 通过UIApplicationMain实现应用内多种事件拦截

如果不用 UIApplication 作为默认的 principalClassName,而是传入它的子类,一般是为了解决产品在应用层面的管理问题。例如设计了一个 UIApplication 的子类叫。

2023-04-12 17:15:43 575

原创 AdmobiOSSDKV7.x-V19.x.x版本淘汰倒计时观察

和一部分开发者的收入息息相关在 Admob 官方网站上,明确标明了各个 SDK 的有效和弃用时间表,地址可以参看:不方便访问的朋友,图片在这里:Admob 给出了和到这里很容易得出结论了,即 Admob 版本为 v7.x.x - v19.x.x 的 SDK,按计划是在 2023 年第 2 季度进行。说到这里,有些应该理解这个事情的重要性了。而现在写这篇文章的时候,正是 2023 年的第 2 季度。但是到目前为止,我观察到对应 SDK 版本的产品,依然有收益,这是为什么?

2023-04-04 15:39:02 409

原创 参考下最近半年国外社区开发者的 Other 经历

Other 问题是老生常谈了,但是因为苹果政策一直在变,所以有时候老问题经常出新花样。最近不少开发者小伙伴“莫名其妙”的遭遇了Other,但是其实大家都知道,所谓的“莫名其妙”,其实肯定是事出有因。。大概意思是,在全新且唯一的账号下,只有一个 app 上架的情况下还是遭遇了 other 延迟。而且最近我翻查了下国外开发者遭遇 Other 问题的情况,还是发现了不少可以重新总结的点,除了我们经常遇到的账号关联,产品查重等情形外,老外更多遇到的是别的一些情况。

2023-04-03 16:15:17 810

原创 近期大规模 4.3,2.3.1 问题小结

最近听说很多开发者遭遇了封号问题,原以为只是个别现象,直到身边越来越多人中招,才发现原来真是群体现象。其中绝大部分封号都和已封的账号关联有关,另一部分是因为产品雷同问题中了 4.3/2.3.1 ,且始终被审核人员紧咬着不放。针对这个问题,不少人说是苹果针对中国开发者,但是我从国外论坛看,其实大家面对的问题都差不多,国外也有很多被封号的帖子,他们所做的产品性质也非常相近。对此我只能认为,。

2023-03-26 11:43:02 565

原创 记一次悲催的负优化被清词经历以及自救过程

这次经历最大的教训就是,当地区语言有了关键词排行优势后,轻易不要乱做改动,尤其是产品本身还不够成熟,还处于逐渐起量的时期时,这么做很容易出现我这个问题(事实上已经有不少网友遇到了)。第二个经验是,如果遇到了这个问题,那么删除地区语言是一个值得考虑的解决方案,虽然不一定真的能解决问题,但是或许有机会像我一样把死马给医活了。

2023-03-25 19:08:06 483

原创 记一次iOS审核被拒条例4.1和2.3.7的通关经历

本次过审是更新包的过程中遇到的。上一次被拒经历可以戳这里。这次更新前,产品已经顺利更新了好几次了。在这一次提交后,产品的 in review 阶段持续了五个小时以上,当时就猜测应该可能会被拒,果然如我预料。先说说产品的背景,产品是一个游戏。在发布第一版时,因为被拒绝。后来经过和苹果沟通后,顺利过包。之后几个版本升级非常顺利,几乎是次日就通过。最新一版的改动,除了引入新语言之外,对产品的标题和副标题做了小幅度修改。目前看,我认为引起苹果警惕的因素应该是产品的标题和副标题修改,这部分大家可以引起注意。

2022-11-19 08:22:47 1920

原创 探讨苹果商店那些“变身包”究竟是怎么上架的

不少开发者的产品慢慢有了流量后,都难免会遇到被抄袭的问题,面对市面上出现的仿造品,应该怎么应对好?仿造是难以避免的,也是界定起来比较困难的,产品和产品之间出现类似是再正常不过了,这里说的被抄袭,指的更多的是一笔一画的抄自己的作品,核心改动微乎其微的“复刻”。另一种情况是名称侵权,即别人在标题或者副标题“冒用”你的产品名进行蹭流量,而这个产品名本身你是有专利的,这也是一种侵权。

2022-11-17 15:48:07 2266

原创 当苹果开发者发现自己的产品被抄袭时,该怎么做?

不少开发者的产品慢慢有了流量后,都难免会遇到被抄袭的问题,面对市面上出现的仿造品,应该怎么应对好?仿造是难以避免的,也是界定起来比较困难的,产品和产品之间出现类似是再正常不过了,这里说的被抄袭,指的更多的是一笔一画的抄自己的作品,核心改动微乎其微的“复刻”。另一种情况是名称侵权,即别人在标题或者副标题“冒用”你的产品名进行蹭流量,而这个产品名本身你是有专利的,这也是一种侵权。

2022-11-13 08:31:11 464

原创 聊聊 iOS 出海 App 中的多语言和 ASO 优化和雷区

最近有个开发者朋友,他开发的产品非常正规,而且只有一个账号和两三个正常的产品,即便这样,也会在提交审核中遭遇了“账号调查”,也就是行内俗称的 other,吓得他茶饭不思。但是因为本身确实是“身正”,我建议他等足 7 天后去催促一下进度,果不其然,很快就收到了苹果的审查通过邮件。虽然是个有惊无险的小事件,但这种事落在每一个开发者上,就感觉重如泰山。随着搅乱生态的无良包开发者和苹果的斗智斗勇升级,苹果审核现在草木皆兵的严防政策下,被“误伤”的无辜开发者着实不少。

2022-10-29 12:53:59 1084

原创 2022下半年苹果新政下,开发者如何更好应对审核

最近有个开发者朋友,他开发的产品非常正规,而且只有一个账号和两三个正常的产品,即便这样,也会在提交审核中遭遇了“账号调查”,也就是行内俗称的 other,吓得他茶饭不思。但是因为本身确实是“身正”,我建议他等足 7 天后去催促一下进度,果不其然,很快就收到了苹果的审查通过邮件。虽然是个有惊无险的小事件,但这种事落在每一个开发者上,就感觉重如泰山。随着搅乱生态的无良包开发者和苹果的斗智斗勇升级,苹果审核现在草木皆兵的严防政策下,被“误伤”的无辜开发者着实不少。

2022-10-02 20:56:26 1520

原创 关于 4.1 - copycat 的通关经历

经验总结:4.1 的 copycat 不可怕,比起判定你是马甲的 4.3 来,要好受的多。首先 4.1 基本是人审,人审就比较好讲道理,而机审就很难,因为现在苹果审核就是机器的小弟,全听机器的;其次首先自己腰板要直,只要充分考虑过侵权这个问题,并做过相应处理,底气就更足,也比较好和审核叫板;第三点,不要急于修改,先理论,提出自己多观点,要学会平视审核,不要学很多网友搞的自己苦兮兮的,说了一堆卖可怜的话,论据没有重点。最后一点,要认命,如果真的苹果审核死咬不放,那就不要纠结了,趁早放弃保号稳妥。

2022-09-28 14:32:18 2689

原创 SDL2音频开发实践

SDL(Simple DirectMedia Layer) 是一套开放源代码的跨平台多媒体开发库,使用 C 语言写成。SDL 提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。现 SDL 多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。— 百度百科由于进行音频编程的时候还是希望尽可能跨平台,所以可以考虑用第三方库来编写音频代码,而SDL就是其中一个不错的选择。...

2022-08-10 17:31:32 1422

原创 苹果开发者容易招致调查的若干行为

最近越来越多的开发者遭遇了苹果审核万恶的 other 调查。可以看出苹果的调查触发频率是越来越高了。且很难找出规律。有时候是机器审核出app异常导致的调查,有时候是批量集中时间段的大规模调查。如果是遭遇了大规模调查,那几乎大部分开发者都很难幸免,这不是你的错,是苹果的机制就是如此。但是也存在一些开发者自己操作不当导致。下边就列举一下容易触发调查的几个开发者行为。鉴于现如今苹果产品审核日趋严格,很多开发者没有意识到一些不当行为带来的风险,还沿用过去所谓的“互联网思路“,想通过短快平的方式不断迭代产品来制胜,这

2022-06-22 20:50:29 399

原创 苹果开发者不可不知的“苹果小型开发者佣金计划”

众所周知,开发者在苹果市场获得的任何通过苹果官方渠道提供的付费下载和内购产生的收入,苹果的抽成比例为 30% 。业内黑话都叫 “苹果税”。而小型开发者优惠政策就相当于 “税费减免政策”。该政策英文全名为 App Store Small Business Program ,申请该佣金计划并审核通过后,开发者的“苹果税”将从原有的 30% 直接降低为 15% 。我们假设一个开发者通过苹果付费加内购,扣除了30%的苹果税后收入为50万,那么如果他申请了开发者计划,收入将变成也就是说只要申请了小型开发者计划,年收

2022-06-12 15:32:35 2234

原创 苹果开发者防关联开新号自查清单

前言关于开发者封号,防关联等话题之前已经讨论了不少。但是一直都没有做一个清单化的自查总结。所以在这里决定好好写一篇。鉴于公众号文章没办法做更新和修改,如果我发现有比较重要的需要做补充的话题,很可能在未来会选择删文重开一篇。但目前会把想到的最关键有关联的信息陈列出来。开发和测试环境网络环境做好网络隔离,关键在于开发机和测试机不再访问过去的网络。较佳实践策略是通过专用随身Wi-Fi作为设备的专用网络。其他设备一律不许使用。硬件硬件一般指开发机和测试机。新的账号环境下应该严格使用规定好的新设备。

2022-05-22 22:44:01 1505

原创 安卓开发中解决多点触控触发多个按钮的问题

核心思路是通过多点触控获取的按压状态,将所有想要被触发按压的按钮放到数组里,最后将所有按压状态映射到一个整形 buttonMask 上。一个整形为32位,足够映射32个按钮,对一般需求是绝对满足了。如果还不够可以用long。示例代码如下:@Overridepublic boolean onTouchEvent(MotionEvent event) { final int BUTTONS_COUNT = 10; View[] buttons = new View[BUTTONS_C

2022-05-21 13:52:02 493 1

原创 Android Studio用cmake开发C++代码

Android Studio 工程的 Project 预览方式设置为 Project,好总览工程的目录结构。在工程里的app/src目录下添加cpp目录。cpp目录里添加实现jni桥接函数的文件 main.cpp 。 (cpp文件名可自定)在app目录下添加 CMakeLists.txt 文件。CMakeLists.txt 文件写入内容模板如下:cmake_minimum_required(VERSION 3.18.1)project(AndroidCMakeExample) # Andro.

2022-05-05 11:15:08 632

原创 说说苹果 App Store 将下架长期不更新的App一事

由来已久的“大清洗”事实上,苹果清理老旧app的操作是一直存在的。早在2021年和2020年,就一直陆续积极的清理2015到2017未更新的应用。所以这次的通告并不让人意外,只是作为苹果一贯策略的加强和延续而已。长期不更新的应用会被清理 — 如果非要量化指标,那么就以5年为准(但是这个数字以后会越来越缩短),这是大势所趋,无可避免。为什么这么做?看到很多人说了各种阴谋论,其实大可不必。天下熙熙皆为利来,苹果这么做无非就是从自身利益考虑。可以总结如下:长期不更新的app大部分是盈利水平有限的,优质

2022-04-26 15:29:45 394

原创 苹果审核被拒2.1之网络连接失败总结

本以为这种案例属于少数派案例,但是从网友交流看来遇到这个问题真的不少。问题描述苹果审核被打回,违反条例 2.1 ,描述是因为联网问题被拒。但是实际本地测试没有发现联网问题。拒绝模版Guideline 2.1 - Performance - App CompletenessWe discovered one or more bugs in your app when reviewed on iPad running iOS xx.xx.xx on Wi-Fi.Specifically, .

2022-04-22 18:47:59 6065 2

原创 Windows下跑Android Studio模拟器无法运行的问题解决

问题描述打开模拟器弹出Could not start AVD点击troubleshoot弹出Enable VT-x in your BIOS security settings ...问题解析由于安卓模拟器需要用到硬件虚拟技术,而开发机的主板关闭了这个选项,所以需要到BIOS中开启。解决方法重启系统,进入BIOS(F12 或者 DEL),找到Inter VitualTechnology(VT),这时候它应该是Disable状态,改为Enable。保存并启动系统即可。更多阅读🔗 移动开

2022-04-20 15:06:31 3250

原创 那些“无良包”为什么能上架?

注意,“无良包”仅仅是一个别称,代表主观违规且业务不那么正当的产品,并不含感情色彩。开发者的幸存者偏差很多开发者交流的时候都会有这么一句抱怨。我的产品明明已经照着苹果/谷歌的意思改了,为什么还被打回。那为什么那些明显违规的产品反而在苹果上活的好好的?这种抱怨非常有代表性,基本上这个现象不是个例,而是大多数开发者的共识。其实这是典型的幸存者偏差。你看到了贼吃肉,而挨打退场的贼你是永远看不到了。我们和“无良包”的上包率差距并不太大事实上,不管谁宣称自己有多强大的上包方案。目前看来苹果审核的.

2022-04-16 10:49:47 252

原创 M1 Mac运行ndk-build失败解决方法

错误提示:ERROR: Unknown host CPU architecture: arm64.原因解析:简单的说就是该版本的ndk-build暂时还不支持在新版M1处理器上运行。操作方法:用文本编辑器打开ndk-build文件。可以看到如下文本:#!/bin/shDIR="$(cd "$(dirname "$0")" && pwd)"$DIR/build/ndk-build "$@"将其更改为:DIR="$(cd "$(dirname "$0")" &&

2022-04-14 17:20:03 3275

原创 准备全职做个人开发的注意事项

在职期间,最好已经做了业余准备所谓的“业余准备”是指,在职期间已经有了自己的个人作品,不管是出于兴趣爱好也好,出于赚外快的目的也好。我接触的很多后来成为独立开发者的人,在工作期间已经以个人身份在苹果上架了产品,并且获得了一定的收益。这么做的好处是准备全职做个人项目的时候,底气会相对充足,而不再是取决于纯粹的鸡血和缺乏依据的自信心。一般经验,开发并上线一款个人级别,质量达到上架标准的产品,只需要50以内的工时即可,即使出现上下浮动,最多也不会超过100。也就是说业余时间每天安排一小时的话,一个多月后就

2022-04-12 10:36:03 486

原创 Admob的PIN码接收教程

个人经验关于PIN码的作用Admob通过PIN码来间接的验证用户的真人身份。方法是用户在注册了Admob的账号后,当产品收益达到一定额度,网站就会出现PIN码的发送请求按钮。注意,Admob发送PIN码的方式是通过 实体 邮件发送,也就是说你必须在账号设置中提供一个真实的地址。Admob官方会发送传统的邮件给你所在地址。收到的PIN码是从境外 - 马来西亚 寄来(我经历的两次都是如此,听同行描述也是如此)。信封标题是 Google AdSense 。内容写着 您的PIN码:XXXXXX,步骤1.

2022-03-25 23:15:28 1786

原创 如何正确的给iOS产品发布海外版

仅代表个人经验。一般情况下,永远是一个包靠谱这里说的一般情况,指的是发布的产品大陆和海外仅仅是语言文本上的差异,这种情况建议就不要折腾了,直接在一个包里做,设置好多语言即可,这样做也比较符合苹果市场的规则。如果一定要搞两个包,然后问“怎么发海外版”,那么这篇文章就不是给这类人写的。因为你们需要的其实不是海外版,是马甲包,马甲包有马甲包的打法,和海外版不是一回事,这点不能混淆。不得不发海外版的情况之:因为版号问题导致的付费差异由于现在大陆发布游戏需要版号,但是因为目前规则上有个取巧的点,即只对含.

2022-03-25 22:09:10 8284 4

原创 苹果审核的沟通与申诉的一些见解

个人观点。“卖惨”的作用趋向于负什么是卖惨,举以下几个文案为例:我们团队开发了这个产品花了半年时间,投入了大量心血,我们真的很珍惜这次机会。如果这个产品无法上架,我们公司将面临破产,我们无法承受这样的代价。这个产品对我真的很重要,如果它不能上架,我将失去所有收入来源。在苹果开发的“上古时期”(指2016年以前),回复面板“卖惨”有时候确实有效,但是现在却不顶事了。主要原因有以下几点:过去苹果审核人工压力没有现在大,审核相对有耐心听开发者卖惨。过去苹果对产品审核的尺度远没有现在大,一.

2022-03-21 23:40:16 1296

原创 苹果上架产品下载权重规则知识整理

个人整理笔记,存在主观判断。影响权重的几个值得注意的点下载量查看/下载的转化关联词汇的表现不可信因素的剔除长期稳定性下载量很好理解,没有足够的下载量,转化率就没有可信度,假设一个产品在某关键词下有10次查看1次下载,肯定不足以给予提权。但如果是1000次查看100次下载,那就大不一样了。在下载量充足的前提下,才能谈论转化率,但是从开发者角度来讲,转化率才是至关重要的,有转化了就不怕没有下载量,大不了买量就是了。值得注意的是,产品的关键词之间不是孤立的,互相有辅助参考作用。另一个值.

2022-03-02 22:52:52 244

原创 苹果开发者关联封号扫盲贴

什么是关联封号开发者账号因为种种原因被封后,苹果官方为了防止开发者再次“作恶”,通过技术手段识别开发者是否通过重新开设账号继续上架产品,一旦识别到和原先封号的账号有关联,就会再次将新开设的账号查封,这个机制一般我们就叫关联封号。苹果通过什么方式判断账号是关联的关联手段有很多,包括但不限于:申请、登陆账号或测试所用的硬件设备(手机、电脑、笔记本)网络环境(IP段等)重新请求上架app的特征(代码,文件,请求域名)苹果账号(登陆了老账号)会员付费的信用卡开发者收款的银行卡app转移是不

2022-02-28 22:44:48 4487 1

原创 ArmV8 A64汇编指令ADD

ADD 立即数示例:add w0, w1, #255等价于C语言的:uint32_t w0, w1;w0 = w1 + 255;由于立即数ADD指令码中立即数的编码位数为12位,所以立即数的数据范围为0<=imm<=4095。注:但是在测试该汇编语句时,我发现输入4096依然能正确运行,这应该是该指令码被另行转码的结果,但是根据文档描述不应该输入4096及以上的立即数。ADD 寄存器示例:add w0, w1, w2等价于C语言的:uint32_

2022-02-20 17:53:06 3010

原创 开发者的副业谈

Just for fun. - Linus有副业的开发者,不一定赚钱比没有的多,但是可能体验的乐趣却增加了不少。本文记录一下以我所知的,或认识的开发者所从事的副业,简单的列举一下。或许可以让感兴趣的人在找方向的时候做一些参考。移动开发者入群指引向应用市场发布个人产品移动开发者最直截了当的副业手段。有客户端开发技术,有想法的开发者很容易产生创造属于自己的app的想法。自从App Store和Google Play诞生以来,无数个人开发者通过发布自己的个人产品获得了自己的小目标(当然不是指一个亿)。.

2022-01-22 22:48:04 376

原创 C++ constexpr相关知识点

constexpr语法从C++ 11开始支持,所以要注意配置编译环境到支持的标准版本。例如用g++编译。则需要添加-std=c++11。示例命令如下g++ -std=c++11 main.cpp当然了你可以选择更高版本进行编译,毕竟向前兼容,例如-std=c++2a。在C++中,const的语义是用于修饰一个变量或者成员函数的只读属性。例如:const int a = 100;所以从语义上来讲,const并不代表一个 编译期常量 。而为了更有效的利用C++的模板技术,并且将尽可能多的代码在编

2021-12-26 11:13:31 531

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除