这个标题,第一次见是在知乎的这个文章
短短一行,懂的都懂。
对于
iOS
开发,在稍大的企业里,由于开发人员和测试设备众多,管理困难,而且受苹果限制,所以一般使用企业证书构建内测包,开发人员使用自己的个人开发者账号,修改Bundle ID
进行真机调试。最近有同事误提交自己的个人开发者账号到主工程的
Git
仓库中,我想起来了就顺手做了这个。1. 修改主工程target的build settings
首先将原来主工程写死的证书相关变量改为
$(inherited)
(或者直接删除这几行)2. 创建debug_ignore.xcconfig
内容如下,可自由修改
DEVELOPMENT_TEAM = BQY57L9764 PRODUCT_BUNDLE_IDENTIFIER = com.dengweijun.DemoAutoSign CODE_SIGN_STYLE = Automatic PROVISIONING_PROFILE_SPECIFIER =
3. 增加post_install脚本
通过
Podfile
的几行Ruby
脚本,增加include
的xcconfig
post_install do | installer | include_debug_xcconfig("DemoAutoSign", "debug_ignore.xcconfig") installer.pods_project.new_file("../debug_ignore.xcconfig") end def include_debug_xcconfig(target, file) target_file_path = "Pods/Target Support Files/Pods-#{target}/Pods-#{target}.debug.xcconfig" if File.exist? target_file_path target_content = File.read(target_file_path) include_content = "#include \"#{Dir.pwd}/#{file}\"\n" # 实测使用绝对路径可以避免偶然的Xcode异常 Bundle identifier is missing unless target_content.include? include_content target_content = include_content + target_content File.write(target_file_path, target_content) end end end
pod install
后,效果如下4. 添加.gitignore
将这个
debug_ignore.xcconfig
文件添加到.gitignore
,然后就可以自由修改自己的个人证书参数,不再产生不必要的Git
改动。搞定,收工。
Demo
提交在Github
,可以查看提交历史最后,附上关于
xcconfig
的官方说明以及非官方说明
Xcode assigns inherited values in the following order (from lowest to highest precedence):
Platform Defaults
Xcode Project xcconfig File
Xcode Project File Build Settings
Target xcconfig File
Target Build Settings
Loading Comments...