文章分类:开发笔记 | 第 4 页
分享在开发中遇到的问题、总结,主要为iOS、Web等前端方向文章。
iOS安全:LC_LOAD_DYLIB和LC_ID_DYLIB
本文主要从iOS Mach-O的角度讲解了iOS 主App的二进制和动态库的调用关系,涉及到LC_LOAD_DYLIB和LC_ID_DYLIB两种类型Load Command的含义及作用。
iOS Link Map
由Xcode build产生的Link Map文件能比较直观的反映出程序各部分的文件大小情况,对于减少包体积很有帮助。
iOS设备型号对应关系
使用[[UIDevice currentDevice] model]获取到的设备型号是形如iPhone10,6这样的字符串,和iPhone X等通用称呼有一一对应关系。
iOS:IDFV(identifierForVendor)使用陷阱
IDFV(identifierForVendor)在iOS系统中常被用来唯一标识设备,但使用IDFV要小心,未正确理解IDFV的原理可能会造成使用上的错误。
git瘦身:清除大文件或敏感文件记录
使用git进行版本管理的项目随着提交代码次数增多,.git目录会逐渐增大。特别是由于没有及时添加进.gitignore的大文件会显著增加.git的大小。另外,由于一时疏忽而上传的敏感文件,即使从工作目录清除还是能在历史记录中查看到。
如何获取AppStore上的ipa?
之前可以很方便的从iTunes上获取AppStore的ipa包,但现在iTunes已经不再提供ipa的下载入口了,我们可以使用Apple Configurator工具
iOS安全:iOS App注入动态库重打包(非越狱)
从AppStore直接获取的ipa重打包即使成功安装也是无法运行的,砸壳后的ipa如何注入动态库后在非越狱手机上运行?
iOS安全:使用frida-ios-dump砸壳
使用frida-ios-dump工具,部署好环境后,砸壳非常方便,推荐使用。
iOS安全:使用dumpdecrypted/Clutch 砸壳
之前都是使用Clutch砸壳,今天在分析一问题时,发现Clutch砸壳失败,于是寻找其他的砸壳工具,选择了dumpdecrypted。这里简单记录下方便后续查询。
统计iOS 8.0及之后所有正式版版本号
iOS的版本号是非常有规律的:一般来说包含一个纯数字的主版本号和一个包含数字字母的build版本号。而大多数情况下beta版等非正式版本的build版本号在最后一位是小写字母。
IntelliJ IDEA:parsing java
使用IntelliJ IDEA编译一maven工程,一直提示parsing java...。更换JDK版本即可解决问题。
Yii2 项目安装及升级
Yii Framework 是使用广泛的高性能 PHP Web 框架,易于上手,功能丰富。以 yii2-app-advanced 模板为例演示项目的部署及升级方法。
iOS framework UnitTest:Failed to load test bundle
iOS UnitTest:Failed to load test bundle from file...no suitable image found
gcc function __attribute__
attribute可以设置函数/变量属性。总结常用的gcc Attribute syntax,已备用查询。
github access tokens
github开启Two-factor authentication之后,需要使用Personal access tokens访问。
iOS:清除Xcode缓存
随着使用时间的增长,Xcode占用的磁盘空间将越来越大。你可以通过删除下面的目录来释放空间。
C库中strlen的源码实现
简单介绍了strlen的改进实现和系统库的实现。
URL Decode中对于+号的处理
如果你的产品包含iOS Android App以及后台服务,你很可能遇到一个加号 decode 后的问题。
Android:Mac下Android Studio真机调试
在iOS下真机调试只要插上设备配置好证书就可以,但Android真机调试没这么便捷,需要使用ADB工具。
Android:模拟器Charles抓包
Android模拟器不像iOS模拟器那样:仅需要配置HTTPS证书尽可以抓包。还需要在WiFi设置中配置代理服务器地址。
Android:Library module的使用
Android Library的代码结构和Android app的代码结构一样,实际上通过Android Studio创建的工程,只需要稍许修改即可变成Android Library module。
Android:must implement OnFragmentInteractionListener
使用Android Studio,创建一个使用BottomNavigationBar,ViewPager,FragmentPagerAdapter的支持类似iOS UITabBarController的多选项卡结构的项目,但Fragment一直无法正常显示。
iOS安全:Tweak clang: warning: libstdc++ is deprecated
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of iOS 7 [-Wdeprecated]
iOS安全:Mach-O Type
iOS/maxOS二进制文件是mach-o格式的,mach-o又分为几种不同的类型。本文介绍了常见的mach-o文件类型以及它们的不同之处。
Xcode 10/iOS 12适配
Apple 升级 Xcode 10 及iOS 12 后,需要对项目进行适配,下面是看川在实际开发中遇到的适配问题。
App和小程序互相跳转实践
微信小程序在今年1月份开始支持App和小程序互相调用,本文是看川的实践分享。
UTF-8 BOM EF BB BF 问题
今天遇到了一个让人抓狂的问题:服务API返回的JSON数据在微信小程序中一直无法自动解析,必须强制使用JSON.parse才可以正常解析出数据。
分享 AppStore 审核的一些经验教训
分享AppStore审核的一些经验教训。Apple Review Team每天需要审核很多App,遇到过千奇百怪的情况,不要心存侥幸,专注App质量和用户体验才是王道。
iOS Crash log 符号化
针对没有符号化的crash log文件,需要配合dSYM文件和Xcode symbolicatecrash工具进行符号化,便于分析问题。
iOS 抓取网络数据包
提供一种不需要配置代理直接抓取iPhone设备网络数据包的方式,是分析网络问题的有效手段。
