1.���xcodeԴ��
2.一分钟学会用Apple敲写C语言代码
3.xcode项目是打包打包什么意思?
4.[Dev] Xcode的记录
5.ios超级签名是什么
6.UE5 打包 iOS 超详细全图文流程附工具软件下载
���xcodeԴ��
自动修改/翻新/混淆/OC/iOS代码,自动替换类名,源源码方法名
由来
网上有很多关于如何混淆iOS源码的打包打包方法,但是源源码都不够智能,生成的打包打包方法类名要么千奇百怪,要么aaaabbbxxx这种完全毫无意义的源源码extjs 源码分析名称,要么只能修改单个文件,打包打包多个文件根本无法关联,源源码我就想有什么方法可以像真人一样去修改源码,打包打包符合语义,源源码不是打包打包胡编烂造的方法名,还可以自动修改相关联的源源码文件, 还能自己自定义单词库,于是打包打包就有了这个工具。
演示视频
划重点
1. 该工具可以让你一键翻新代码,源源码但是打包打包不是生成完整的xcode项目,需要你自己新建一个xcode项目,然后把翻新的文件拖入到新的项目中。
2. 该工具只要是ipa都可以,不限制OC,Swift,Flutter,React Native,H5类app。
3.目前免费使用,免费使用,免费使用,重要的事情说三遍
几个效果展示
使用说明
下载项目,官网下载:IpaGuard官网--IOS 应用程序ipa文件混淆加密保护工具注意:说明中提到的路径均为绝对路径,提到的逗号,都为英文逗号。使用工具运行成功后,需要自己新建OC项目再将修改后的代码与资源文件拖入新建的工程。功能说明:
未来可能添加的功能:说明文档会不定期更新,如遇到问题先检查是否依照说明文档的定义进行配置。
1. 源文件路径/import_path(必选)
OC项目文件路径包含代码文件与资源文件
如下图
2. 导出路径/export_path(必选)
OC项目导出路径。
注意,本工具并不能帮你生成完整的OC项目,只会生成OC代码文件和复制修改项目内部的krypton源码解析资源
3. 直接复制的路径/copy_only_pathes(可选)
直接复制,忽略的文件名,多个路径以,逗号隔开
4. 直接复制的文件名(不包含后缀)/copy_only_names(可选)
直接复制,忽略的文件名,不包含后缀
例:UISheetView.h 只需要输入UISheetView,多个文件用, 逗号隔开(注意全半角,逗号为英文逗号)
5. 不进行修改的文件或文件夹/no_change_pathes(可选)
深度读取,但是不会进行更改,如果引入了其他修改了的类,会相应的修改深度读取(说明):会读取文件内部的类比与项目内其他类进行关联例:xxxx/Classes/Models 不想修改,则输入这个文件夹的绝对路径, 如只输入Models,则所有包含名为Models的文件或文件夹都会标记为只读取不修改,多个文件和类用, 逗号隔开(注意全半角,逗号为英文逗号)
6. 不修改的文件或类的前缀名(区分大小写)/no_change_class_prefix_names(可选)
例:不想所有以MJ开头的类或文件,则输入MJ, 多个文件和类用,逗号隔开(注意全半角,逗号为英文逗号)
7. 不修改的文件后缀名(区分大小写)/no_change_class_prefix_names(可选)
如第六条。Model,Info -->不修改以Model,Info为结尾的文件或类
8. 只修改类名的文件名或类名/only_change_clsname_names(可选)
深度读取,只修改类名,不修改内部属性与方法,这个优先级最低,如果之前的条件包含了本参数中的路径,则不生效
9. 只修改类名的文件夹/文件路径/only_change_clsname_pathes(可选)
深度读取,只修改类名,不修改内部属性与方法的文件名,这个优先级最低,如果之前的条件包含了本参数中的路径 则不生效
. 动词词库路径/verbwords_path(可选)
提供单词数组json文件路径 修改的命名逻辑为ABAB型,A为动词,B为名词,例:getMessage
. 名词词库路径/nounwords_path(可选)
提供单词数组json文件路径 修改的命名逻辑为ABAB型,A为动词,B为名词,例:getMessage
. 类名前缀/class_prefix(可选)
给每个类添加的前缀例:MJExtension-> MJ 为前缀, SD_ScrollView-> SD_ 为前缀
. 属性名前缀/property_prefix(可选)
给每个属性添加的前缀例:property(nonatomic, strong) UIViewMJView-> MJ 为前缀, property(nonatomic, strong) UIView SD_View-> SD_ 为前缀
. 需要过滤的方法路径/filter_methods_path(可选)
把你需要过滤的方法写入一个文本文件,然后将该文本路径填入到此项输入框注意事项:其他说明:本工具已经过滤了大多数常用系统方法,大部分情况下不需要配置此项。
. 类名和属性名后缀路径/property_subfix_path(可选)
给每个属性添加的后缀,需要一个配置json文件路径json格式:注意:key一定要与上面一直,jmeter源码部署否则系统无法读取,工具会遍历数组,为对应的类匹配后缀,在配置改文件时,包含相同字符串的类,需要将类名更长的类放在前面,不然匹配结果会达不到预期。例如:UITableView与UIView,配置时需要将UITableView放在View之前,如上面的例子。
. 为方法名添加介词/add_preposition(可选)
工具内置了所有介词,可选择性添加例:getMessage添加介词后-> getAMessage or getTheMessage具体介词完全随机添加
. 修改分类/change_category(可选)
工具会自动识别分类,可选择是否修改
. 将原代码行作为注释写入/add_original_comments(可选)
由于本工具不保证修改后百分百不报错,将修改过原属性声明和方法名作为注释写入,方便在重建工程后报错与原工程进行对照,建议设置
. 修改方法内部局部变量名/change_local_property(可选)
定义在方法内部的局部变量,可选择是否修改
. 综合配置路径(可选)
json配置文件路径,内部必须为字典,key为说明条目标题后面的英文请注意:配置文件优先级高于输入框输入的规则,配置文件存在时, 输入框输入的配置不生效例:(可直接复制修改)
关于bug
虽然工具本身经过了完整的商业项目的考验,但由于每个人的代码风格不一样,工具不可避免会出现解析不了的情况,开发者建议过滤C语言的文件,与第三方库,减少出错的可能性,还是无法运行成功,你可以发isssue至客服邮箱或根据报错Log自行删减项目文件,其中利弊,自行斟酌。
一分钟学会用Apple敲写C语言代码
本文主要讲解如何在一分钟内利用Apple的Xcode编写C语言代码。Xcode作为Apple官方的IDE,对于Mac程序开发至关重要,它支持C、C++、Objective-C和Swift等多种编程语言。安装Xcode非常简单,兔客源码只需在AppStore下载即可。以下是快速上手步骤:
1. 打开Xcode,选择“创建新Xcode项目”,在新建工程中选择“OSX”->“应用程序”->“命令行工具”,设置产品名称和编程语言(C语言)。
2. 填写项目信息,如产品名称、组织名称和标识符,然后创建工程。
3. 在Xcode中运行C语言程序,首先创建工程,添加源代码,然后使用编辑器技巧,如关闭浏览器窗口(command+shift+E)、Cocoa文本域的快捷键,以及文件查找和配合.h文件的打开方法。
4. 学习调试技巧,包括暴力调试(通过NSLog输出信息)和使用调试器(如GDB)进行更高级的调试。Xcode的调试功能非常强大,包括微型调试器、调试窗口和控制台。
通过本文的引导,你已经对Xcode有了初步了解。深入学习Xcode需要不断实践,如果你需要C/C++学习资料,可以私信获取。记住,学习编程是个团队行为,找到合适的伙伴一起进步会更有效。
xcode项目是什么意思?
xcode项目是指使用苹果公司开发的开发工具Xcode创建的iOS或macOS应用程序。Xcode是苹果公司为加快应用程序开发速度而推出的工具,其集成了编码、调试和测试工具,可以为iOS和macOS开发者构建各种应用程序。通过Xcode的图形界面,开发者可以轻松创建应用程序并在模拟器中进行测试。xff的源码Xcode项目的目的是帮助开发者快速构建出高效、质量高的应用程序。
Xcode项目的主要组成部分包括源代码、文件和资源,这些组成部分需要按照一定的规则组织在一起才能构成一个完整的Xcode项目。开发者可以使用Xcode工具创建应用程序、源代码文件、静态库、动态库等组件,并将它们组合成一个完整的项目。通过Xcode项目,开发者可以轻松地管理项目中所需要的文件和资源,并进行版本控制和代码管理。
Xcode项目具有强大的协同开发能力,多个开发者可以同时在同一个项目中开发、测试和构建应用程序。开发者可以使用Xcode集成的代码管理工具Git进行版本控制和代码管理,方便快捷地创建和合并分支、提交新功能和修复bug。此外,Xcode项目还可以集成持续集成工具,让开发团队在保证代码质量的同时,快速交付高质量的软件。Xcode项目是苹果公司为开发者提供的强大工具之一,帮助开发者快速、高效地构建各种应用程序。
[Dev] Xcode的记录
构建过程可以分为预处理(preprocess) -- 编译(build) -- 汇编(assemble) -- 连接(link)这几个大的过程。
LLVM(Low Level Virtual Machine)是强大的编译器开发工具套件,其核心思想是通过生成中间代码IR,分离前后端(前端编译器,后端目标机器码)。这样做的好处是,前端新增编译器,不用再单独去适配目标机器码,只需要生成中间代码,LLVM就可以生成对应的目标机器码。下面就是LLVM的架构。
预处理:头文件引入、宏替换、注释处理、条件编译等操作;
词法分析:读入源文件字符流,组成有意义的词素(lexeme)序列,生成词法单元(token)输出;
语法分析:Token流解析成一颗抽象语法树(AST);
CodeGen:遍历语法树,生成LLVM IR代码,这是前端的输出文件;
汇编:LLVM对IR进行优化,针对不同架构生成不同目标代码,以汇编代码格式输出;
汇编器生成.o文件:将汇编代码转换为机器代码,输出目标文件(object file);
连接器:将目标文件和(.dylib、.a、.tbd、.framework)进行连接,生成可执行mach-o文件。
dwarf:debugging with attribute record formats,一种源码调试信息的记录格式,用于源码级调试;
dSym:debug Symboles,调试符号,即符号表文件。符号对应着类、函数、变量等,是内存与符号如函数名、文件名、行号等的映射,崩溃日志解析非常重要。可以用dwarfdump 命令来查看dwarf调试信息。
DW_AT_low_pc表示函数的起始地址 DW_AT_high_pc表示函数的结束地址 DW_AT_frame_base表示函数的栈帧基址 DW_AT_object_pointer表示对象指针地址 DW_AT_name表示函数的名字 DW_AT_decl_file表示函数所在的文件 DW_AT_decl_line表示函数所在的文件中的行数 DW_AT_prototyped为一个 Bool 值, 为 true 时代表这是一个子程序/函数(subroutine) DW_AT_type表示函数的返回值类型 DW_AT_artificial为一个Bool值,为true时代表这是一个由编译器生成而不是源程序显式声明
使用symbolicatecrash命令行
使用dwarfdump和atos工具
xcode-project-file-format这里对xcodeproj文件格式进行了说明。
xcodeproj文件包含以下元素
总体说明
结合上面的说明,对project.phxproj文件结构进行说明
项目中setting有2处,project和target中都有,那么他们之间的关系是怎样的?
在Xcode中添加代码块步骤
1、选择代码,右键选择 create code snippet,或者在顶部导航,选择Editor-create code snippet;
2、编辑信息和代码即可,其中completion表示输入的快捷方式;
3、需要修改的参数用形式添加 ;
4、所在目录~/Library/Developer/Xcode/UserData/CodeSnippets 。
还需要注意xcshareddata目录下
参考
Xcode build过程中都做了什么 Xcode编译疾如风-3.浅谈 dwarf 和 dSYM iOS崩溃日志解析&原理 - 掘金 LLVM编译流程 & Clang插件开发 8. Xcode 工程文件解析 - 掘金 XCode工程文件结构及Xcodeproj框架的使用( 二 ) XCode: Target Settings和Project Settings的区别 Xcode-项目重命名
ios超级签名是什么
ios超级签名是对苹果安装包用企业号进行打包的一个过程,可以只提供IPA格式的安装包进行签名操作,也可以直接通过Xcode源码进行打包。
iOS是由苹果公司开发的移动操作系统。苹果公司最早于年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以及AppleTV等产品上。iOS与苹果的MacOSX操作系统一样,属于类Unix的商业操作系统。原本这个系统名为iPhoneOS,因为iPad,iPhone,iPodtouch都使用iPhoneOS,所以WWDC大会上宣布改名为iOS(iOS为美国Cisco公司网络设备操作系统注册商标,苹果改名已获得Cisco公司授权)。
UE5 打包 iOS 超详细全图文流程附工具软件下载
另见: UE5 打包 Android 全图文流程附工具软件下载
教程目标前置条件教程环境软件下载
见文末
详细步骤
VMware
在 Windows 上安装 VMware 虚拟机(以下简称 VM )
这里选不选无所谓
点击许可证,输入序列码,可直接激活。也可安装完毕后再激活。
(关注微信公众号“GameDevLearning”后回复 “VMware .5 序列码”获取序列码。)
添加虚拟机的 MacOS 支持
下载 unlocker
关闭虚拟机
停止所有 VM 服务
下载 unlocker ,解压之,放到 VMware 的安装目录
等待安装完毕
之后务必重新回到服务页面,开启所有 VM 相关服务,否则后面 MacOS 可能没法正常联网。
MacOS 虚拟机的创建和设置
这里点浏览时可能默认只显示 iso 文件,自己手动在全部文件里找即可。
这里如果没有 MacOS 可选的话,就是 unlock 那步没做好,再走一遍即可。
磁盘最好 G 以上,否则后面可能不够用。
内存 8G 以上,否则可能卡。
在 smc.present = "TRUE" 后加一行输入 smc.version = "0"
如果蓝屏或者显示 BootManager,大概是你的 MacOS 镜像有问题,下载我们的即可。
MacOS 的安装
MacOS 的配置
点不出这个界面的话,大概率是之前 VM 的服务没有重新开启,开启后重启 MacOS 再操作即可。
MacOS 升级
不升级的话,可能无法正常下载和使用 XCode 。
VMTool 安装
不安装的话,可能无法在虚拟机和主机之间共享文件,如证书无法拖到主机。同时也可能无法把虚拟机里的 MacOS 全屏。
XCode
说明
确保苹果系统已经更新到了 Monterey 版本(.3+),否则无法下载和安装 XCode 。
XCode 安装
不让安装的话,大概率是 MacOS 系统不匹配,按上文所述的升级系统即可。
下载要点时间,安装也要点时间,安装完毕之后转圈也要一些时间,耐心等待即可。
XCode 配置
Product Name 要跟 UE 游戏工程里的 PROJECT_NAME 保持一致。
注意,这里的 Organization Identifier 格式为 com.mydomain ,虽然基本可以随意,但是要记住,因为后面 UE 中会用到。
如果用的虚拟机,插上手机后要点虚拟机右下角的图标让手机连接虚拟机,否则可能导致 XCode 这里看不到目标手机。
插上手机后,记得在弹出的窗口中选择信任。
要让这个新工程在你的手机上运行一下,“这是为了给 mobileprovision 增加设备 ID”
不一定是AppleID的密码,如果Mac有登录密码,这就是登录密码
MacOS 证件获取和导出
P 证书的名字随意,但最好单纯以字母和数字命名。
密码推荐用 MacOS 密码,免得密码多了搞混。
把这个目录下的2个 mobileprovision 文件直接拖到 Windows 主机上,以便后面在 UE 里使用。
在 Windows 主机上新建一个文本文件,名字叫做“.keychain.password”,里边填写 MacOS 的登录密码。
把 .keychain.password 文件拖到 MacOS 的用户根目录,就是 MacOS 中名字是你的用户名的那个目录。
拖过去之后你可能没法直接看到文件,没关系,只要拖动成功了,那就是已经存在,只是隐藏了,下边让你看看。
远程登录支持
拷贝下来,后面要用。
Itunes
说明
请从本文给出的下载地址下载,如直接下载 Windows Store 的,可能无法运行或导致打包失败。
Itunes 安装
Unreal 源码修改
总览
MobileProvisionUtilities.cs
倘若这个文件没有,去 git 的 unreal 页面,找到对应引擎的源码的这个工程,拷贝到对应地址即可。
IOSToolChain.cs
UEBuildIOS.cs
UE5 中的配置
这里不清楚是哪个 mobileprovision 文件的话,两个都导入就好(每个文件导入一次)
看到哪个 mobileprovision 的 Status 是 Valid,就在前面打钩选中。
导入 p 后会让输入证书的密码,输入之前设置的密码即可(就是 MacOS 的登录密码)。
看到状态是 Valid 就对了,前面打钩。
[PROJECT_NAME]不用修改,会自动设置的。但是记得确保 UE 里的跟 XCode 里的都一致。
这里的包名用之前 XCode 工程新建的时候提到的那个包名
按回车
会让提示输入一些信息,如红框处所示,分别输入 yes、MacOS 登录密码、直接回车(2次)即可。
按回车,输入登录密码,最后在提示“请按任意键继续”的地方继续按回车,等待几秒后,可见下图。
这里会自动设置好,除非之前的操作出问题了(出问题大概是 MacOS 的远程没设置好,或者密码错了等等,仔细检查前面的步骤即可)
在 UE5 中打包 iOS
插上 iPhone , 在虚拟机里可以看到如图提示,选“连接到主机”,然后在手机上点“信任”。
前面的操作没问题的话,这里就是单纯的手机名字了。如果不是这样,检查上一步的操作,以及 iTunes 的安装。
选择 IPA 文件等打包文件的存储地址。
打包成功后会自动安装到手机上,LOG 中有 IPA 地址,本地也会有对应的 IPA 文件。
问题答疑软件下载扩展阅读
声明:本文来自公众号:GameDevLearning,转载请附上原文链接及本声明。