System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机通讯,特别是一种通过脚本将静态库转为.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、为克服上述问题,本专利技术的目的是提供一种通过脚本将静态库转为.xcfra
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.根据
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库的系统,...
【专利技术属性】
技术研发人员:刘德建,陈晋添,李佳,
申请(专利权)人:福建天晴在线互动科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。