一文学会iOS蓝牙开发
一文学会iOS蓝牙开发背景最近做APP对接蓝牙设备开发,这里分享一下iOS对接蓝牙设备中需要注意的东西,大致包含下面这些方面: Xcode蓝牙权限 如何扫描蓝牙设备、获取Mac地址 不同蓝牙设备切换 写入蓝牙命令 data转16进制字符串 16进制转String crc算法 数据异或计算,字符串异或 负数异或计算 依次写入多个命令 蓝牙开发的大致流程首先来了解一下蓝牙开发的流程,总结如下: Xcode配置蓝牙权限 -> 启动蓝牙 -> 扫描周围蓝牙 -> 连接指定蓝牙 -> 校验是否连接成功 -> 蓝牙读/写 -> 断开连接 流程图如下: 具体步骤1. 配置Xcode蓝牙权限 General Tab下,Frameworks,Libraries, and Embedded Content中添加 CoreBluetooth.framework,如下图: Signing & Capabilities Tab下,Background Modes中,勾选Uses Bluetooth LE accessories,如下图: ...
集成腾讯短视频SDK记录
集成腾讯短视频SDK记录有需求是录制一段视频并上传,服务端可见。最后才用集成腾讯SDK的方式,走了一些弯路,这里记录一下。 SDK 选择首先是SDK选择,对于iOS来说是腾讯的短视频SDK SDK集成然后是,SDK集成,按照上面链接步骤,把TXLiteAVSDK_UGC.framework和依赖的系统库集成到项目中,然后添加plist权限,再添加UGCKit模块,发现编译失败。对于我的项目来说,是因为 WCDB 库冲突,项目中使用的私有库封装了 WCDB,使用的是静态库的方式。和上面 SDK中冲突了,所以需要单独设置。修改了好久,编译通过之后,运行后发现,WCDB 初始化失败,又排查了好久,最终解决方法是: 在 Build Settings 中的 Other Linker Flags,设置: 12-force_load"${PODS_CONFIGURATION_BUILD_DIR}/WCDBOptimizedSQLCipher/libWCDBOptimizedSQLCipher.a" 如下: 然后是,发现按照上面步骤集成后,安装包大...
Mac安装ArkTS失败
Mac安装ArkTS失败错误提示: 1234567Installing ArkTS dependencies...Running 'npm install'...npm ERR! code ETARGET 参考:ArkTS 安装失败求助,是node版本太高的原因,需要降级node。 查看node版本: 1node -v 通过brew安装的node,降级node时,先安装nvm 123brew install nvm 然后通过nvm安装低版本的node 1nvm install v14.21.3 安装完成后,再次查看node版本,如果node版本还不对,再运行下面命令 1nvm use v14.21.3 node降级之后,需要清理npm 缓存, 1npm cache clean -f 然后重启DevEco-Studio,再次尝试安装,即可安装成功。 补充如果其他地方使用有高版本的node,可以安装两个版本的 node,然后使用 nvm 命令切换,或者 node 的安装不安装到全局也可。 参考 ArkTS 安装失败求助 HarmonyOS Devel...
短信过滤 APP 开发
短信过滤 APP 开发本文发布在搜狐技术产品-短信过滤APP开发 一直想开发一个自己的短信过滤APP,但是一直没有具体实施,现在终于静下心来,边开发边记录下整体的开发过程。 垃圾短信样本遇到的第一个问题是,既然要过滤垃圾短信,那首先要识别哪些是垃圾短信?如何识别呢? 参考之前训练识别钢管计数的经验,决定通过 CoreML 训练Text模型来识别,那问题来了,要训练模型的短信数据集怎么来? 一开始打算网上找到垃圾短信样本,但找了好久没找到,于是就想到用自己和家人手机里的短信,毕竟手机里短信一般不删除,也有小几千条,而且垃圾短信、推销、广告之类的应有尽有。 所以问题就变成了,如何导出 iPhone 短信? 这里笔者也查了好久,找到的第三方软件基本都是需要收费,最终发现了一个免费导出的方案。 首先不加密备份手机到电脑,如下图,选中Back up all the data on your iPhone to this Mac,点击Back Up Now,等待备份完成,备份完成后,再点击Manage Backups Manage Backups点击后,界面如下,可以看到已备份的记录,...
一点想法APP开发历程
起源2022年9月6号的时候,看到一张图片,立马收藏起来,但是不知道APP的名字,一直放在相册里收藏,打算空了自己做一个。到2023年6月21号,在逛V2的过程中看到有人问:有没有推荐的时间轴/时光回忆类的 app 或者 web 服务,最好还能控制个人数据隐私?我马上想到了这张图片,就回复了一下,于是想起来自己打算做的念头。 照片如下: 落地之前APP都是Swift开发,这个决定打算用SwiftUI练手,7月10号开始动手,界面刚开始就照着上面的照片做,列表做好了之后,再逛即刻的时候,突然发现了这个APP的名字是《好事发生》。。。赶紧下载下来收藏了起来,还加入了群。由于找到了组织,自己这个APP也就没了开发的理由,就又搁置了。 但是总感觉有些意犹未尽,《好事发生》APP定位的是好事分享,然后通过微信群增加用户活跃,总感觉和我一开始想做的不是一个东西。后面地铁上班的路上有了感觉,明确了,我要做的是一款记录琐碎想法的APP,比如上班路上、跑步的时候、洗澡的时候、散步的时候、听歌的时候,有时候会有些多愁善感的想法、或者突然冒出来的奇思妙想,因为之前自己有很多这样的经历,经常是没...
软考分享
背景为了落户,3月份的时候报名了软考-系统集成项目管理工程师,昨天出结果,过了,这里记录分享一下。 过程首先是选择考什么,然后是考虑怎么考。 考什么的要针对自己的实际情况,我选择来选择去,最后选择了系统集成项目管理工程师,因为我的目标是落户,中级的软考就满足条件了;高级的可以等中级考过之后,再来考。 然后是怎么考的问题,没考虑自学,所以要选择报班,看了希赛网、51CTO之类的,发现都要几千,贵了。后来看有人推荐江山老师,说软考中级的就找江山老师的视频看一下,软考高级的花一百多再买视频学习,我就去搜了一下,发现只要中级的只要99,而且一个月内可以退款,就买了,打算先试试看。 书籍,江山老师推荐买书,我花重金(39)买了一本书,买回来就没打开过,太厚了,不推荐购买。 学习步骤: 我是每天上下班路上,看买的视频,从精讲开始,然后是真题,然后是计算题,最后是冲刺视频;精讲的只看了一遍,有大致的印象,真题也看了一遍,计算题看了两边,然后是打印了一份十几页的资料,背了一下,最后是冲刺的视频,看了一遍。 再有就是刷题,江山老师有自己的小程序,但是我用的另一个《软考真题王》的小程序,感觉不错...
iPA重签名 + 香色闺阁、微信重签名实战
背景换手机之后,原来的香色闺阁不能下载,转移的时候就丢失了。又最近看到有人截屏iPhone上装了两个微信,一个是自己重签名的;想到自己有开发者账号,但是还没试过重签名APP,是不是可以通过重签名来安装香色闺阁,以及实现多开微信? 步骤说干就干,首先从简单的开始,先来尝试重签名香色闺阁,再尝试微信,因为香色闺阁的包内容比微信的少很多,文件容易找,相对简单,步骤如下: 重签名香色闺阁首先从网上搜素下载香色闺阁的 ipa 包,没有的可以从这里yuedu.ipa下载。 然后将 ipa 改为 zip,然后解压,会出现一个 Payload 文件夹,里面有一个StandarReader.app的文件。选中StandarReader.app,右键显示包内容,可以看到APP包中的所有内容,如下图: 重签名就是用自己的账号新建一个APP(bundleID自己定义),运行到手机上,找到运行的包(xxx/DriveData/xxx/Build/Products/Debug-iphoneos/xxx.app)或者通过打包的方式,使用AdHoc方式生成一个iPA(用于获取到描述文件和Entitle...
Flutter版本的海外剧
背景前阵子抓包,有两个海外剧的接口,最近有时间,打算温习一下 Flutter,就用来写了一个简单的 APP,包含轮播图、下拉刷新、上拉加载以及播放功能。 效果如下: 运行时需要注意 Flutter 版本的问题,可能需要修改 播放器的 package 中的代码,直接Google 搜索,修改即可,如有疑问可以联系我。 代码放在 Github 上,地址是:meiju_flutter
Xcode15 小组件兼容
背景 升级到 Xcode15 后,运行小组件,会出现WIDGET_BACKGROUND_API_ADOPTION_PROMPT的提示,如下图: 解决创建View_Extensions.swift,代码如下: 12345678910111213import SwiftUIextension View { @ViewBuilder func adoptableWidgetBackground(_ color: Color) -> some View { if #available(iOS 17.0, *) { containerBackground(for: .widget) { color } } else { background(color) } }} 然后在XXXLineProvider中,找到 ZZZ_WidgetEntryView: View,修改如下: 1...
如何开发一个 Safari 插件
背景由于常用浏览器是Safari,而 Safari 浏览器的插件比不上 Chrome,所以就有了自己开发常用的 Safari 插件的想法。 打算开发当前页面生成二维码的 Extension,因为网络原因,AirDrop 有时候搜不到手机,所以有了这个需求,而且打算这个也比较简单,所以从这个开始。 调研苹果的官方文档safari_web_extensions给出了步骤,看了好几遍,还是不知道如何下手。虽然新建项目的时候苹果帮忙把框架已经都建好了,但是还是有疑惑,疑惑的点在于: 主APP的作用是什么? Extension的作用是什么? 代码应该写在哪里? manifest.json支持的配置项有哪些,哪里可以看到,应该设置哪些? content.js、background.js分别是干什么用的,什么时候用? popup.html、popup.css、popup.js 又是指的哪部分? content.js、background.js、popup.js中操作 tab 的方法有哪些?哪里可以看到? 这些疑惑一度导致开发计划搁浅,因为没有文章来解释这些问题。于是转而去 Githu...