一、编写该文章的缘由
由于MOJi辞書跟MOJiTest在前期用的是同一套问题生成器框架,随着MOJiTest的需求不断,已经无法友好的共用一个框架。(虽然可以根据标识去判断项目来源,但Test后期还是会不断演变其功能玩法,所以还是拆分管理)。故借此机会,使用Workspace来管理多个框架项目。
二、操作步骤
-
首先在任意文件目录创建MOJiQuestionsGenerator文件夹。这里举例桌面文件夹,如图所示:
打开Xcode,顶部菜单栏依次操作:File -> New -> Workspace...,这时候会弹出一个创建项目的窗口,同样命名为MOJiQuestionsGenerator,选择保存到MOJiQuestionsGenerator文件夹,点击Save。
这时候,已经完成了工作空间的创建。如图所示:
-
开始创建MOJiQuestionsGenerator框架项目。点击工作空间窗口,然后选择Xcode的菜单栏中的File -> New -> Project...,选择iOS下的Framework框架,如图:
-
填写框架名MOJiQuestionsGenerator,并点击Next,如图:
-
这一步特别关键,需要将框架项目添加到我们上面已经创建了的工作空间,如图:
最后点击创建完成添加。这时候会发现,框架项目已经添加到工作空间,如图:
-
根据上面的步骤,再创建一个属于MOJiTest专用的问题生成器框架,命名为:MOJiTestQuestionsGenerator。(这里需要再次提醒,一定要选择相同的工作空间。)如图:
到此,两个框架项目已经添加到同一个工作空间MOJiQuestionsGenerator。
三、关于Podfile
目前,问题生成器框架还没有依赖于第三方框架,如果后期用到就配置一下Podfile,其Podfile配置参考如下:
# 指定工作空间
workspace 'MOJiQuestionsGenerator.xcworkspace'
#指定主项目
project 'MOJiQuestionsGenerator.xcodeproj'
# 问题生成器框架项目
target 'MOJiQuestionsGenerator' do
use_frameworks!
platform :ios, '11.0'
project 'MOJiQuestionsGenerator/MOJiQuestionsGenerator.xcodeproj'
end
# 问题生成器Debug项目
target 'MOJiQuestionsGeneratorDebug' do
use_frameworks!
platform :ios, '11.0'
project 'MOJiQuestionsGenerator/MOJiQuestionsGenerator.xcodeproj'
end
# -------------- MOJiTest -------------------
# MOJiTest问题生成器框架
target 'MOJiTestQuestionsGenerator' do
use_frameworks!
platform :ios, '11.0'
project 'MOJiTestQuestionsGenerator/MOJiTestQuestionsGenerator.xcodeproj'
end
# MOJiTest问题生成器Debug项目
target 'MOJiTestQuestionsGeneratorDebug' do
use_frameworks!
platform :ios, '11.0'
project 'MOJiTestQuestionsGenerator/MOJiTestQuestionsGenerator.xcodeproj'
end
四、其他注意事项
- Podfile文件已经在项目里(暂时命名为:「如果用到第三方库,直接修改此文件名为Podfile」,后期用到直接改名字加pod对象即可)
- 每次打包需要特别注意:选中所需要的框架
- 版本号别填错位置了
- 调试引用框架还是按原来的逻辑
- Podflie的项目名一定要跟项目设定保持一致
- 项目统一支持系统版本号为iOS 11+
- Build Settings配置尽可能保持一致
- 如果中间有特殊改动并且两者都需要更新的及时反馈并做好更新
- import开放的头文件时,一定要用<>括号。
五、添加bundle的一些注意事项【其他】
新建 target -> macOS -> bundle
然后在项目列表创建对应的文件夹,如MOJiThemeLight,然后丢Info.plist/Images/ColorsMap,然后指定Images、ColorsMap到对应的项目中,接着就如下配置
Build Settings设置如下:
- Base SDK设置为iOS
- Skip Install设置为NO
- Strip DebugSymbolsDuringCopy 设置为YES
- Targeted Device Families 设置为 iPhone,iPad
- Generate Info.plist File设置为NO
- info.plist File MOJiThemeLight/info.plist
- Code Signing idetify 设置iOS Developer
- Versioning System 设置none(这个时候可执行文件没了)