System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种通过脚本将静态库转为.xcframework库的方法及系统技术方案_技高网

一种通过脚本将静态库转为.xcframework库的方法及系统技术方案

技术编号:42382990 阅读:14 留言:0更新日期:2024-08-16 16:11
本发明专利技术提供了一种通过脚本将静态库转为.xcframework库的方法及系统,该方法为:步骤S1、准备一个.a静态库生成工程,作为原始.a静态库的生成库;步骤S2、编译工程,并生成多个环境的.a静态库分开保存;步骤S3、编写两个脚本,脚本1功能是将.a静态库转化为.framework库,脚本2功能是将.framework库转化为.xcframework库;步骤S4、调用脚本1,将.a静态库转为对应的.framework库并区分不同环境进行存放;步骤S5、调用脚本2,将.framework库转为.xcframewrok库;方便接入方进行接入。

【技术实现步骤摘要】

本专利技术涉及计算机通讯,特别是一种通过脚本将静态库转为.xcframework库的方法及系统


技术介绍

1、xcode是苹果公司推出的一款集成开发环境(ide),用于开发macos、ios、ipados、watchos和tvos应用程序。它是开发苹果设备上软件的主要工具之一。在xcode中,runscript(运行脚本)是一个构建阶段(build phase)的一部分,它允许在项目构建过程中添加自定义的脚本。这个脚本可以是shell脚本,python脚本,ruby脚本等等,用于在构建过程中执行一些额外的操作。ios是由苹果公司开发的移动操作系统。

2、xcframework是一个ios和macos开发中使用的框架打包格式,它允许开发者将多个平台(包括不同的架构和操作系统版本)的框架组合到一个单独的文件中。xcframework的引入是为了解决在多个平台上共享和分发框架时的一些常见问题。

3、移动操作系统ios中的.a文件是静态库文件,通常称为静态链接库(staticlibrary)。它是编译后的二进制文件,其中包含了一组已经编译好的目标文件(objectfile),以及一些额外的元数据信息。

4、在开发者开发完成并生成对应的.a静态库之后,可能会存在多种环境多种架构的.a静态库,架构合并到同一个.a文件时,会导致文件太大,而分开的话,接入方使用麻烦。


技术实现思路

1、为克服上述问题,本专利技术的目的是提供一种通过脚本将静态库转为.xcframework库的方法,能够通过脚本,将指定的.a静态库转换为对应的.xcframework库,从而使接入方在接入时候能够方便快捷的接入提供的静态库内容。

2、本专利技术采用以下方案实现:一种通过脚本将静态库转为.xcframework库的方法,所述方法包括如下步骤:

3、步骤s1、准备一个.a静态库生成工程,作为原始.a静态库的生成库;

4、步骤s2、编译工程,并生成多个环境的.a静态库分开保存;

5、步骤s3、编写两个脚本,脚本1功能是将.a静态库转化为.framework库,脚本2功能是将.framework库转化为.xcframework库;

6、步骤s4、调用脚本1,将.a静态库转为对应的.framework库并区分不同环境进行存放;

7、步骤s5、调用脚本2,将.framework库转为.xcframewrok库。

8、进一步的,所述工程存在两个配置环境信息target,分别命名为testsim与testreal;所述testsim指代生成模拟器版本,所述testreal指代真机版本,所生成的.a静态库,分别命名为testsim.a与testreal.a,并且对应的头文件为testtools.h。

9、进一步的,所述步骤s2具体为:在生成.a静态库时,通过在工程中设置多个的配置环境信息targert,设置不同的环境,并生成不同名称的.a静态库;多环境的.a静态库需要手动进行编译,在编译完成后将生成的testsim.a库与testreal.a库放到同一个目录中。

10、进一步的,所述步骤s3中的脚本内容为:

11、脚本1:创建一个framework类型的文件夹,并将.a静态库传递到framework文件夹中,并将.a静态库进行重命名,同时拷贝对应的头文件与创建对应的info.plist文件;

12、脚本2:通过xcbuild命令,将所有的.framework库转化为一个.xcframework库。

13、进一步的,所述步骤s4进一步为:将脚本1放到对应.a库的相同目录中,脚本命名为atoframework.sh;分别调用命令行atoframework.sh testsim与atoframework.shtestreal,调用后在相同目录会生成testsim.framework库与testreal.framework库,用于区分环境;即一个生成真机环境的库,一个生成模拟器环境的库,调用时候按照顺序先调用真机方法再调用模拟器方法,分别生成两个不同的库。

14、本专利技术还提供了一种通过脚本将静态库转为.xcframework库的系统,所述系统包括如下步骤:.a工程准备模块、工程编译模块、自动化脚本编写模块、脚本调用模块、xcframewrok生成模块;

15、所述.a工程准备模块,准备一个.a静态库生成工程,作为原始.a静态库的生成库;

16、所述工程编译模块,编译工程,并生成多个环境的.a静态库分开保存;

17、所述自动化脚本编写模块,编写两个脚本,脚本1功能是将.a静态库转化为.framework库,脚本2功能是将.framework库转化为.xcframework库;

18、所述脚本调用模块,调用脚本1,将.a静态库转为对应的.framework库并区分不同环境进行存放;

19、所述xcframewrok生成模块,调用脚本2,将.framework库转为.xcframewrok库。

20、进一步的,所述工程存在两个配置环境信息target,分别命名为testsim与testreal;所述testsim指代生成模拟器版本,所述testreal指代真机版本,所生成的.a静态库,分别命名为testsim.a与testreal.a,并且对应的头文件为testtools.h。

21、进一步的,所述工程编译模块的实现方式具体为:在生成.a静态库时,通过在工程中设置多个的配置环境信息targert,设置不同的环境,并生成不同名称的.a静态库;多环境的.a静态库需要手动进行编译,在编译完成后将生成的testsim.a库与testreal.a库放到同一个目录中。

22、进一步的,所述自动化脚本编写模块中的脚本内容为:

23、脚本1:创建一个framework类型的文件夹,并将.a静态库传递到framework文件夹中,并将.a静态库进行重命名,同时拷贝对应的头文件与创建对应的info.plist文件;

24、脚本2:通过xcbuild命令,将所有的.framework库转化为一个.xcframework库。

25、进一步的,所述脚本调用模块的实现方式进一步为:将脚本1放到对应.a库的相同目录中,脚本命名为atoframework.sh;分别调用命令行atoframework.sh testsim与atoframework.sh testreal,调用后在相同目录会生成testsim.framework库与testreal.framework库,用于区分环境;即一个生成真机环境的库,一个生成模拟器环境的库,调用时候按照顺序先调用真机方法再调用模拟器方法,分别生成两个不同的库。

26、本专利技术的有益效果在于:开发者开发完成并生成对应的.a静态库之后,可能会存在多种环境本文档来自技高网...

【技术保护点】

1.一种通过脚本将静态库转为.xcframework库的方法,其特征在于:所述方法包括如下步骤:

2.根据权利要求1所述的一种通过脚本将静态库转为.xcframework库的方法,其特征在于:所述工程存在两个配置环境信息target,分别命名为testSim与testReal;所述testSim指代生成模拟器版本,所述testReal指代真机版本,所生成的.a静态库,分别命名为testSim.a与testReal.a,并且对应的头文件为testTools.h。

3.根据权利要求2所述的一种通过脚本将静态库转为.xcframework库的方法,其特征在于:所述步骤S2具体为:在生成.a静态库时,通过在工程中设置多个的配置环境信息targert,设置不同的环境,并生成不同名称的.a静态库;多环境的.a静态库需要手动进行编译,在编译完成后将生成的testSim.a库与testReal.a库放到同一个目录中。

4.根据权利要求2所述的一种通过脚本将静态库转为.xcframework库的方法,其特征在于:所述步骤S3中的脚本内容为:

5.根据权利要求2所述的一种通过脚本将静态库转为.xcframework库的方法,其特征在于:所述步骤S4进一步为:将脚本1放到对应.a库的相同目录中,脚本命名为atoframework.sh;分别调用命令行atoframework.sh testSim与atoframework.shtestReal,调用后在相同目录会生成testSim.framework库与testReal.framework库,用于区分环境;即一个生成真机环境的库,一个生成模拟器环境的库,调用时候按照顺序先调用真机方法再调用模拟器方法,分别生成两个不同的库。

6.一种通过脚本将静态库转为.xcframework库的系统,其特征在于:所述系统包括如下步骤:.a工程准备模块、工程编译模块、自动化脚本编写模块、脚本调用模块、xcframewrok生成模块;

7.根据权利要求6所述的一种通过脚本将静态库转为.xcframework库的系统,其特征在于:所述工程存在两个配置环境信息target,分别命名为testSim与testReal;所述testSim指代生成模拟器版本,所述testReal指代真机版本,所生成的.a静态库,分别命名为testSim.a与testReal.a,并且对应的头文件为testTools.h。

8.根据权利要求7所述的一种通过脚本将静态库转为.xcframework库的系统,其特征在于:所述工程编译模块的实现方式具体为:在生成.a静态库时,通过在工程中设置多个的配置环境信息targert,设置不同的环境,并生成不同名称的.a静态库;多环境的.a静态库需要手动进行编译,在编译完成后将生成的testSim.a库与testReal.a库放到同一个目录中。

9.根据权利要求7所述的一种通过脚本将静态库转为.xcframework库的系统,其特征在于:所述自动化脚本编写模块中的脚本内容为:

10.根据权利要求7所述的一种通过脚本将静态库转为.xcframework库的系统,其特征在于:所述脚本调用模块的实现方式进一步为:将脚本1放到对应.a库的相同目录中,脚本命名为atoframework.sh;分别调用命令行atoframework.sh testSim与atoframework.shtestReal,调用后在相同目录会生成testSim.framework库与testReal.framework库,用于区分环境;即一个生成真机环境的库,一个生成模拟器环境的库,调用时候按照顺序先调用真机方法再调用模拟器方法,分别生成两个不同的库。

...

【技术特征摘要】

1.一种通过脚本将静态库转为.xcframework库的方法,其特征在于:所述方法包括如下步骤:

2.根据权利要求1所述的一种通过脚本将静态库转为.xcframework库的方法,其特征在于:所述工程存在两个配置环境信息target,分别命名为testsim与testreal;所述testsim指代生成模拟器版本,所述testreal指代真机版本,所生成的.a静态库,分别命名为testsim.a与testreal.a,并且对应的头文件为testtools.h。

3.根据权利要求2所述的一种通过脚本将静态库转为.xcframework库的方法,其特征在于:所述步骤s2具体为:在生成.a静态库时,通过在工程中设置多个的配置环境信息targert,设置不同的环境,并生成不同名称的.a静态库;多环境的.a静态库需要手动进行编译,在编译完成后将生成的testsim.a库与testreal.a库放到同一个目录中。

4.根据权利要求2所述的一种通过脚本将静态库转为.xcframework库的方法,其特征在于:所述步骤s3中的脚本内容为:

5.根据权利要求2所述的一种通过脚本将静态库转为.xcframework库的方法,其特征在于:所述步骤s4进一步为:将脚本1放到对应.a库的相同目录中,脚本命名为atoframework.sh;分别调用命令行atoframework.sh testsim与atoframework.shtestreal,调用后在相同目录会生成testsim.framework库与testreal.framework库,用于区分环境;即一个生成真机环境的库,一个生成模拟器环境的库,调用时候按照顺序先调用真机方法再调用模拟器方法,分别生成两个不同的库。

6.一种通过脚本将静态库转为.xcframework库的系统,...

【专利技术属性】
技术研发人员:刘德建陈晋添李佳
申请(专利权)人:福建天晴在线互动科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1