-ObjC 这个flag告诉链接器把库中定义的Objective-C类和Category都加载进来.这样编译之后的app会变大(因为加载了其他的objc代码进来).但是如果静态库中有类和category的话只有加入这个flag才行. -all_load 这个flag是专门处理-ObjC的一个bug的.用了-ObjC以后,如果类库中只有category没有类的时候这些category还是加载不进来.变通方法就是加入-all_load或者-force-load.-all_load会强制链接器把目标文…
前言 文章比较长,所以在文章的开头我打算简单介绍一下这篇文章将要讲述的内容,读者可以选择通篇细度,也可以直接找到自己感兴趣的部分. 既然是谈 Cocoapods,那首先要搞明白它出现的背景.有经验的开发者都知道 Cocoapods 在实际使用中,经常遇到各种问题,存在一定的使用成本,因此衡量 Cocoapods 的成本和收益就显得很关键. Cocoapods 的本质是一套自动化工具.那么了解自动化流程背后的原理就很重要,如果我们能手动的模拟 Cocoapods 的流程,无论是对 Cocoapod…
1.问题描述 一般我们在xcode里面配置包含工程目录下头文件的时候,都要关联着相对路径和绝对路径,如果只是自己用这个项目,用绝对路径的问题不大,但是如果你把工程发给别人,别人就要在改这个绝对路径,这时候绝对路径的缺点立马出现. 所以在修改User Header Search Paths这个选项的时候使用"$(SRCROOT)/当前工程名字/需要包含头文件所在文件夹" 将上面的双引号里面的字符串拷贝之后,你会发现这个"$(SRCROOT)",会自动变成当前工程所以的…
如图: 1.查找USE_STDPERIPH_DRIVER,发现这个宏出现在stm32f4xx.h头文件中,并且有如下代码: 也就是说,通过已经定义了USE_STDPERIPH_DRIVER宏加载stm32f4xx_conf.h这个头文件: 而stm32f4xx_conf.h文件中包含了各种外设驱动头文件,如下: 2.查找STM32F429_439xx主要出现在system_stm32f4xx.c.stm32f4xx_conf.h等几个文件中,部分代码截图如下: stm32f4xx_conf.h…
WatchKit app需要一个现有的iOS app.在iOS app工程中,添加一个新的WatchKit app target,它包含了WatchKit app和WatchKit extension中需要的资源.他们会和iOS app一起发布到appstore. WatchKit app target提供了初始创建WatchKit app,glances,以及自定义通知界面的的所有资源.iOS模拟器可以用来测试所有的界面和行为. 注意:WatchKit开发需要iOS 8.2或更新的SDK. 添…
1.首先先清除pch文件在工程中的作用: 存放一些全局的宏(整个项目中都用得上的宏) 用来包含一些全部的头文件(整个项目中都用得上的头文件) 能自动打开或者关闭日志输出功能 2.由于新建的XCode工程文件是没有pch文件的,原因可能是因为大家把大量的头文件和宏定义放到pch里边,导致编译时间过长.苹果去掉他可能是要加快编译时间增加用户体验.虽然失去了编程的便利性. 所以需要我们自己手动新建一个pch文件,步骤如下: Command+N,打开新建文件窗口:ios->other->PCH fil…
转自:http://blog.csdn.net/zhaozy55555/article/details/8557175 project就是一个项目,或者说工程,一个project可以对应多个target,比如一个xxx游戏的project,有free版的target,收费版的,或者还有什么节日版,product就是target build出来的一个app targets之间没一毛钱关系.但target和project有关系,target的setting会从project settings中继承一…
在前边的代码规范中提及:团队开发或者个人开发为了打包或者自己工程中避免创建新的类核第三方系统的重复增加类的统一前缀!!又很多人问我这种开发小技巧.下面我就普及一下: 1.首先选中你的工程配置 2.然后点击开发空间的右侧 3.在project document 中的class prefix 中加入你们团队个性的前缀就好了!…
1. 来自 http://blog.csdn.net/fanjunxi1990/article/details/9352917 XCode工程目录里面,有时你会发现2个不同颜色的文件夹,一种是蓝色的,一种是黄色的,最常见的是黄色的,我也是最近学习html5的时候,发现还有蓝色的文件夹呢, 来上图看下吧 上图所示,蓝色的是folder 黄色的是group. 那么它们有什么区别呢? 1. group 和 folder的区别 group 一般只在你的工程中是文件夹的形式,但是在本地的目录中还是以散乱的…
一个xcode工程默认是在一个主线程的,有需要可以创建分线程 判断是否是主线程: NSThread *thread1=[NSThread currentThread]; if ([red isMainThread]) {  //判断当前线程是否是主线程 NSLog(@"currentThread:%@",thread1);//1是主线程 }…
  1.首先需要在百度地图下载最新SDK:地址: http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download 2. 下载如图 3.下载完成后找到响应的文件解压看到这个有着BaiduMap_...v2.6.0_Lib 的文件4.将上面的库文件导入到工程,但是需要做一个处理,我们一般是需要把.a文件处理合并一下再来的,百度给我们提供的有方法,只需要在终端进行如下命令 百度地图SDK提供了模拟器和真机两中环境所使用的…
声明:本文大部分内容来自于以下网址,其余的部分是自己尝试的总结和补充. http://www.jianshu.com/p/5f088acecf64 完整修改iOS工程名1 http://www.cnblogs.com/GarveyCalvin/p/4195745.html   完整修改iOS工程名2 http://blog.csdn.net/freedom2028/article/details/10244819  iOS工程中删除pod http://blog.csdn.net/xiaonai…
1.打开你的Xcode工程. 在Supporting Files目录下,选择 File > New > File > iOS > Other > PCH File 然后点击下一步: 2.给你的PCH文件起名字TestDemo-Prefix.pch. 例如你的项目工程名为TestDemo然而你的PCH 文件的名字应该为 TestDemo-Prefix.pch,然后创建: 3.选择 PCH 文件(文章的示例文件为 TestDemo-Prefix.pch) ,可以看到里面的内容如下…
转发:http://www.cocoachina.com/ios/20141013/9897.html 最近一次的Xcode 6更新默认不再支持arm7s架构,究竟是要废除不用呢还是仅仅只是一个疏忽? 目前的Xcode 6配置里定义${ARCHS_STANDARD}为armv7, arm64,当然这个定义前提是它会一再要求你删除掉你原本设定的构建架构.如果你选择按它所做的,你会发现你再也不能编译任何armv7s架构的东西. 当前iPhone5的A6和iPad4的A6X两款CPU都是armv7s架…
最近转开发了,真的很久没有更新博客了,今天有空写一篇吧. 今天带来的是 IOS 7 Xcode 5 免IDP证书的真机调试.说白了就是穷,不想给苹果交那$99的钱. 注意:虽然可以用这个方法实现真机调试,不过不能实现向Apple store 发布APP,其次向Notification这种需要去Apple 下载证书的应该也不行.其次你调试的设备必须越狱, 不越狱调试不了,还好IOS7的越狱前几天已经出来了. 一, 环境: 操作系统OS X 10.8.5, Xcode 5.0.2 (我是个穷,用的虚…
概括: 文件中重复定义了一个函数.变量(比如全局变量) 工程中包含同名的文件. 一般的解决方法 1 在使用import 引入头文件时,由于疏忽,误引入.m 文件. 2 同名文件放在不同的文件夹下. 3.在 Targets 的 Build Phrases 设置里,查看下 Complie Sources这一项,看看出现问题的类是不是重复的.如果是重复的,删除掉重新添加也能解决这个问题. 4.文件里面使用C语言定义的全局变量名或是函数名,在导入的时候因为重复产生了冲突. 比如:在.m 文件的函数如果是…
用ionic开发好的app,build好iOS端可用的Xcode工程,然后用模拟器跑起来.研究一下js写的代码做本地持久化时,不同类型的文件都放在那里了. cordova-plugin-sqliteStorage插件创建的数据库的在沙盒中文件位置,默认使用参数default. /Users/userName/Library/Developer/CoreSimulator/Devices/udid/data/Containers/Data/Application/9609D07D-0618-4AD…
问题 开发环境:xcode6,iPhone6模拟器 xcode工程编译错误:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386). 原因 导致这个错误的原因主要是CPU的编译架构引起的,Build Active Architecture Only属性设置为了YES(只编译当前模拟器指令集),当出现不兼容设备时就会出现错误. 解决 在工程Build Settings,…
原定于2017年1月1日起所有提交到 App Store 的App必须强制开启 ATS,需要配置Https.但是现在不需要了,无固定期限的往后延期了,但是这个还是得弄明白下为好,说不定哪天突然就让弄了. 一. 2017年1月1日起所有提交到 App Store 的App必须强制开启 ATS. 就是要求去掉 Info.plist 的 NSAllowsArbitraryLoads 1.这要求所有通过APP发送的网络请求都需要https 2.开启ATS,图片(例如图像的URL)等静态文件的url需要用…
苹果的"一个足以应付所有"策略使得它的产品越来越像一个难以下咽的药丸.尽管苹果已经将一些工作流带给了iOS/OS X的开发者,我们仍然希望通过插件来使得Xcode更加顺手! 虽然苹果并没有提供任何的官方文档来指导我们如何创建一个xcode插件,但是开发者社区做了大量的工作开发了一些非常有用的工具,通过这些工具,可以用来帮助开发者. 从 自动完成图片名的插件,到 清除缓存的插件 再到 使Xcode变成一个vim编辑器的插件,Xcode的插件社区已经拓展了我们的思维,我们可以让Xcode变…
Xcode工程文件pbxproj Xcode会去读Project.pbxproj文件,把pbxproj转成plist文件,看起根目录结构 rootObject:指向的是我们的工程对象.(对应一个24个16进制字符,96位的UUID,具体生成规则没有确切文档说明,Xcodeproj使用的是 日期+进程ID+MAC地址组合成一个唯一ID,任何一个文件都对应一个uuid,并且一定属于某个组内,工程根目录所在组为mainGroup) objects:工程中的所有配置都在这里 archiveVersion…
在公司多人协作开发,相信好多程序员都遇到非常忧伤的问题,就是工程打不开,这样就无从下手,好多程序怨只能再从代码服务器上下载一份新的代码,今天军哥教你几个小技巧,让你的bigger瞬间提升一个档次 在公司经常遇到这种非常忧伤的问题 出现这种问题是因为多人开发中,同时修改了工程文件(小码哥彩票.xcodeproj),或者storyboard,xib,Assets.xcassets,文件,就是系统工程配置文件,导致工程打不开 解决方案 第一种解决方案 - 图形化界面 1.选中工程文件->右键显示包内容…
转载自http://joeyio.com/2013/07/22/xcode_key_binding_like_eclipse/ Xcode自定义Eclipse中常用的快捷键 22 July 2013 之前在用Eclipse写Java的时候,有几个常用的快捷键,比如删除当前行,在当前行下面插入空行,向上/下移动当前行等等,到了Xcode里怎么也找不到这些快捷键,一直觉得Xcode自带的快捷键不够强大,直到今天才知道不借助第三方的插件,在Xcode下完全也可以实现这些功能,下面就说一下如何来做. 首…
1.导出Xcode工程 File->Building and setting,导出IOS工程(有错误会失败) 2.运行Xcode工程,在Classes文件夹的UI文件夹里,早到UnityAppController+ViewHanding.mm 3.在ShowGameUI()函数里进行编辑,这是个界面创建的入口(能实现功能,但不知是否正确) 进行自己UI的定制,比如加个BUTTON什么的. 4.Xcode向U3D脚本发送消息,传递参数(因为只能传递字符数组,所以其他变量需要转换) 5.UnityS…
按照先前从网上看到的参考,开通了开发者账号之后,要先在本地生成一个request文件,然后上传苹果开发者网站,然后在官网上生成一个证书.cer文件,拿这个文件在本地生成p12文件,然后就是一堆鸡零狗碎的操作,比如加设备之类的. 在xcode 5.0中,在preferences菜单项打开的窗口中,选中Account标签页,把自己的账号加进去. 如果已经开通了开发者账号,直接在xcode organizer弹出的窗口中,选设备选项卡,然后选中要拿来做开发的设备,右键菜单,“add device to…
1.在Android中java层提供了工具类:android.util.Base64; 里面都是静态方法,方便直接使用: 使用方法如下: // Base64 编码: byte [] encode = Base64.encode("Hello, World".getBytes(), Base64.DEFAULT); String enc = new String(encode); Log.d("","base 64 encode = " + enc…
初次实践:Spring+MyBatis技术搭建框架,采用Bootstrap前端开源框架. 简介: MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录. 工程架构图: 1.工程架包引入:pom.xml <pr…
在学习C语言的时候,我们曾经遇到过一个宏的概念.宏的作用机理本质上是宏的展开,C语言中的宏的用法也有很多种(水其实很深...),不过从感觉上来讲,人们大致上会在以下的场景中,利用宏来解决一些窘境:一是为了避免重复书写同样性质代码时,会使用到宏:二是为了定义一些常量参数时,会使用到宏.另外,宏的意义也在于,当我们修改某个宏的定义时,便修改了所有引用宏的地方所展开的代码,这无疑节省了我们修改代码的工作量以及代码修改的灵活性. 在Visual Studio中进行C++工程属性的配置时,同样也会遇到与写…
XCode工程内多Targets 可以认为一个target对应一个新的product(基于同一份代码的情况下). 虽然代码是同一份, 但编译设置(比如编译条件), 以及包含的资源文件却可以有很大的差别. 于是即使同一份代码, 产出的product也可能大不相同. 1.复制一个targets 2.修改名称 选择Manage Schemes,修改sun0317 copy的名字,ps:不要急于点击close,先点击空白处,否则可能会修改不成功 3.修改icon图标.启动图片.bundle identi…
这篇主要内容是:nginx代理配置 配置中的静态资源配置,root 和 alias的区别.启动注意事项! 为什么会在window上配置了nginx呢?最近我们的项目是静态资源单独放在一个工程里面,后端请求的静态资源和请求接口想要请求类似  127.0.0.1/web 就可以同时能显示后台接口返回的数据和js,jquery这种静态资源,就必要配置一个代理服务器.代理静态资源和web请求的服务器. 之前是使用Xampp这种软件中的apache作为静态资源服务器,感觉有点占用空间,配置还比nginx配…