2016-09-29 22:29:10 qq_30513483 阅读数 977
  • iOS开发-全面解析iOS蓝牙BLE4.0开发

    只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发

    3673 人正在学习 去看看 许英俊

做iOS开发的同学们都知道,我们在开发的过程中经常用到一些第三方的库,我们可以调用,但是看不见他们的源码。
有时我们不想别人看见我们的源码,也需要生成静态库,那怎么生成呢?

首先,我们要创建一个CoCoa Touch Static Library工程


创建一个CoCoa Touch Static Library工程


这样我们就会得到一个.h和.m文件,我在.h文件声明两个方法(加密,解密),还要在.m文件写它们的实现方法。


写入代码

这样我们就可以进行编译了 (记得用模拟器和真机分别编译一次)

快捷键:command+B

两次编译之后,找到StaticLibrary.a所在目录


找到StaticLibrary.a所在目录

在它的上一级目录中我们可以看见Debug-iphoneosDebug-iphonesimulator两个文件,如图:
如果你的工程是release模式,文件名为:Release-iphoneosRelease-iphonesimulator


编译文件

Debug-iphoneos:应用于真机的静态库文件。
Debug-iphonesimulator:应用于模拟器调试的静态库文件。

我们可以通过lipo -info命令来查看这个.a文件的属性。


查看属性

现在我们就可以用了 ,但是现在模拟器和真机编译的.a文件是分开的,我们在不同的环境上使用.a文件,需要导入不同的.a文件,比较麻烦,我们可以把它们进行合并成一个文件来使用。(只是体积会变大)
合并命令:lipo -create/路径/Debug-iphoneos/libStaticLibrary.a /路径/Debug-iphonesimulator/libStaticLibrary.a -output
/Users/。。。。/Desktop/libStaticLibraryFile.a


合成文件

合成完成了,就可以使用了。
把.h文件和合成的.a文件放入你的工程中测试一下吧~


测试结果

娱乐一下:



文/青楼(简书作者)
原文链接:http://www.jianshu.com/p/9b06dc6acdec
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
2015-07-07 17:06:16 xiongmimi 阅读数 83
  • iOS开发-全面解析iOS蓝牙BLE4.0开发

    只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发

    3673 人正在学习 去看看 许英俊
Win TortoiseSVN:鼠标右键-TortoiseSVN-Settings-General-Subversion-Golobal ignore pattern

Win Subversion:编辑 C:\Users\{User}\AppData\Roaming\Subversion\config 文件,修改global-ignores的值。

Win SVN Project:新增或编辑 svn:global-ignores 项目

Mac Xcode/Subversion:vi ~/.subversion/config,修改global-ignores的值。



以上也是修改svn默认排除文件的方法。


转载自:http://www.cnblogs.com/ShepherdIsland/p/4001384.html
2014-09-19 17:34:17 itianyi 阅读数 27594
  • iOS开发-全面解析iOS蓝牙BLE4.0开发

    只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发

    3673 人正在学习 去看看 许英俊

Xcode默认忽略的.a 文件。所以无法提交到svn服务器,但是很多第三方的库都有.a文件。所以还是必须提交到服务器。


搜索了一下解决方案:

http://wpt205.blog.163.com/blog/static/108047495201371272034579/

1. 打开终端,  在命令行中输入: vi ~/.subversion/config  来打开配置文件.
2. 然后, 在[miscellany]项找到这个串:  
# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
#   *.rej *~ #*# .#* .*.swp .DS_Store

这里的意思是, SVN在提交时自动忽略以这些后缀的文件, 那么我们要去掉*.a这一项, 则将配置文件改为
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]*  *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store
保存退出. 就可以了. 你可以根据自己的需要修改其他的后缀名.

这么处理应该是最好的,起到一劳永逸的作用,以后.a文件都不会被忽略了,但是这么处理后,发现在versions中还是被忽略了,不起效果。


所以最后只能使用最原始的方法解决了:

方法一:使用命令行添加文件(【转】原文在这)

1.打开终端,输入cd,空格,然后将需要上传的.a文件所在的文件夹(不是.a文件)拖拽到终端(此办法无需输入繁琐的路径,快捷方便) ,回车;
2.之后再输入如下命令:svn add libOCMock.a,回车;
3.之后会出现:A  (bin)  libOCMock.a
   表示添加成功,打开Versions就可以看到,刚才添加的.a文件,此时就可以手动上传了。

   另外,在mac 10.8中输入命令行,可能会提示你command not found,因为10.8默认没有安装Command line tools,解决办法:command not found解决方法。

方法二:在Versions中手动添加文件

选择Versions的菜单View-->Show Ignored Items,这样就会显示出ignored的文件,找到你要上传的.a文件,右键“Add”就可以了。


不知道是不是versions的问题,以后试下cons看看会不会有这个问题。







2014-03-12 15:58:25 plj5201314 阅读数 360
  • iOS开发-全面解析iOS蓝牙BLE4.0开发

    只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发

    3673 人正在学习 去看看 许英俊

编译静态库.a

1 新建工程->Framework&Library->选择Coco Touch Static ->next->给项目命名建成项目

2在项目的Products 文件下有个libxxxx.a文件,此时.a文件为红色,项目中包含一个和项目名称相同的xxxx.h和xxxx.m文件,我们可以在.h文件里面声明函数或者对象,在.m文件定义内容。

3 编译工程,编译完工程后.a文件名称变为黑色文件,静态库编译成功。

引用静态库

将打包的.a文件和有写方法名的.h文件加入现在编写的项目中(ADD File“xxxx”)即可,在应用的时候加#import“xxxx.h”(库头文件)即可.

2013-12-30 11:19:40 lucy0325 阅读数 802
  • iOS开发-全面解析iOS蓝牙BLE4.0开发

    只要你会OC基础,会写HelloWorld,你就可以实现iOS的蓝牙通信功能,实现蓝牙小项目也不在话下,作者会带领大家详细分析BLE4.0原理,通过分析xcode使用的蓝牙API,让学者能够得心应手的实现蓝牙BLE4.0的开发

    3673 人正在学习 去看看 许英俊
lipo -create SQY/iOS/iphoneos/libGamePlusAPI.a SQY/iOS/iphonesimulator/libGamePlusAPI.a  -output SQY/iOS/libGamePus.a

其中SQY/iOS/iphoneos/libGamePlusAPI.a //为真机库。  

 SQY/iOS/iphonesimulator/libGamePlusAPI.a //为模拟器库
 -output SQY/iOS/libGamePus.a //为两个合并后存放的路径

然后可以输入命令测试下是否成功  

lipo -info SQY/iOS/libGamePus.a  //下面是输出 armv7 i386 有了两个就表情模拟器和真机都支持  其中armv7为真机架构 i386为模拟器
Architectures in the fat file: SQY/iOS/libGamePus.a are: armv7 i386



祥情参考:http://hi.baidu.com/sxgg008/item/43ab4146e460e4bbde2a9f38
这二个库一个是用于真机运行的一个是用于模拟器运行的.其实我们可以利用lipo将这二个文件打包成一个通用的a文件。命令如下:

将/Users/user/Library/Developer/Xcode/DerivedData/UITab-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products替换成你的路径。

将/Users/user/Desktop/libPrint.a替换成合并后的路径。

lipo -create /Users/pjk1129/Library/Developer/Xcode/DerivedData/Print-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products/Release-iphonesimulator/libPrint.a  /Users/pjk1129/Library/Developer/Xcode/DerivedData/Print-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products/Release-iphoneos/libPrint.a  -output /Users/pjk1129/Desktop/libPrint.a

iOS .a文件合并

阅读数 482

没有更多推荐了,返回首页