面试

自动打包

浏览器缓存、分段、

拉前端代码?+正常的环境的切换+通知

没网?数据?

h5请求,app拦截,自动更新

h5调用插件

多渠道打包

Cordova、

安全

支付:

架构 MVP

代码层面 hashMap 16大小、本地化存储 mmkv 门面模式

性能优化 线上oom、bugly、图片过大

Viewmodel 数据持久

不同客户不同包

网络框架 重试、日志

权限管理

离线缓存?

日历视图 七八层嵌套-> 1层

通知、插件、路由

插入视图

物联网

安卓自启动问题

本地化/国际化-

框架-getX

webView-flutter 白屏

扫码

设计模式?策略模式?单例?通知?几个原则。

  • 谈谈对项目做过的优化(历史存在什么问题,你的解决方式。)?
  • 谈谈你做过的框架(侧重非UI部分)
  • 谈谈埋点?

搜索逻辑?冒泡排序?

封装

看过什么书,什么三方库?

  • [x] 图片缓存?

  • [x] 性能优化(webView 优化)?

    • 内存优化、泄漏,检测?
    • 启动优化
    • 安装包大小优化
  • 应用在后台长时间执行(service 保活)
  • 怎么区分不同平台的安装包?
  • 同一应用多端,项目上怎么开发(司机端、乘客端)。
  • [ ] 路由设计 scheme://path?argument

  • [ ]

app中核心的非数据组件()

图片处理、网络库、路由

线程同步

掌握 RxJava + Retrofit + OkHttp 的⽹络底层框架,并结合 MVP、MVC、MVVM 三种架构模式编写出⽹络底 层框架,已应⽤于项⽬中,底层稳定性强

了解LiveData,Viewmodel,DataBinding等新框架,且结合RxJava 使⽤MVVM架构应⽤在项⽬中

理解内存泄露的原理,编写代码过程中能避免常⻅内存泄露。使⽤Memory Profiler 和 Memory Analyzer等 ⼯具检测内存泄露问题

了解App启动速度优化,内存,以及APK 瘦身等优化

理解 Android 适配原理,能够做到适配各类常⽤机型

理解Android触摸事件传递机制,⾃定义View和动画机制 理解 Handle 消息处理机制

理解多个设计模式的使⽤。如单例设计模式,观察者模式,建造者模式,装饰者设计模式等 独⽴编写多个lib库,如图库,列表适配库,⼴告库,分享库(QQ,微信,微博,Facebook等第三⽅),均采⽤ 组件化开发⽅式,可快速移植其他项⽬中

Flutter

状态管理 setState\Provider

网络拦截器、

图片缓存

请求

新电脑(Mac)初始安装

[TOC]

一、系统设置

  • [x] mac三指拖动设置

    1
    系统设置 --> 辅助功能 --> 鼠标与触控板 --> 触控板选项 --> 三指拖移
  • [x] mac显示隐藏文件

    1
    defaults write com.apple.finder AppleShowAllFiles -boolean true;killall Finder

二、搜狗输入法、QQ、微信、Wps

三、琐事记录&计划

1、开始记录各种琐事:个人博客Git

2、找到对应的文件/应用:Alfred、QSpace、Manico、Magnet

3、编辑:Typora、SublimeText、截图xnip、翻译Bob、粘贴Paste

4、列计划:omniplan、Xmind

5、其他:Bartender

四、代码相关

1、Sourcetree、gitlab、github项目、ssh

  • [x] Sourcetree

  • [x] 生成ssh

    1
    2
    3
    4
    5
    6
    7
    # 查看是已有
    cd ~/.ssh

    # 没有则执行生成
    ssh-keygen

    # 生成后,拷贝id_rsa.pub中的秘钥到git的ssh配置中
  • [x] gitlab

  • [x] github

    mac中用sourcetree下载clone代码,结果出错:warning: templates not found in /usr/local/git/share/git-core/templates

    image-20201103134013411

    解决办法:

    1
    2
    sudo mkdir -p /usr/local/git/share/git-core/templates
    sudo chmod -R 755 /usr/local/git/share/git-core/templates

    image-20201103135013020

2、Cocoapods、Spec

  • [x] Cocoapods官网

    1、安装Cocoapods

    1
    sudo gem install cocoapods

    2、拷贝cocoapods的Spec

    1
    2
    3
    4
    pod repo # 找到pod库的路径
    cd 到上述路径
    拷贝cocoapods的Spec,并重命名该仓库名字
    pod repo update master # 将指定的仓库更新

3、go2sheell

五、iOS编码工具

1、Xcode

  • Xcode

2、CodeSnippets

1、进入 BlackMagic Git工程中的 CodeSnippets 并下载

2、CodeSnippets所在位置

①自己定义的代码块是在以下目录下:
~/Library/Developer/Xcode/UserData/CodeSnippets/

3、iSwift破解版

4、其他 cocoapods APP

5、XSimulatorMng

XSimulatorMngr

六、Android

1、Android Studio

七、WebStrom

1、WebStrom APP

2、WebStorm细节配置

2.2、WebStorm配置直接运行RN项目

​ 具体操作请查看:ReactNative开发环境搭建与运行

七、AI 智能编程助手

AI编程助手 来源 官网 备注 推荐指数
codegeex 清华 https://codegeex.cn/ ⭐️⭐️⭐️⭐️⭐️
Codeium 初创公司 https://codeium.com/ 开源:https://github.com/THUDM/CodeGeeX
CodeWhisperer 亚马逊

image-20240317232514136

八、抓包 Charles

  • Charles 下载

    进入百度网盘,搜索Charles,目前实用4.5.5版本

    Charles

  • Charles.md

九、brew、yarn、npm

  • [ ] brew

    1
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • [ ] yarn

    1
    brew install yarn
  • [ ] npm

  • [ ] wrap

十、个人娱乐类

十一、网站

1、APP网站及APP安装问题解决方法

详见:常识类/技术常识/好用的网站

十二、其他小工具

详见:实用工具/其他小工具

十三、科学上网

详见:常识类/技术常识/科学上网常识

其他、软件安装问题

1、已损坏

Bugly

一、iOS 崩溃

1、崩溃信息

【全部】崩溃信息截图如下:

image-20230526150407119

2、分析

image-20230526163957707

问题id 问题描述 发生次数
#1038 SIGSEGV 腾讯播放器问题 236
其他 其他问题 7

腾讯播放器占比超95%,已修复,待上线。

二、Android 崩溃

1、崩溃信息

image-20230526150921436

2、分析

image-20230526164207063

模拟器相关 43+/72 > 60%

即至少能再降低60%崩溃率。

三、iOS Flutter错误

1、错误信息

image-20230526151515956

1、分析

image-20230526165153853

与游戏webView相关的异常错误达 7000+/8000 > 87.5%。

原因:app调用游戏webView提供的js,h5那边返回了不支持的类型。

影响:只是异常错误,实际无业务影响。

即处理后能降低 87.5%,预计为 5.08% = 12.5% * 40.66%

四、Android Flutter 错误

1、错误信息

image-20230526165814931

2、分析

image-20230526170106312

已处理 524+ / 1200 ≈ 43.7%

五、小结

描述 新百分比 旧百分比 旧主要问题 旧非主要问题
时间 05-31 -> 10.31 2023-05-26 2023-05-26 2023-05-26
iOS崩溃 0.419%->5.09‱ 2.70 % 2.565%:95%腾讯播放器 0.135%
Android崩溃 0.478%->3.60‱ 1.51% 0.910%:60%+模拟器 0.6%
iOS错误 40.66% 34.58%:> 87.5% webView游戏 5.08%
Android错误 4.93% 10.59% 4.530%:类型或退出异常,已处理43.7% 6.06%

End

游戏通讯协议的选择TCP?UDP?HTTP?WebSocket?

二、协议选择

通过以上对协议特性分析,我想大家心里已经有低儿了。根据小编的工作经验以及对游戏理解,有以下建议:

1、对于弱联网类游戏,必须消除类的,卡牌类的,可以直接HTTP协议,考虑安全的话直接HTTPS,或者对内容体做对称加密;

2、对于实时性,交互性要求较高,且team有过相关经验,可以优先选择websocket,其次TCP协议;

3、对于实时性要求极高,且可达性要求一般可以选择UDP协议;

4、局域网对战类,×××类,直接来UDP协议吧(公网对战,P2P的UDP还得“打洞”处理,后面分享会讲到)

其他无关

#8030 SIGTRAP(TRAP_BRKPT)

image-20230524132453348

主要原因:Webview渲染线程导致APP崩溃

发生次数:4

#8002 SIGTRAP #4002 SIGABRT #6040 SIGABRT #4028 SIGABRT #2038 SIGABRT

分析原因:用户使用的是Android模拟器,具体版本为Android模拟器Android 7.1.2,level 25,CPU架构为x86、x86_64,设备ROOT占比100%

发生次数:84+5+8

#5008 SIGABRT

分析原因:在分析崩溃日志时,发现每次发生此项崩溃是在用户从后台返回前台时

发生次数:11 (只在 redmi note 8 pro机型有上报此项错误)

#3032 SIGABRT

分析原因:SIG是信号名的通用前缀。ABRT是abort program的缩写。当操作系统发现不安全的情况时,它能够对这种情况进行更多的控制,必要的话,它能要求进程进行清理工作。在调试造成此信号的底层错误时,并没有什么妙招。 如 cocos2d 或 UIKit 等框架通常会在特定的前提条件没有满足或一些糟糕的情况出现时调用 C 函数 abort (由它来发送此信号)。

发生次数:7

#10 java.lang.NullPointerException

Attempt to invoke virtual method ‘io.flutter.plugin.common.PluginRegistry$RequestPermissionsResultListener com.lyokone.location.FlutterLocationService.getServiceRequestPermissionsResultListener()’ on a null object reference

分析原因:百度定位库在调用了空对象的方法,引发空指针问题。

发生次数:5

#3034 SIGSEGV(SEGV_MAPERR)

#03 pc 0000000000129d48 /vendor/lib64/egl/libRBGLESv2_adreno.so (rb_perform_resolve+616) [arm64-v8a::d49019399b6d1ce7075020c1e441c844]

分析原因:这是一个与SIGSEGV (Segmentation Fault)错误相关的错误消息。它指示在运行时出现了一个段错误,也称为内存访问错误。在您提供的错误消息中,指出错误发生在libRBGLESv2_adreno.so库的rb_perform_resolve函数中。libRBGLESv2_adreno.so是Qualcomm Adreno GPU驱动程序中的库文件。Adreno是Qualcomm开发的一系列图形处理器(GPU),广泛用于移动设备和嵌入式系统中。该库提供了OpenGL ES 2.0(Embedded Systems)的实现,允许应用程序在使用Adreno GPU的设备上进行图形渲染和加速。

在bugly日志上显示出现上述错误线程为Chrome_InProcGp线程,Chrome_InProcGp 线程是Webview其中一个处理渲染和绘图任务的线程。它负责管理和执行网页内容的呈现、布局和绘制操作,包括处理 HTML、CSS 和 JavaScript,解析页面内容并生成可视化的渲染结果。

发生次数:8 影响设备:2

#4102 SIGSEGV(SEGV_MAPERR)

分析原因:发生崩溃线程为Chrome_InProcGpuThreadChrome_InProcGpuThread 是 Chrome 浏览器中的一个线程,它是与 GPU 相关的线程之一。在 Chrome 的多进程架构中,GPU 线程用于处理图形渲染和加速,以提供流畅的图形显示和动画效果。

发生次数:5 影响设备:1 系统版本:Android 6.0.1,level 23

问题编号 发送次数 影响设备 备注
#12004 23 14 已修复
#9075 7 1 模拟器
#8088 6 1 模拟器
#2038 4 2 模拟器
#3034 3 1 模拟器
#2110 2 1
#5008 2 1
#8020 2 2
#10057 1 1
#10 1 1
其他 21 - 其他发送次数为1,影响设备为1的问题
汇总 72
模拟器 288->20 27.7%
已修复 23 31.9%
其他 29 40.2%

iOS bugly 崩溃

img

img

img

img

这个问题已于 4.20 提交工单,工单多次反馈已修复问题,多次升级sdk均未解决问题。

5.9重新提交工单,并投诉。自行在愿望屋app1.2.0版本hook仓储,对此方法添加容错处理,未生效。

img

工单记录

img

img

img

image-20230524132704989

上架-app链接

如何获取安卓应用下载地址

小米:

1
https://account.xiaomi.com/fe/service/login/password?_group=DEFAULT&_locale=zh_CN&sid=mideveloper&qs=%253Fcallback%253Dhttps%25253A%25252F%25252Fdev.mi.com%25252Fsts%25253Fsign%25253DKQKR691zSy1QUnqOYiKUx55Ei%2525252Fc%2525253D%252526followup%25253Dhttps%2525253A%2525252F%2525252Fdev.mi.com%2525252Fcallback%2525253FcallbackUrl%2525253Dhttps%252525253A%252525252F%252525252Fdev.mi.com%252525252Fplatform%2526sid%253Dmideveloper%2526_locale%253Dzh_CN%2526_group%253DDEFAULT&callback=https%3A%2F%2Fdev.mi.com%2Fsts%3Fsign%3DKQKR691zSy1QUnqOYiKUx55Ei%252Fc%253D%26followup%3Dhttps%253A%252F%252Fdev.mi.com%252Fcallback%253FcallbackUrl%253Dhttps%25253A%25252F%25252Fdev.mi.com%25252Fplatform&_sign=mPPUj2hILAeuPLjxfMpO%2FQwt1Gw%3D&serviceParam=%7B%22checkSafePhone%22%3Afalse%2C%22checkSafeAddress%22%3Afalse%2C%22lsrp_score%22%3A0.0%7D&showActiveX=false&theme=&needTheme=false&bizDeviceType=

[toc]

上架-提审前的自检

参考文档:

前言

1、常见问题类型

  • 隐私、权限的使用或声明
  • 登录
  • 版本检查
  • 黑名单
  • 无关h5网页
  • 内购

2、常见问题举例

背景/场景 被拒原因 解决
1.1 Android用户点击同意协议 同意用户协议前,提前获取了应用的设备信息、初始化了其他sdk 所有三方信息及sdk的初始化都放在同意协议之后
1.2 提供同城附近功能 提前使用位置 在调用的时候,才去申请位置权限
1.3 剪切板 未声明 已声明,误判,申述
1.4 获取安装列表 数美、同盾风控SDK调用 移除获取
2 使用微信、一键登录等三方登录 有三方,则一定要有苹果登录 审核期间隐藏三方登录入口
3 添加了蒲公英的版本检查 内部出现了,跳转到pgyer.com的功能 移除pgyer相关内容
4 app中的用户可创建内容,并进行朋友圈式传播 A mechanism for users to block abusive users 提供①拉黑用户;②内容举报功能,并告知其入口位置
5.1 app中需要嵌入一个h5 游戏,用来给app拉新。 提示游戏与app无太大关系。 审核期间隐藏各种入口,重提一个包
5.2 为推广,app推广图里,加入了游戏视图,而游戏本身被拒 app里隐藏了游戏, 告知其确实误操作上传了一张截图,其中的内容还没有上线。
5.3 app隐藏了游戏,游戏的获利,却出现在了流水功能中。 需告知①怎么获取,②怎么使用 告知是脏数据
6.1 app提供会员功能,会员需要充值 充值不是使用in-app purchase 为该账号重置,告知其已调整为免费使用

开发流程-提审前自检

3、审核失败的报告示例

一、隐私协议

修改建议:请确保应用内包含的所有SDK均已在应用内的隐私政策/在AppGallery Connect上提交的隐私政策内逐一罗列明示,

说明SDK收集使用的个人信息以及使用目的。请排查应用内包含的所有SDK,井在隐私政策内进行规范化的说明,以保证隐私检
測准确性。

1、微信SDK

Android接入指南 中的 《微信Open SDK个人信息处理规则》 提到如下内容:

1.1.4 前述关于收集、使用个人信息的内容适用于iOS及Android系统。

1.1.5 特别说明,在Android系统中我们会验证用户设备上安装微信APP的状态,用于确认该设备是否能够实现Open SDK的相关能力,如设备上未安装微信APP,用户将无法使用微信Open SDK能力所实现的相关功能。

所以,微信SDK也要补充获取应用的权限。

2、风控SDK

问题1:

经检测发现,您的应用中集成了”com.ishumei(数美;数美反作弊)”等SDK,但未在应用内的隐私政策/在AppGallery Connect
上提交的隐私政策内容中进行明示,不符合华为应用市场审核标准。

解决:补充隐私协议

问题2:

1.您的应用首次运行时,在展示使用权限对应的柏关产品或服务之前,提前向用户弹奇申请开后【已安装应用列表】权限,不符台华为应用市场南核标准。
测试步骤:首次打开APP,进行功能换作前,应用弹奇丰请开启【己安装应用列表】权限。
修改建议:应用如需丰请权限,应在用户使用对应业务功能时丰请,不得提前弹窗丰清权限,旦权限丰请行为需与实际使用目的一致。

解决:升级或配置来移除获取安装列表的功能

3、支付SDK

经检测发现,您的应用中集成了“com.alipay(支付宝;mPaaS;阿里乘车码;阿里芝麻信用实名认证;芝麻认证), com.sensorsdata.analytics(SensorsAnalytics;神策)”等SDK,但未在应用内的隐私政策/在AppGallery Connect上提交的隐私政策内容中进行明示,不符合华为应用市场审核标准。

解决:申述:

已跟技术排查应用内包含的所有SDK,核实愿望屋应用中并未集成com.alipay SDK。可能相关的两个地方:
1、支付宝支付,是用H5的方式调用支付宝客户端进行支付,并未获取用户任何权限和用户隐私。
2、阿里云金融级实人认证SDK,均已在应用内的隐私政策/在AppGallery Connect上提交的隐私政策内逐一罗列明示,并说明SDK收集使用的个人信息以及使用目的。
符合《审核指南》第7.2相关审核要求:
7.2 应用的隐私政策链接指向的隐私政策应当包含应用程序(包括委托的第三方或嵌入的第三方代码、插件)收集和使用个人信息的目的、方式和范围。
麻烦审核人员进行复合上线。 如有问题,随时沟通。谢谢~

4、剪切板权限

经检测发现,您的应用存在收集用户的个人信息或权限的行为(获取剪切板个人信息),但未在应用内的隐私政策/在AppGallery Connect上提交的隐私政策网址中进行说明。
修改建议:请在应用内的隐私政策/在AppGallery Connect上提交的隐私政策网址中,对应用所收集个人信息的目的、方式、范国进行说明。

解决:

5、AndroidID

容易出现的地方:网络库中的header添加deviceId

二、登录、审核账号

您的应用提供的测试帐号和密码无法正常登录应用,应用内实际只有微信登录方式(提示密码错误),不符合华为应用市场审
核标准,
修改建议:请提交应用时,在”应用审核信息”选项中提供有效的测试帐号和密码。
请参考《审核指南》 第1.21相关审核要求:https:/developer.huawei.com/consumerlcn/doc/50104

原因:风控限制(一台设备只能登录三个账号)、白名单未真的白,还存在某些限制

解决:白名单真的白。

三、版本检查

1、pgyer.com

2.1、Specifically, your app uses the itms-services URL scheme to connect to pgyer.com, which may allow for installations or updating of the app.

Guideline 2.5.2 - Performance - Software Requirements

During review, your app installed or launched executable code, which is not permitted on the App Store. Specifically, your app uses the itms-services URL scheme to connect to pgyer.com, which may allow for installations or updating of the app.

The next submission of this app may require a longer review time, and this app will not be eligible for an expedited review until this issue is resolved.

Next Steps

- Remove any reference to itms-services URL schemes from your app.
- Review the Software Requirements section of the App Store Review Guidelines.
- Ensure your app is compliant with all sections of the App Store Review Guidelines and the Terms & Conditions of the Apple Developer Program.
- Once your app is fully compliant, resubmit your app for review.

Submitting apps designed to mislead or harm customers or evade the review process may result in the termination of your Apple Developer Program account. Review the Terms & Conditions of the Apple Developer Program to learn more about our policies regarding termination.

2.2、Guideline 2.5.2 - Performance - Software Requirements

During review, your app installed or launched executable code, which is not permitted on the App Store. Specifically, your app uses the itms-services URL scheme to connect to pgyer.com, which may allow for installations or updating of the app.

The next submission of this app may require a longer review time.

Next Steps

- Remove any reference to itms-services URL schemes from your app.

- Review the Software Requirements section of the App Store Review Guidelines.

- Ensure your app is compliant with all sections of the App Store Review Guidelines and the Terms & Conditions of the Apple Developer Program.

- Once your app is fully compliant, resubmit your app for review.

Submitting apps designed to mislead or harm customers or evade the review process may result in the termination of your Apple Developer Program account. Review the Terms & Conditions of the Apple Developer Program to learn more about our policies regarding termination.

四、UGC黑名单

3、Guideline 1.2 - Safety - User Generated Content

Guideline 1.2 - Safety - User Generated Content

We found in our review that your app includes user-generated content but does not have all the required precautions. Apps with user-generated content must take specific steps to moderate content and prevent abusive behavior.

Next Steps

To resolve this issue, please revise your app to implement the following precautions:

- A mechanism for users to block abusive users

五、h5 game

Guideline 4.7 - Design - HTML5 Games, Bots, etc.

We noticed that your app offers HTML5-based games, but the games appear to be an incidental feature that do not deeply enhance or enrich the user’s experience.

Next Steps

To resolve this issue, please remove any HTML5-based games from your app that are not directly related to your app’s core functionality.

Please see attached screenshots for details.

背景:

app中需要嵌入一个h5 游戏,用来给app拉新。

被拒原因:

提示游戏与app无太大关系。

六、内购(会员)

3、in-app purchase

Guideline 3.1.1 - Business - Payments - In-App Purchase

We noticed that your app includes or accesses paid digital content, services, or functionality by means other than in-app purchase, which is not appropriate for the App Store. Specifically:

- The VIP can be purchased in the app using payment mechanisms other than in-app purchase.

回复:

尊敬的审核人员您好: 根据上一次反馈的审核意见,我们已经做出了整改 1、涉嫌App内购的会员付费业务,我们目前调整为上线免费赠送,不提供购买入口 2、涉嫌跳转其他App的问题我们也已经做出了修正,目前不需要其他App也可正常完整的使用愿望屋App 以上,请审核人员审核,致谢

End

上架-发版频率

和他们沟通了下,以后发布定在每周一。另外和测试那边说的如果在周四结束功能需求还没在测试环境验证通过,未避免在生产上回归出现问题,导致周一的发版太紧凑,会当那个需求要放在下下个版本。这样大家节奏会松点。

所以。强调,自己重要的问题,一定得及时和测试沟通,让他们提前测好。不要临时出问题,赶得来不及,上又上不了。
强调,自己重要的问题,一定得及时和测试沟通,让他们提前测好。不要临时出问题,赶得来不及,上又上不了。

ChatGPT 注册及基础使用

[TOC]

ChatGPT 注册及基础使用

一、ChatGPT的注册与使用

1、ChatGPT的注册

1、网址:https://chat.openai.com/

image-20230312192000315

如出现

image-20230315002540003

请将使用全局代理,并将节点从新加坡换成美国,显示正常。

image-20230312203356915

继续

image-20230312193957401

需要手机号码

image-20230312194026961

2、国外手机号验证码的获取

详见:科学上网_SMS

We’ve detected suspicious behavior from phone numbers similar to yours. Please try again later or contact us through our help center at help.openai.com.

注册成功的结果:

image-20230312201155525

进入后显示:

image-20230312203247171

3、ChatGPT的使用

①需先添加api-keys

Incorrect API key provided: undefined. You can find your API key at https://platform.openai.com/account/api-keys.

image-20230312202200091

进入指定页面”Create new secret key”

image-20230312202641668

创建后,显示如下:

image-20230312202720126

Default organization不用修改。

image-20230312203152634

②添加完后,即可正常请求了

之后我们再次输入,则能正常请求了:

image-20230312204207388

第2节:沙盒数据分析

[toc]

iOS-沙盒数据分析

由前一节沙盒数据查看,我们已经得到了沙盒数据了。接下来就是数据分析了。

一、沙盒目录认识

1.Documents:

  用户生成的文件、其他数据及其他程序不能重新创建的文件,iTunes备份和恢复的时候会包括此目录。

2.Library/Caches:

  可以重新下载或者重新生成的数据,数据库缓存文件和可下载内容应该保存到这个文件夹,iTunes不会备份此目录,此目录下文件不会在应用退出删除。

3.tmp:

  只是临时使用的数据,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除。

二、沙盒WebKit缓存

参考文章:WKWebView 缓存策略

End

第1节:沙盒数据查看

[toc]

iOS-查看沙盒文件(真机+模拟器)

一、查看沙盒文件—-模拟器

1、查看方法一:代码打印沙盒目录

1
2
3
4
5
6
7
8
Future<void> getDir() async {
Directory applicationDir = await getTemporaryDirectory();

Directory homeDir = await getApplicationDocumentsDirectory();
setState(() {
homePath = homeDir.path;
});
}

2、查看方法二:simpholders

https://simpholders.com/

image-20230308163407273

进入的路径和方法1中的一样。

3、查看方法二:XSimulatorMngr

在Mac上运行 XSimulatorMngr 项目,即可在电脑右上角

XSimulatorMngr

点击”XSM”即可选择

XSimulatorMngr

二、查看沙盒文件—-真机

打开 XcodeDevices and Simulators

image-20230308143425383

选择连接的真机设备 -> 想要查看的应用 -> Download Container

image-20230308150338020

下载下来的文件形如:

image-20230308150530574

我们右键,显示包内容,进行内容的查看即可,得到的文件目录,形如:

image-20230308150701097

三、查看安装包文件—-模拟器

1、查看方法一:Xcode+Build/Run+Show in Finder

对于已经编译build过(不一定要run)的工程,只要没clean掉,在Product下生成的app,右键”Show in Finder”就能够进入模拟器的沙盒文件。

image-20230308114605355

进入到的路径:

/Users/qian/Library/Developer/Xcode/DerivedData/TSOverlayDemo-blzfqaufkhrmiebwqlvgraycrsdb/Build/Products/Debug-iphonesimulator/TSOverlayDemo.app

1、路径拆解–①所在目录:

/Users/qian/Library/Developer/Xcode/DerivedData

image-20230308115651763

2、路径拆解–②目录中的位置:

/TSOverlayDemo-blzfqaufkhrmiebwqlvgraycrsdb/Build/Products/Debug-iphonesimulator/TSOverlayDemo.app

image-20230308115852849

2、查看方法二:命令(快速找到应用程序的文件夹)

再来介绍一个simctl的命令,你可以使用单个命令在文件系统上获取应用程序的资料夹,只需要知道应用程序的bundle identifier并执行以下命令:

1
xcrun simctl get_app_container booted <APPS BUNDLE ID>

得到路径如下:

image-20230308140956175

/Users/qian/Library/Developer/CoreSimulator/Devices/0E9ED083-EBF9-4C56-AD3A-143198BB4767/data/Containers/Bundle/Application/769CFC4B-3FCE-4347-93D1-8769067B2E96/TSOverlayDemo.app

1、所在目录:

/Users/qian/Library/Developer/CoreSimulator/Devices/0E9ED083-EBF9-4C56-AD3A-143198BB4767/data/Containers/Bundle/Application/image-20230308140417000

2、目录下的路径:

/Application/769CFC4B-3FCE-4347-93D1-8769067B2E96/TSOverlayDemo.app

image-20230308140614675

End

以上即为沙盒数据的查看。