文章分类:开发笔记 | 第 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设备网络数据包的方式,是分析网络问题的有效手段。