zoukankan      html  css  js  c++  java
  • 保护你的代码,生成.a文件以及.framework文件需要注意的地方

    一个好的设计,一个方便使用的控件封装,一个酷炫的动画...

    是不是迫不及待要分享给大家你的每一个突然蹦出来的好的idea,那就下手吧!

    可是,你想要的只是让大家使用它,而不是把所有技术点都公开给每个人,那就打个包吧!

    看看你的代码,是不是有很多".h"和".m",偶尔有几个Xib,也许你还会为你的控件添加几张酷炫的图片

    难道这些东西可以一起打包吗?最好不要,确切来说,这样做会出错的。

    为了打包不同类型的文件,Xcode提供了三种方式来打包不同的资源:

    第一种:静态库->".a"文件+".h"文件,这种打包方式可以保留对外接口(".h"文件)隐藏实现文件(".m"文件)。

    第二种:资源包->".bundle"文件,你的图片或Xib问价都可以放到这个包里。

    第三种:动态库或静态库->".framework"文件,包含".a"+".h"+".bundle",之所以说动态库或静态库,是因为Build Settings中有个属性可以修改(Mach-O Type)。

    每种打包方式均需创建新的工程来生成,由于内容过多,所以,本文每种打包的方式不再详述,随后会有链接给出具体的操作步骤。

    下面说一下这几种打包方式中需要注意的问题:

    首先第一种:打包".a"文件需要注意,".a"文件有不同的指令集需要添加,分别是armv7,armv7s,arm64,x86_64,i386

    arm7:   在最老的支持iOS7的设备上使用
    arm7s:  在iPhone5和5C上使用
    arm64:  运行于iPhone5S的64位 ARM 处理器 上
    i386:   32位模拟器上使用
    x86_64: 64为模拟器上使用

     摘自:http://www.cocoachina.com/ios/20150127/11022.html

    分别在不同的设备上编译,通过后,将不同的.a文件命名不同的名字,使用下面命令进行合并

    lipo -create 真机生成的.a文件的全路径 模拟器生成的.a文件的全路径 -output 最终生成的.a文件的全路径

    例如:

    lipo -create User/Desktop/lib/libTestIphone.a User/Desktop/lib/libTestSimulator.a -output User/Desktop/liblibTest.a

    第二种只要参考步骤既不会出现什么问题

    第三种需要注意下面的几个参数:

    打开项目的Targate,找到“Build Setting”:

      1.修改“Build Active Achitecture Only”的Debug和Release为NO;

      2.搜索“Mach-O Type”, 修改为“Static library”;

      3.修改"Dead code Stripping"为NO;

      4.修改"Link With standard libraries"为NO;

    参考文章:如何生成.a文件,小心有坑!!

    OVER HERE!

  • 相关阅读:
    JS基础18-网站效果
    JS基础17-网站效果
    JS基础16-轮播图的实现(二维数组实现多变量同时滚动)
    JS基础15-事件监听
    JS基础14-对DOM的增改和删除工作
    JS基础13-DOM访问表格子元素的常用属性和方法
    python之路--装饰器函数
    python之路 函数进阶
    python之路 初始函数
    python之字符编码
  • 原文地址:https://www.cnblogs.com/PaulpauL/p/6587693.html
Copyright © 2011-2022 走看看