问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ios打包测试我需要怎么选择打包要修改debug的状态吗

发布网友 发布时间:2022-04-24 22:48

我来回答

1个回答

热心网友 时间:2023-10-13 23:05

iPhone如何打包成一个通用的静态库文件(模拟器和真机都可以用)看

1.先来一个必须的命令:
~/Library目录在lion下是默认隐藏的。这样很不方便。用一下命令可以使其显示:
chflags nohidden ~/Library
如果想再让其隐藏,可以:
chflags hidden ~/Library

2.静态库工程的建立:Xcode New一个新的project,选择IOS下面的Framework&Library,下面有一个Cocoa Touch Static Library。直接next去建立一个MtimeLibrary这样的工程。(里面的功能就不要关注了,简单 2个数相加)


3.工程建立以后,删除默认的.h .m 文件,然后自己创建CountNumbers..h CountNumbers..m文件。如下图:

4.OK,选择iPhone 5.1Simulator ,Command + B 编译,我们可以在Procts下面找到我们编译生成一个模拟器上可运行的libMtimeLibrary.a这个文件,然后选择真机(如下图)再编译一次,这样会生成一个可以真机运行的libMtimeLibrary.a库。



5. 在libMtimeLibrary.a 右键 Open in Finder,可以找到libMtimeLibrary.a所在路径、后面我们会新建一个项目来添加这个.a文件测试。

打开终端:输入以下命令(路径根据自己的来决定)
cd /Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/

这样就到了Procts目录下了,ls 以后可以看到:


再输入一个命令: cd Debug-iphonesimulator/

然后通过下面命令来查看libMtimeLibrary.a信息
命令:lipo -info libMtimeLibrary.a
显示:
cashmatoMacBook-Pro:Debug-iphonesimulator cash$ lipo -info libMtimeLibrary.a
input file libMtimeLibrary.a is not a fat file
Non-fat file: libMtimeLibrary.a is architecture: i386
i386是mac上的架构。

然后再输入下面命令:
cd ../

cd Debug-iphoneos/

继续通过命令来查看 lipo -info libMtimeLibrary.a,
显示:
cashmatoMacBook-Pro:Debug-iphoneos cash$ lipo -info libMtimeLibrary.a
input file libMtimeLibrary.a is not a fat file
Non-fat file: libMtimeLibrary.a is architecture: armv7
armv7是iOS上的jia'ge架构。

到这里我们也明白了,为什么一个在真机上可以使用,一个只能在模拟器上使用了吧!

最后我们要做的就是要让这个libMtimeLibrary.a文件同时有i386和armv7信息,这样就是一个通用的静态库文件了。

6. 新建一个MtimeLibraryDemo应用,然后把真机或者模拟器的libMtimeLibrary.a 和CountNumbers.h文件引入进来,如图:


添加CountNumbers.h文件到需要调用的类里面,然后就可以调用libMtimeLibrary.a里面的方法了。

//
// AppDelegate.m
// MtimeLibraryDemo
//
// Created by cash on 12-3-23.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//

#import "AppDelegate.h"
#import "CountNumbers.h"
@implementation AppDelegate

@synthesize window = _window;

- (void)dealloc
{
[_window release];
[super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.

CountNumbers *cn = [[CountNumbers alloc] init];
int count = [cn addTwoNumbers:10 :20];
NSLog(@"count:%d",count);

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}

7. OK,编译运行这个应用程序。 错误了。。这个就是这篇文档的关键了.



我们找到刚才生成真机和模拟器的libMtimeLibrary.a目录。
debug-iphoneos里面的是基于arm6 arm7编译出来的库文件。debug-iphonesimulator文件夹下面的是基于i386编译出来的文件。



10. 最后是关键步骤:

通过lipo -create 命令来合并2个静态库文件。(-output 后面的/Users/cash/Desktop/test/libMtimeLibrary.a 是合并后的路径和文件名字)

lipo -create "/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphonesimulator/libMtimeLibrary.a" "/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphoneos/libMtimeLibrary.a" -output "/Users/cash/Desktop/test/libMtimeLibrary.a"
成功!

最后通过命令 lipo -info libMtimeLibrary.a 可以知道这个文件已经有i386和armv7信息了。
cashmatoMacBook-Pro:test cash$ lipo -info libMtimeLibrary.a
Architectures in the fat file: libMtimeLibrary.a are: i386 armv7
cashmatoMacBook-Pro:test cash$
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? 申请广发信用卡需提供什么资料 如何适配Arm64架构的 iosAPP-IOS 怎么申请广发样样行? 手机CPU中基于ARM构架设计CPU的“海思”,基于ARMv7-A指令集自行设计CPU... 广发银行信用卡申请办理需要多久 oc怎么获取ios设备的cpu架构 广发信用卡的申请流程是什么啊? ios中怎么将muPDF编译成framwork,能支持armv7,arm64,armv7s? 如何申请广发银行的信用卡? ios 系统自带方法与第三方方法相冲突怎么处理 如何实现protobuf在XCODE上armv7/armv7s/i386的交叉编译 / 蓝讯 广发信用卡怎么申请办理信用卡 怎么查ios app中的.a库支持arm iOS开发之:ios设备中,armv6/armv7/armv7s架构的机器各有哪些? 我朋友有一个清明上河图第十卷十字绣纯手工的1米成2米的值12万吗 纯手工淮山薏米糕的做法 有那位师傅会用传统方法制作鲜湿圆米粉,纯手工的! 纯手工制作和传统生榨米粉呐个味道好吃? 纯手工1.9米骏马图多少钱 求教:贵州凯里纯手工米粉做法,哪里可以找到师傅…… 如何解iOS系统中系统库的dyld缓存 广发银行的信用卡具体申请流程是怎么样的?可以分享一下吗? 想申请一张广发银行信用卡,申请条件都有哪些呢 如何实现protobuf在XCODE上armv7/armv7s/i386的交叉编译 我们申请广发信用卡需要哪些条件? ios 如何通过内存地址找到相关代码 广发信用卡申请需要什么条件?要怎么申请? 现在上传appstore 要支持armv7s吗 Xcode的Architectures和Valid Architectures的区别 64bit编译 ios 能编译动态库吗 广发银行申请广发卡和电子帐户是什么意思 如何编译OpenCV进行IOS7 我朋友要到银行贷款300万,要我做中间担保人,我想知道做中间担保人都需要什么条件呀,需要我手里有3? 银行贷款三年期为什么中间还要每年还一次是什么意思 找重庆银行贷款中间有个中介公司合理吗 银行贷款中间业务 贷款的中间商收费上限是多少? 中国人保的客服电话 银行贷款被中间人抽8个点合法吗? 向银行贷款,中间人承担什么责任