首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS开发笔记(七)

正文 这次分享三个有意思的问题:二维码生成、Xcode8单元测试的问题、添加新字体。 二维码生成 iOS平台上的二维码生成有很多第三方库,也可以使用原生的方法,这里选用的是QREncoder。...设计的同学给出的颜色值是0xFFF04F43,格式是ARGB。 我尝试的解决方案是:遍历像素,把黑色的颜色值改成红色。...的颜色值会被忽略; 同样的,有部分透明的边会出现0x00ffffff,如果仅仅以RGB的值=0xffffff进行判断,会导致额外的黑边; Xcode8单元测试的相关问题 1、单元测试的断点失效 stackoverflow...上有关于breakpoints in unit test not getting hit的解决方案,但没有解决我的问题,原因可能并不一样。...新建Unit Test的时候,这里的属性值变成了DWARF,没有附带dSYM的符号文件,所以无法断点。

1.4K90

扒虫篇-Bug日志 Ⅰ

Snip20160928_1.png 之前在集成调试 AsReader的时候,遇到的bug,是一家日本企业生产的产品,官方文档比较简单而且还不写清楚,表面上看是报的不兼容 64位模拟器的错误,我用真机调试还是报相同的错误...在Xcode8之后,创建的XIB文件默认是6s尺寸的大小。 但是Xcode8打开之前旧项目的XIB或SB文件时,会弹出下面的弹框, 这时候一般直接选择Choose Device即可。 ?...Snip20161031_1.png 这个Bug可把我恶心坏了,弄了整整一天,心力交瘁,字面意思上看是 一个 .a 不支持 arm64 我们查看下静态库所支持的架构,打开终端输入查看命令lipo -...这样的就可以看到 .a 所支持的架构了,我查出的报错的 .a 根本没问题,而且人家原本的Dome 是可以跑起来的。...最后我联想到了工程设置可能是问题的所在,经过反复的比对,最后发现了坑爹的Bug,所在。 ?

92220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    兼容-记录Xcode8.0恢复插件全过程

    前言 Xcode 的插件大大丰富了 Xcode 的功能,而且有了 Alcatraz ,插件的管理也非常容易,但是有个非常恼人的问题:一旦升级 Xcode ,插件就失效!...---- Xcode8为什么禁止外来插件 我们可以看到在Xcode8中支持了开发插件工程,并且为我们提供了一个插件模板,开发的插件可以上传到App Store下载。...因为那个方法我试过了,但是没有效果!! T_T 下面说的这个方法是有效的,详细介绍下。...Paste_Image.png 这里我要说一下,这个时间很长,长的很,反正我当时等了半个小时也没有好,最后下班后放那里回家了,第二天来了,反正是好了。...---- 小结 至此,Xcode8 的插件就可以恢复使用了。 参考文章 参考文章

    1.2K20

    conan入门(十七):支持android NDK (armv7,armv8,x86,x86_64)交叉编译的统一profile jinja2模板

    如果针对不同的Android目标平台(armv7,armv8,x86,x86_64)都要维护一个profile也是挺麻烦的。...,设置target_host,api_level # # 优先使用上级传入的 android_abi 变量,未定义则使用环境变量ANDROID_ABI...",-1)) %} {# 优先使用上级传入的 api_level 变量,未定义则使用环境变量ANDROID_NATIVE_API_LEVEL 否则使用默认值 default_api_level...对于其他架构,所有工具的前缀都相同 # # see also https://developer.android.com/ndk/guides/other_build_systems...定义来确定目标平台,如果都没有定义则默认为armv7,对于Android API Level也是同样的处理,通过上级模板文件传入的api_level定义来确定目标平台,未定义则根据不同的平台有不同的默认值

    1.5K40

    IOS开发问题索引(九)

    NSIndexSet 是个无符号整数集合。集合中的元素不可变的、不可重复。常被用来当作索引使用。就从它字面上理解,就叫做:索引集合。 2.NSIndexSet的一些常用方法。...这个正是我整理这篇日志之前遇到的,将.a、.m、.framework等引入到工程当中,却没有勾选当前Build的target,会出现这个问题,可以选中特定的文件,在右侧边栏中选中target。...4、未包含处理器架构指令集的问题。...我发现console打印出的日志显示在安装的app的名字是乱码,通过查看build settings发现过product name改的是中文(解决方法)。...Xcode8打包上传app,构建版本按钮不显示 http://blog.csdn.net/u013306324/article/details/52684076 [iOS Xcode8]上传AppStore

    87230

    汇编寄存器的规则

    # 汇编寄存器的规则 在本章中,您将了解到 CPU 使用的寄存器,并研究和修改传入函数的参数。您还将了解常见的苹果计算机架构,以及如何在函数中使用它们的寄存器。这就是所谓的架构调用约定。...此外,您还可以找到一个十六进制的数字常量,如 0x228。这个常数之前的美元符号告诉你它是一个绝对值。现在不需要知道这段代码在做什么,因为您首先需要了解每个符号的含义。...# x86_64 vs ARM64 作为 Apple 平台的开发人员,学习汇编时要处理两种主要架构:x86_64 架构和 ARM64 架构。...x86_64 是 64 位体系结构,这意味着每个地址最多可以容纳 64 个 1 或 0。 另外,较旧的 Mac 使用 32 位架构,但是 Apple 在 2010 年底停止生产 32 位 Mac。...由于最好专注于您将来的需求,因此本书将主要关注两种架构的 64 位汇编。 此外,您将首先开始学习 x86_64 程序集,然后过渡到学习 ARM64 程序集,以免感到困惑。 好吧,不要太困惑。

    2.6K50

    【链安科技】EOS资产Asset乘法运算溢出漏洞

    正确的代码顺序应该是这样: image 下面来看检测(1),这是一个非常重要的检测,目的是确保两点: 1.乘法结果没有导致符号改变(如两个正整数相乘,结果变成了负数) 2.乘法结果没有溢出64位符号数(...这是因为在下面的语句中,amount和a的类型都是有符号整数: image 在C/C++标准中,有符号整数的溢出属于“未定义行为(undefined behavior)”。...当出现未定义行为时,程序的行为是不确定的。...所以当一些编译器(包括gcc,clang)做优化时,不会去考虑出现未定义行为的情况(因为一旦出现未定义行为,整个程序就处于为定义状态了,所以程序员需要自己在代码中去避免未定义行为)。...简单来讲,在这个例子里面,clang在做优化时不会去考虑以下乘法出现溢出的情况: image 那么在不考虑上面乘法溢出的前提下,下面的表达式将永远为true: image 于是一旦打开编译器优化,整个表达式就直接被优化掉了

    79530

    ELF文件从形成到加载轮廓

    格式(在 Linux/x86_64 系统中)。...知识点扩展: 编译器会根据目标架构(如 x86-64)生成对应的机器代码。 如果源代码包含外部函数或变量引用(未定义符号),目标文件会记录这些符号的重定位信息,供链接器解析。...解析符号表(.symtab)和重定位表(.rela),解决未定义符号(如函数或变量的引用),确保所有地址引用正确。...未定义符号(Undefined Symbols): 如果源码引用了外部函数或变量(如标准库的 printf),但未在当前文件定义,.symtab 会标记这些符号为 UND(未定义),等待链接器从其他目标文件或库...Binding:符号的绑定属性,常见绑定包括: LOCAL:本地符号,仅在当前文件可见。 GLOBAL:全局符号,可被其他文件引用。 WEAK:弱符号,如果未定义则可被忽略。

    5710

    Xcode 常见 CLI 工具

    前言 Hi Coder,我是 CoderStar! 在新的一年里,祝小伙伴们工作顺利,升职加薪。 这篇文章是年前写的,不要说我卷 。...前置工具 在我来介绍这套工具包其他工具之前,我先来介绍两个工具,我称它们为前置工具,因为有了这两个工具,我们才能更好的使用其他的工具。...nm XXX # 查看所有符号,会打印出符号来源哪个地方 nm -nm XXX # 找到未定义的符号,也就是外部符号 nm -u XXX 前面我们曾经查看过xcodebuild的符号,输出如下。...,其中全部的类型包括: A 该符号的值在今后的链接中将不再改变; B 该符号放在 BSS 段中,通常是那些未初始化的全局变量; D 该符号放在普通的数据段中,通常是那些已经初始化的全局变量; T 该符号放在代码段中...,通常是那些全局非静态函数; U 该符号未定义过,需要自其他对象文件中链接进来; W 未明确指定的弱链接符号;同链接的其他对象文件中有它的定义就用上,否则就用一个系统特别指定的默认值。

    3.5K21

    iOS编译原理

    后端:以中间代码作为输入,进行与架构无关的代码优化,接着针对不同架构生成不同的机器码; 补充: 前后端以中间代码作为媒介,使得前后端可以独立的变化,互不影响; 这样的好处在于:新增一门语言只需要修改前端...,而新增一种CPU架构只需要修改后端即可; 2.LLVM与Clang LLVM是苹果当前使用的编译器: LLVM是一套编译器基础设施项目,为自由软件,以C++写成,包含一系列模块化的编译器组件和工具链...xcrun clang -fmodules -c main.m -o main.o 使用file命令,查看目标文件类型: % file main.o main.o: Mach-O 64-bit object x86...命令,查看文件类型 % file main main: Mach-O 64-bit executable x86_64 % ....; 链接器链接多文件时会创建符号表,用于记录所有已经定义和未定义的符号; 出现相同符号,会报错:"ld:dumplicate symbols"; 在其他目标文件里没有找到到符号,会报错:"Undefined

    1.6K20

    【Linux 运维知识】Linux 编译后的内核镜像大小

    大小变化取决于所编译的模块和驱动程序数量,以及是否启用了调试符号等选项。...调试符号:启用了调试信息(CONFIG_DEBUG_INFO)会显著增加内核镜像大小。对于开发和调试用途,未压缩的内核镜像可能会达到几百 MB。...编译选项:例如启用特定功能(如文件系统、网络协议栈等)或禁用一些不需要的功能,都会影响内核大小。 架构:不同硬件架构上的内核大小也会有所不同。...x86_64 架构的内核镜像一般比 ARM 等嵌入式架构的内核更大。 3....示例 在一般的 Linux 发行版中,常见的内核镜像大小: Ubuntu(x86_64 架构): 压缩内核镜像 (vmlinuz) 大约为 7MB 到 12MB。

    20010

    iOS符号冲突(duplicate symbols)

    -force_load;(需要注意两个库的版本是不是一致的) 所以这里的直接编译通过的原因:工程中已经有了SSUser类的符号,所以链接的时候会直接使用工程中的SSUser符号,所以编译运行完的结果是调用了工程中的...: 2019-07-17 16:20:33.576468+0800 LearnSymbol[86290:7683465] main test 附1:这为了简化逻辑,这里只有模拟器的cpu架构,没有包括...armv7/arm64,用 lipo -info LYTestFramework指令可以看到: LYTestFramework is architecture: x86_64; 如果有多种cpu架构...,需要分别对每种架构进行处理,再合并。...总结 符号冲突是引入第三方库的时候,有可能会遇到的问题。 当库A和库B的符号出现冲突时,如果库A和库B冲突的符号,是功能相同的符号,则可以选择去掉其中一个符号,选择只加载其中一个库的符号。

    4.7K30

    JavaScript注意点:Array.prototype.map

    如果你想要一个 TLDR,我在这个故事的结尾包含了一个简短的总结。...为了我们的目的,记住这0是假的就足够了。 基数 0 1 2 3 4 5 6 7 8 9 10 当我们从零数到九时,每个数字(0-9)都有不同的符号。...但是,一旦达到十,我们就需要两个不同的符号(1 和 0)来表示数字。这是因为我们的十进制计数系统的基数(或基数)为 10。 基数是最小的数,只能用一个以上的符号表示。...函数参数 可以使用任意数量的参数调用 Javascript 中的函数,即使它们不等于声明的函数参数的数量。缺少的参数被视为未定义,额外的参数将被忽略(但存储在类似数组的参数对象中)。...,该符号'7'不存在。

    1.1K10

    小心两个共享库共用同一个静态库

    _64 x86_64 GNU/Linux 2.6.16 附: 1)如果你想覆盖系统调用,可以使用LD_PRELOAD或/etc/ld.so.preload,也可进一步了解RTLD_NEXT;...2)静态库顺序关系:假设X.a依赖Z.a,则顺序为X.a Z.a,亦即被依赖的排在后面,否则链接时会报某些符号找不到(详细请参见:链接静态库的顺序问题)。...比如程序的公司名、发布版本号等 .line 调试时的行号表,即源代码行号与编译后指令的对应表 .hash 符号哈希表 .dynamic 动态链接信息 .debug 调试信息 .comment...version-script,exports.lds,-soname=libqhttpd.so -rpath 增加共享库搜索路径 --retain-symbols-file表示不丢弃未定义的符号和需要重定位的符号...--export-dynamic 创建一个动态连接的可执行程序时, 把所有的符号加到动态符号表中

    2.7K50

    使用xmake构建c++20 modules

    目前xmake已经完全支持了msvc/clang的modules-ts构建实现,而对于gcc,由于它的cxx-modules分支还在开发中,还没有正式进入master,我看了下里面的changelog,...的相关介绍我就不多说了,这边主要还是介绍下xmake下如何去构建c++modules项目,我们先来看一个简单的例子: target("hello") set_kind("binary")...hello module未定义的编译器错误。...msvc 对于msvc下的处理,我就不细说了,其实整个逻辑是差不多的,我就直接贴下执行的命令过程吧: cl.exe -c /experimental:module /module:interface /...而且里面的flags使用经常在变动,感觉还没有完全稳定下来,因此这里我懒的去折腾了,等什么时候gcc正式版支持了再说吧。

    1.8K40

    【翻译】看我如何利用PHP的0day黑掉Pornhub并获得2W美刀奖励

    由于我们的主要目标是执行任意代码,因此我们需要以某种方式控制x86_64上称为RIP的CPU指令指针。...如果可以通过某种方式获得了Pornhub服务器中所使用的的PHP可执行文件(例如,通过找到目标所提供的确切软件包),则可以在本地查找所需功能的偏移量。...一旦我们创建的伪造的对象作为参数传递给setcookie函数,就会发生以下情况: ?...根据x86_64调用约定,函数的前两个参数是RDI和RSI,因此我们也必须找到pop %rdi和pop %rsi对应的gadgets。这些是很常见的,因此很容易找到。...这导致了对我们提供的add_ref函数的调用,即它使我们获得了程序计数器(program counter)的控制权。 然后,我们的ROP链准备了所有已讨论的寄存器/参数。

    1.9K40

    iOS逆向之Mach-O文件

    关键字修饰的只读常量__DATA段[__DATA段(segment)所包含的节(section)]__got:全局非懒绑定符号指针表__la_symbol__ptr:懒绑定符号指针表__mod_init_func...MH_DSYMrelease模式下,打模拟器包或真机包就会在app同级目录下生成一个.dSYM文件,如下:[dSYM]这个.dSYM格式的文件是iOS App的符号表,存储着二进制文件的符号信息。...之所以被称为通用二进制(胖二进制)是因为一个通用二进制文件包含了多种不同架构的二进制文件。通用二进制文件可以在不同的架构的CPU上执行。...如果Architectures环境变量支持的架构不能满足我们的开发要求,我们可以通过other添加架构。...比如:另外,Building settings->Valid Architectures代表可用的架构,这个参数也是支持配置的,如下是美团在不同打包模式下支持的架构:最终我们打包的ipa包支持的架构取决于

    10.9K10

    【计算机本科补全计划】C++ Primer 第二章 【变量和基本类型】

    正文 1、 算数类型 算数类型包括:整形和浮点型 整形又分为有符号的和无符号的,有符号的为默认,无符号的需要声明 unsigned。...; // 假设char占8bits 那么c2的值是未定义的 上面几种都是不会报错的类型转换,另外还有很多形式的类型转换, 如果你都想知道,那么就把你想到的都写出来实验一遍就好了!...如果是定义于函数体外的变量会默认初始化为0,而函数体内的内置函数变量不被初始化,即未定义初始化值。 当然,对于类,如果在类的定义中有初始化的值,就不需要函数体来操心了。...在函数体外的就是全局作用域,一旦声明以后,全局作用域的变量就可以在整个程序内部通行使用,但是会存在地头蛇问题,如果在在局部作用域内定义了一个同名的变量,那么就会覆盖。...但是一旦出了局部作用域,就会重新回到原来的全局变量。

    706110
    领券