SwiftLint TroubleShooting - CocoaPods

CocoaPods로 다들 SwiftLint를 적용해보셨나요 ? 하게 된다면 반드시 문제가 생기고 맙니다.

Error: No lintable files found at paths: ''
Command PhaseScriptExecution failed with a nonzero exit code

# 또는

The operation couldn't be completed. (SwiftLintCore.Issue error 13.)
Could not read configuration: file Configuration.swift, line 274

사실은, 이 방식은 CocoaPods로 하는 방법이나, brew로 작업을 하나 결국에 Xcode에 붙이는 일은 거기서 거기입니다.

CocoaPods로 SwiftLint를 설치하는 방법은 쉽게 찾아볼 수 있어요. 아무튼 둘 다 위의 문제에 직면하게 될 겁니다.

간단하게 요약인데요, Xcode의 보안에 의해서 Run Script 부분이 Sandbox에 묶여 외부 파일을 건드리지 못하게 되는 문제입니다.

그렇다면 일반적으로 나오는 해결 방법은 User Script Sandboxing을 NO로 바꾸거나 ENABLE_USER_SCRIPT_SANDBOXING을 NO로 바꾸는 방법이 나와요.

이 방법이 과연 현실적일까요 ? 검색을 하면 이 내용밖에 안 나오는데 정답이 아닐까요 ?

그렇지 않습니다. 위 방법으로는 App Store 배포 심사에서 위험한 경우가 있습니다. Deny를 당하는 경우가 꽤나 있다고 하는데,

이게 정답이 될 수는 없죠. 그럼 조금 더 현실적으로 접근하는겁니다.

(이유는 보안상의 이유입니다. 사용자의 스크립트가 뭘 건들지 모르기 때문입니다.)

image.png