当前位置: 首页 > news >正文

应用加固 - HTTPCore DES加密防护优化

1、 cmake 使用ar 打出的静态库 不支持iOS系统。 
改为使用Xcode命令生成可执行文件及Xcode工程项目,再打包静态库

cmake .. -G Xcode -T buildsystem=1 \
-DCMAKE_SYSTEM_NAME=iOS \
"-DCMAKE_OSX_ARCHITECTURES=armv7;armv7s;arm64;i386;x86_64" \
-DCMAKE_OSX_DEPLOYMENT_TARGET=9.0 \
-DCMAKE_INSTALL_PREFIX=`pwd`/_install \
-DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO \
-DCMAKE_IOS_INSTALL_COMBINED=YES

参考文档:

CMake交叉编译及iOS与Android端进行调用CMake交叉编译及iOS与Android端进行调用 | 黑面宝宝的博客

2、 Xcode命令生成可执行文件后,再打包静态库报错

原因是Xcode的新构建系统与cmake不兼容
Xcode命令生成可执行文件时,加入修改构建系统命令,自动修改生成Xcode工程项目的构建系统 为 老的构建系统

-T buildsystem=1

参考文档:

Xcode 新构建系统 与 cmake 的兼容性解决方案

3、swift类引用c++库时 头文件报错 不存在
swift不具备C++特性,需使用Objective-C++ 即通过.mm文件中转,然后才可以在oc、swift类中去使用,.mm文件既具备OC特性又具备C++特性

4、如何将启动执行包名白名单检测的逻辑放入静态库
通过.mm文件中转,OC的+load方法中调用c++的包名白名单检测,然后 在c++方法中调用OC的 获取bundleId的方法。 后面考虑缩短操作路径,OC的+load方法中先获取包名,再调用c++的包名白名单检测,这样去除了 在c++方法中调用OC的 获取bundleId的过程,也符合 Android与iOS通用逻辑,易于统一封装

5、合并多个静态库时 使用ar解包报错
静态库包含多个架构,无法直接使用ar解包,可以指定单个架构解包,再合并,过于复杂,不考虑。改为使用 Xcode libtool 合并多个静态库,并放入cmakelist文件,使用cmake命令打包

 参考文档:

使用 Xcode libtool 合并多个静态库 : 使用 Xcode libtool 合并多个静态库 - 掘金

6、私有库 c++、swift混编发版

s.public_header_files = "TTPHttpCoreSwift/HttpCore/Des/DESTool.h"

相关文章:

  • wordpress 文章8小时/sem竞价
  • 做游戏的网站有哪些/关键词优化如何做
  • 福田附近公司做网站建设哪家效益快/渠道推广费用咨询
  • 公司官网搭建方案/谷歌seo推广培训班
  • 安徽弘泰建设管理有限公司网站/今日国际重大新闻事件
  • 做企业网站需要准备什么/域名流量查询工具
  • Redis作为缓存应用场景分析
  • kaggle竞赛 | Instant Gratification
  • Spring Boot(五十三):SpringBoot Actuator之简单实现
  • 【Python语言基础】——Python 集合
  • 关于Linux部署Tomcat的访问问题
  • 【学习笔记】CF1779G The Game of the Century
  • 一文带你秒懂十大排序
  • Linux---进程概念
  • 【C语言】数据结构基础(每日小细节025),有三数之和哦
  • 一文搞懂 python 中的 classmethod、staticmethod和普通的实例方法的使用场景
  • Redis缓存和数据库一致性
  • JavaScript - 代理与反射(代理基础)