아니...왜 갑자기 이런 애러가 나는지 모르겠다...

 

보니까 ios 17로 업그레이드 하고 xcode 15 beta버전들을 사용할때 나는 에러인것 같다..

 

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
    xcconfig_path = config.base_configuration_reference.real_path
    xcconfig = File.read(xcconfig_path)
    xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
    File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
    end
  end
end

 

위의 코드대로 했더니 다른 에러가 나왔다.

 

Could not build the precompiled application for the device. Error (Xcode): Assertion failed: (fixups().size() == 2), function initFixup, file Atom.cpp, line 2021.

위의 에러가 나왔는데 다행히 정말 천사가 존재했다.

 

해결법은

 

post_install do |installer|
  assertDeploymentTarget(installer)
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
    xcconfig_path = config.base_configuration_reference.real_path
    xcconfig = File.read(xcconfig_path)
    xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
    File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
    end
  end
end

ios/Podfile 의 맨 아래에 보면 위의 코드 블럭이 있는데 그걸 위와 같이 변경해 주면 된다.

flutter로 개발중에 갑자기 Task 'wrapper' not found in project 가 떴다.

그리고 원래는 플러터 프로젝트로 앱을 실행시에그래이들 빌드가 별도로 뜨지는 않았는데 갑자기 gradle 빌드가 별도로 뜨게 되면서 실행이 안된다 ㅠㅠ

 

진짜 별것도 아닌 문제로 안드로이드 파일 빌드 까지 공부하게 되어 버렸는데...

일단 https://changhyunit.tistory.com/92 의 링크를 따라가서 해봤는데 링크의 문제는 전혀 아니었다.

 

따로 해보니까..나의 경우에는 정말 간단한 문제였는데...

이전에 네이티브 수준에서 이 앱에 멀티 모듈을 만들어 보면 어떨까 싶어서 안드로이드 수준으로 앱을 켰었는데 그때문에 모듈이 하나 더 생기면서 난 문제였다.

 

해결 방법은 엄청 간단.

그냥 project settings 에 들어가서

모자이크 처리한 곳에 모듈이 하나 더 있었는데 거기서 내가 쓰는 모듈을 제외하고 삭제하면된다. 삭제는 마이너스 버튼!

 

허무하다.. 허무해

으아니 갑자기 이런 메일이 왔다.

 

화들짝 놀라서 보기를 눌러서 상세 페이지로 들어가 보았다.

 

무슨 정책 경고 인데 앱이 Android 13 수준 이상을 타겟팅 해야 한다고??뭔소리지 ?? 내 앱은 이미 33을 타겟팅 중인데?

 

다시 확인도 33 이상을 타겟팅 하고 있다......ㅂㄷㅂㄷ 걱정이 밀려온다.

 

조금더 확인해 보니까 이전에 공개테스트랑 비공개 테스트에 올라가 있던 번들의 타겟 SDK가 30 이어서 난 문제 같다. 정말 다행이지 뭐야 ㅋㅋ

저걸 없애던가 해야 겠다.

 

끝!!

flutter 에서 카카오톡 플러스 친구 를 실행했을때 

if (await canLaunchUrl(Uri.parse(value))) {
          await launchUrl(Uri.parse(value));
        }

-canOpenURL: failed for URL: "kakaoplus://plusfriend/home/349896729/add" - error: "This app is not allowed to query for scheme kakaoplus"

와 같은 에러가 나왔다.

 

이유는 콘솔 로그에도 나와 있듯이 scheme에 kakaoplus가 없기 때문이다.

 

info.plist에 들어가서

<key>LSApplicationQueriesSchemes</key>
<array>
	<string>kakaoplus</string>
<array>

를 추가해주면 간단하게 해결된다.

Guideline 2.1 - Performance - App Completeness

We are unable to complete the review of your app because one or more of your in-app purchase products have not been submitted for review.

Next Steps

To resolve this issue, please be sure to take action and submit your in-app purchases and upload a new binary in App Store Connect so we can proceed with our review.

Resources

Learn more about how to offer in-app purchases in App Store Connect Developer Help.

 

Overview for configuring in-app purchases - Configure in-app purchase settings - App Store Connect - Help - Apple Developer

Configure in-app purchase settings Overview for configuring in-app purchases In-app purchases let you offer extra content and features — including digital goods, subscriptions, and premium content — directly within your app on all Apple platforms. Ther

developer.apple.com

 

위와 같은 앱의 리젝 사유를 받았다 ㅠㅠ

아니 왜 그런걸까?? 했더니....

 

일단 앱에 심사를 넣을때 결제 심사도 같이 넣어줘야 한다.

 

바로 위의 부분에 편집에 들어가서 나의 결제를 넣으면 되는데 이 부분을 안 넣었더니 나는 문제 였고 일단 제일 큰 문제는

 

나는 빌드 번호 20번까지진행 되어서 약 17번? 정도에 인앱결제가 구현되었지만... 우리 기획자가 잘 몰라서 빌드 번호 2번으로 심사를 넣었다...

다시 심사를 넣어야 한다. ㅠㅠ

후... 디버깅이 안되는 세상이란 너무 힘들듯하다. 회사에 오니까 웹뷰는 앱에서 디버깅이 안된다고 해서 내가 찾았다..

생각보다 어렵지 않았다.

일단 flutter 앱에 코드 추가가 필요하다.

main 바로 아래에 

await webview.AndroidInAppWebViewController.setWebContentsDebuggingEnabled(true);

위의 코드를 넣어 주면된다.

물론 main을 async로 바꿔줘야 한다.

나는 플랫폼이 안드로이드 일때만 웹뷰 디버깅을 할테니까 

Platform.isAndroid

위의 조건을 걸었다.

 

그후에는 정말 쉽다. 일단 웹뷰 앱을 실행하고 

chrome://inspect 위의 링크로 가서 inspect라는 버튼을 누르면 된다.

Flutter로 개발중 웹뷰를 디버깅 해야 하는 순간이 있을것이다. 

안드로이드로 웹뷰 디버깅을 하다가 IOS도 하는 방법을 찾았는데 안드로이드 보다 쉽다....

일단 실기기로 테스트를 진행하기 때문에 켜줘야 하는 옵션이 있다.

설정 > Safari > 고급으로 들어가서 [웹 속성]을 켜준다.(실 기기가 아니고 Simulator로 진행하는것이 아니라면 굳이 필요 없다.)

그 후에는 이제 맥으로 돌아가서 Safari Technology Preview를 설치한다.(나는 앱스토어가 아닌 브라우저로 들어가서 설치함)

(https://developer.apple.com/safari/technology-preview/)

 

설치가 끝났으면 앱을 켜서 디버깅 하고 싶은 웹뷰를 동작시킨다.

그 후 Safari Technology Preview의 개발자 탭에 내 폰 또는 시뮬레이터 이름을 클릭하면 해당 웹뷰의 url이 있는데 이것을 클릭하면 끝이다.

클릭하면 아래와 같이 실행되면서 끝!!

위와 같은 에러가 났다.

Could not build the precompiled application for the device. 같은 경우 여러 이유가 있겠지만 

위와 같은 경우는 경로를 못 찾아서 난 에러이다.

flutter 에러는 아니고 iphone 으로 테스트 중에 xcode에서 난 에러 같다.

 

경로에 파일이 없는거니까 파일을 추가해 주면 된다.

+ Recent posts