CI/CD .ipa 文件中的 CI/CD 工具参考

References for CI/CD tool inside iOS .ipa file

我正在使用的应用程序已经过审核,安全团队存在一个问题:因此,出于某种原因,如果我提取 .ipa 的有效负载,我能够确定哪个 CI/CD 工具被用来生成它。例如:

航站楼:

cd MyApp.app                         <- payload
strings * > ~/Desktop/file.txt

在文件中我可以发现我们正在使用 jenkins

/Volumes/jenkins-workspace/MyApp-Generic/MyApp/MyApp/SomeViewModel.swift

有没有人遇到过这个问题(如果我们可以称之为问题的话)?有没有办法混淆或完全删除 IPA 中的此类引用?

谢谢

该文件中是否有 fatalError() 调用?如果是这样,运行时将报告文件和行号。如果您真的需要 fatalError 调用,这里是 a way to fix that

如果您的任何源文件中有#file 编译器指令,它们将在可执行文件中记录该文件的路径。

Swift 5.3 introduces a #fileID identifier which produces a shorter string than #file. The #fileID string contains the filename and module name, but leaves out the rest of the path to the file; this saves space, improves performance, and avoids accidentally embedding private information like the developer’s home directory name in binaries. Compiler-generated error messages (like force-unwraps) and standard library assertions like precondition and fatalError now use #fileID strings, and we recommend you use them instead of #file in production code. (SE-0285, 65514304)

这几乎概括了我的问题。我在某些方法(主要用于日志)中使用 #file 标识符,调用该方法的每个文件都将嵌入应用程序二进制文件中。

参考:https://developer.apple.com/documentation/xcode-release-notes/xcode-12-release-notes