开源 Objective-C IOS 应用开发(二十三).a静态库的封装和使用

文章的目的为了记录使用Objective-C 进行IOS app 开发学习的经历。本职为嵌入式软件开发,公司安排开发app,临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。

相关链接:

开源 Objective-C IOS 应用开发(一)macOS 的使用

开源 Objective-C IOS 应用开发(二)Xcode安装

开源 Objective-C IOS 应用开发(三)第一个iPhone的APP

开源 Objective-C IOS 应用开发(四)Xcode工程文件结构

开源 Objective-C IOS 应用开发(五)iOS操作(action)和输出口(Outlet)

开源 Objective-C IOS 应用开发(六)Objective-C 和 C语言

开源 Objective-C IOS 应用开发(七)Objective-C核心代码示例

开源 Objective-C IOS 应用开发(八)常见控件UI

开源 Objective-C IOS 应用开发(九)复杂控件-tableview

开源 Objective-C IOS 应用开发(十)数据持久化--文件

开源 Objective-C IOS 应用开发(十一)数据持久化--sqlite

开源 Objective-C IOS 应用开发(十二)通讯--ble

开源 Objective-C IOS 应用开发(十三)通讯--Http访问

开源 Objective-C IOS 应用开发(十四)传感器--陀螺仪和gps

开源 Objective-C IOS 应用开发(十五)通讯--蓝牙ble扫描

开源 Objective-C IOS 应用开发(十六)Storyboard模式下的纯代码界面

开源 Objective-C IOS 应用开发(十七)CAF音频的录制

开源 Objective-C IOS 应用开发(十八)音频的播放

开源 Objective-C IOS 应用开发(十九)视频的播放

开源 Objective-C IOS 应用开发(二十)多线程处理

开源 Objective-C IOS 应用开发(二十一)自定义控件--示波器

开源 Objective-C IOS 应用开发(二十二)自定义控件--车速仪表盘

推荐链接:

开源 Arkts 鸿蒙应用 开发(一)工程文件分析-CSDN博客

开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-CSDN博客

开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-CSDN博客

开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-CSDN博客

开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件-CSDN博客

开源 Arkts 鸿蒙应用 开发(六)数据持久--文件和首选项存储-CSDN博客

开源 Arkts 鸿蒙应用 开发(七)数据持久--sqlite关系数据库-CSDN博客

开源 Arkts 鸿蒙应用 开发(八)多媒体--相册和相机-CSDN博客

开源 Arkts 鸿蒙应用 开发(九)通讯--tcp客户端-CSDN博客

开源 Arkts 鸿蒙应用 开发(十)通讯--Http-CSDN博客

开源 Arkts 鸿蒙应用 开发(十一)证书和包名修改-CSDN博客

开源 Arkts 鸿蒙应用 开发(十二)传感器的使用-CSDN博客

开源 Arkts 鸿蒙应用 开发(十三)音频--MP3播放_arkts avplayer播放音频 mp3-CSDN博客

开源 Arkts 鸿蒙应用 开发(十四)线程--任务池(taskpool)-CSDN博客

开源 Arkts 鸿蒙应用 开发(十五)自定义绘图控件--仪表盘-CSDN博客

开源 Arkts 鸿蒙应用 开发(十六)自定义绘图控件--波形图-CSDN博客

开源 Arkts 鸿蒙应用 开发(十七)通讯--http多文件下载-CSDN博客

开源 Arkts 鸿蒙应用 开发(十八)通讯--Ble低功耗蓝牙服务器-CSDN博客

推荐链接:

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

本章内容主要是iphone中的多线程处理,创建停止,通讯等。

目录:

1.手机演示

2.静态库创建

3.静态库使用

一、手机演示

二、静态库创建

1. 创建静态库项目

步骤1:新建项目

  1. 打开Xcode,选择 File → New → Project

  2. 选择 Framework & LibraryStatic Library

  3. 输入产品名称(如 MyStaticLibrary),语言选择 Objective-C

步骤2:配置项目设置

Build Settings 中配置:

  • Architectures : 通常选择 arm64, x86_64(支持真机和模拟器)

  • Build Active Architecture Only: Debug设为YES,Release设为NO

  • Installation Directory: 可设置为 usr/local/lib

2. 编写库代码

MyStaticLibrary.h文件

复制代码
// MyStaticLibrary.h
#import <Foundation/Foundation.h>

@interface MyStaticLibrary : NSObject

+ (NSString *)getVersion;
- (void)sayHello;
- (int)addNumber:(int)a toNumber:(int)b;

@end

MyStaticLibrary.m文件

复制代码
// MyStaticLibrary.m
#import "MyStaticLibrary.h"

@implementation MyStaticLibrary

+ (NSString *)getVersion {
    return @"1.0.0";
}

- (void)sayHello {
    NSLog(@"Hello from MyStaticLibrary!");
}

- (int)addNumber:(int)a toNumber:(int)b {
    return a + b;
}

@end
  • 真机版本:连接真机,⌘+B 构建

找到生成的.a文件,在Xcode中查看构建日志

  1. 构建项目 (⌘+B)

  2. 打开 Report Navigator (⌘+9)

  3. 选择最近的构建日志

  4. 搜索 "libMyStaticLibrary.a" 或 "WriteAuxiliaryFile"

  5. 在日志中会显示完整的输出路径

三、静态库使用

  1. 准备文件

你需要三个文件:

  • libMyStaticLibrary.a (静态库文件)
  • MyStaticLibrary.h (头文件)
  • 其他相关的 .h 头文件

建议创建一个组织良好的文件夹结构:

MyStaticLibrary/

├── lib/

│ └── libMyStaticLibrary.a

├── include/

│ └── MyStaticLibrary.h

└── README.md

  1. 在新项目中集成静态库

步骤1:导入文件到项目

  1. 将 libMyStaticLibrary.a 和头文件拖拽到Xcode项目中
  2. 在弹出对话框中:
    • 勾选 "Copy items if needed"
    • 选择 "Create groups"
    • 添加到你的target

步骤2:配置项目设置

在项目的 Build Settings 中配置:

添加库搜索路径:

Library Search Paths = $(PROJECT_DIR)/MyStaticLibrary/lib

添加头文件搜索路径:

Header Search Paths = $(PROJECT_DIR)/MyStaticLibrary/include

或者更简单的方式:

User Header Search Paths = $(PROJECT_DIR)/MyStaticLibrary/include

步骤3:链接库文件

在 Build Phases → Link Binary With Libraries 中:

  1. 点击 + 按钮
  2. 选择 Add Other... → Add Files
  3. 选择 libMyStaticLibrary.a
  1. 在代码中使用

导入头文件并使用:

复制代码
#import "MyStaticLibrary.h"



// 在你的ViewController或其他类中

- (void)useMyLibrary {

    // 使用类方法

    NSString *version = [MyStaticLibrary getVersion];

    NSLog(@"Library Version: %@", version);

    

    // 创建实例并使用

    MyStaticLibrary *library = [[MyStaticLibrary alloc] init];

    [library sayHello];

    

    int result = [library addNumber:10 toNumber:20];

    NSLog(@"Addition result: %d", result);

}
相关推荐
明远湖之鱼2 小时前
浅入理解流式SSR的性能收益与工作原理
前端·ios
白玉cfc3 小时前
【iOS】多线程基础
macos·ios
2501_915909064 小时前
iOS APP 抓包全流程解析,HTTPS 调试、网络协议分析与多工具组合方案
android·ios·小程序·https·uni-app·iphone·webview
2501_915106324 小时前
游戏上架 App Store 的技术流程解析 从构建到审核的全流程指南
游戏·macos·ios·小程序·uni-app·cocoa·iphone
胡琦博客5 小时前
21天开源鸿蒙训练营|Day1 拒绝环境配置焦虑:AI 辅助下的 OpenHarmony 跨平台环境搭建全实录
人工智能·开源·harmonyos
非专业程序员5 小时前
精读 GitHub - servo 浏览器(一)
前端·ios·rust
虎头金猫5 小时前
随时随地处理图片文档!Reubah 加cpolar的实用体验
linux·运维·人工智能·python·docker·开源·visual studio
CoderJia程序员甲6 小时前
GitHub 热榜项目 - 日榜(2025-11-20)
ai·开源·大模型·github·ai教程
深度学习机器6 小时前
深度智能体框架DeepAgent剖析
人工智能·开源