Flutter - iOS에서 빌드 시 the attribute name is invalid 에러 발생 시
Posted by @MHLab, October 28, 2023
Series ofFlutter
갑자기 빌드가 안되었다.
번들 ID 쉽게 바꿔서 개발용 배포용 앱 나누기라는 포스팅에서 소개한 것 처럼 배포용으로 바꾸고 Xcode에서 빌드를 돌렸다.
근데 에러가 발생했고 에러의 문구는 다음과 같다.
The attribute 'name' is invalid
이게 왜 이런지 한참을 찾다가...
StackOverFlow에서 답을 찾을 수 있었다.
이게 왜 문제?
전에 포스팅한 번들 ID 쉽게 바꿔서 개발용 배포용 앱 나누기내용에는 아래의 코드가 있다.
const devAppId = "개발용 Bundle ID";
const prodAppId = "운영용 Bundle ID";
await Process.run('rename', [
'setBundleId',
'--targets',
'ios,android',
'--value',
isProdMode ? prodAppId : devAppId
]);
그렇다.
내가 쓰는 AppId에는 안드로이드에서 사용한 값을 그대로 써서 -이 들어가 있다.
근데 Apple은 하이픈(-)을 허용하지 않는다.
그래서 이걸 언더바(_)로 변경해줬더니 아주 잘 되었다.
현재 쓰는 코드는 아래와 같이 iOS / Android 를 구분시켰다.
const devAndroidAppId = "dmode_bcow_world";
const prodAndroidAppId = "bcow_world";
const devIosAppId = "dmode-bcow-world";
const prodIosAppId = "bcow-world";
뭔가 에러를 많이 겪는데 하나씩 배워가면서 채워가는게 재미있다.