美文网首页
iOS 【多target项目配置】

iOS 【多target项目配置】

作者: NJ_墨 | 来源:发表于2021-11-01 13:49 被阅读0次

1、选择Target的主项目TestA:

右键->Duplicate->Duplicate only
生成对的Target文件:TestA-coply,TestA-coply.plist

截屏2021-09-29 下午2.48.24.png

2、修改Target的名字:

选择Manager Schemes->TestA-coply->TestB
target列表->TestA-coply->TestB
plist文件TestA-coply.plist->TestB.plist

截屏2021-09-29 下午2.58.44.png

3、创建分类管理文件,有助于管理:

一般是plist,可以调整名字,然后修改对应关联target路径
若有xxx.entitlements文件也可以,修改对应target路径
类似图片资源集合、三方配置文件等

截屏2021-09-29 下午3.24.01.png
3.1、对应Target的配置文件plist修改:

Build settings->搜索plist->修改info.plist File路径为:$(SRCROOT)/TestA/TargetB/TestB.plist
测试验证是否成功,修改TextB.plist中项目名,看target中TestB项目名是否改变

截屏2021-09-29 下午3.16.24.png
3.2、若有xxx.entitlements文件,

同理->搜索entitlements->修改Code Signing Entitlements路径

截屏2021-09-29 下午3.57.22.png

4、Target图片资源文件差异化:

右键New File->选择Asset Catalog->创建是选择关联对应Target

截屏2021-09-29 下午4.04.47.png 截屏2021-09-29 下午4.05.41.png
4.1、注意若资源关联多个Target,单独的则不生效

关联单独target的资源不起作用,会使用关联多个Target资源的,
比如TestAAssets图片资源关联两个Target(TestA,TestB)
TestBAssets图片资源关联TestB的就不生效了,
这是运行TestB项目,用到图片资源也是TestAAssets

截屏2021-09-29 下午4.11.36.png

同理其他资源文件也可以设置不同Target,如类、LaunchScreen等

5、Target功能差异化运行,通过Macros宏处理

选择Target中项目TestA->Build Settings->搜索Macros
Preprocessor Macros中,默认是DEBUG=1,双击添加APP_TYPE=1
(APP_TYPE可以自己定义,值也可以自己设置定义,这里用1,2,3,标识不同Target),

需要Preprocessor Macros中Debug\Release模式里都对应设置
同理Target的TestB也对应设置,APP_TYPE=2

截屏2021-09-29 下午4.22.00.png 截屏2021-09-29 下午4.22.51.png 截屏2021-09-29 下午4.23.04.png 截屏2021-09-29 下午4.40.42.png

切换对应项目调试

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
#if APP_TYPE == 1
    NSLog(@"TestA项目");
#elif APP_TYPE == 2
    NSLog(@"TestB项目");
#endif
    return YES;
}

相关文章

网友评论

      本文标题:iOS 【多target项目配置】

      本文链接:https://www.haomeiwen.com/subject/dylogltx.html