关于私有仓库
source link: https://xnxy.github.io/xnxy.github.io/2020/09/01/%E5%85%B3%E4%BA%8E%E7%A7%81%E6%9C%89%E4%BB%93%E5%BA%93/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Overview
截止目前在我的有道云笔记里已经躺了好几篇文章没写完,目前写了一半或者刚开头的有App启动优化:二进制文件重排
、iOS逆向工程及防御
、iOS知识点梳理
。
时间还是不太够用啊,而且八月份已经过去,八月份的文章还没放到博客上。除去功能增加以外,还有就是自己有些懈怠了。
除了已经写个开头的文章,还有些东西需要整理,比如Swift、Runtime、算法之类的。这些东西也不能只仅限于会用,还要知其原理并将其整理出来写成文章,避免后期的遗忘。
希望今年将这些东西都整理完吧!
而这篇文章主要整理私有仓库的创建,便于后期查阅。
ps:截止这次更新,上面提到的几篇博客还没写完。
私有仓库相关
创建私有仓库
一般创建私有仓库会创建到公司搭建的gitlab上,因为目前只是做演示,所以本博客的私有仓库、私有组件都创建在GitHub上,以供后期下载。
在git中创建私有仓库
添加私有仓库到本地
在将私有仓库添加到本地之前,我们可以通过pod repo list
指令查看本地有哪些仓库,同时可以查看本地仓库存放地址。
1
pod repo list
查看本地仓库列表
使用
pod repo add ZVTestPrivateSpecs https://github.com/xnxy/ZVTestPrivateSpecs.git
指定将私有仓库添加到本地。
添加完成后可以使用
pod repo list
指令查看本地仓库列表,查看是否已经添加成功,同时也可以open
相应目录查看。
添加Podspec到私有仓库
创建私有组件
git中创建私有组件
编写组件内容,创建测试Demo等相关内容。
使用pod spec creat ZVTestPod
指令来创建podspec
文件,并编写相关内容。
编写完成后,将编写好的podspec
推送到git
,并打tag
。
然后使用pod lib lint
来验证podspec
文件,如果出现下方图片中的passed validation
则代表验证通过。
私有组件验证通过后,我们需要使用pod repo push ZVTestPrivateSpecs ZVTestPod.podspec
指定将私有组件的podspec
文件推送到私有仓库中。
推送成功后,我们可以在私有仓库中查看私有组件的位置,当然我们也可以在本地中查看
将私有仓库中的库集成到项目中
走到这一步,私有仓库、私有组件的的流程都已经介绍完了,如果想使用私有仓库中的私有组件时,直接集成项目即。跟集成开源框架类似。
其中Podfile
的编写如下:
1
2
3
4
5
6
7
8
9
10
11
12
source 'https://github.com/xnxy/ZVTestPrivateSpecs.git'
#source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
platform :ios, '9.0'
inhibit_all_warnings!
target 'ZVTestExample' do
pod 'ZVTestPod', '~> 0.0.1'
end
Swift和OC混编仓库
关于Swift和OC混编的仓库可以参考我再GitHub中创建的Demo
OC调用Swift方法
在Framework中OC调用Swift需要引入#import <**/**-Swift.h>
头文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//
// ZVOCApi.m
// ZVTestSwiftPod
//
// Created by CNTP on 2020/12/7.
//
#import "ZVOCApi.h"
#import <ZVTestSwiftPod/ZVTestSwiftPod-Swift.h>
@implementation ZVOCApi
- (void)test{
NSLog(@"---OC调Swift---");
ZVSwiftApi *header = [ZVSwiftApi new];
[header function];
}
- (void)swiftTest{
NSLog(@"---swift调OC---");
}
相应的在Build Settings
中可以查看相应头文件配置(Xcode会自动生成)。
Swift调用OC方法
在Framework中Swift调用OC需要先创建module.modulemap
文件将相应的头文件添加进去。
关于modulemap
文件,可以参看简书的的文章《Swift 关于 module.modulemap 使用》,介绍的很详细。
内容大致如下所示:
1
2
3
4
5
6
//modele.modulemap文件内容
module BridgeFiles [system] {
header "ZVFileTransferHeader.h"
export *
}
ZVFileTransferHeader.h
文件中存放Swift
需要调用的OC类。
同时需要在Build Settings
手动添加配置,入下图所示。
添加进配置中的目录为module.modulemap
所在的目录。
相应的在需要调用的类中引入BridgeFiles
,然后即可调用。
如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//
// ZVSwiftApi.swift
// ZVTestSwiftPod
//
// Created by CNTP on 2020/12/7.
//
import UIKit
import BridgeFiles
@objc public class ZVSwiftApi: NSObject {
@objc public func function() -> Int {
let obj = ZVOCApi.init()
obj.swiftTest()
return 1;
}
}
需要添加@objc
和public
,或者无法调用。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK