본문 바로가기

전체 글76

Apple IAP 도중 유저에게 결제 합산 청구되는 이슈 유저 결제 합산 청구 관련 이슈 * 발생 현상 고객 결제 미반영건으로 인해 처음 발견함 2건의 인앱 결제를 하였지만 결제 내역확인도중 신용카드 구매 내역이 총금액으로 남아있음ex ) 애플 1200원 결제 -> 얼마 안있다가 애플 1200원 결제 -> 카드 결제 내역 보니 2400원으로 한건의 내역만 남아있음 * 발생 현상 Apple 공홈 https://support.apple.com/ko-kr/HT201359 거래에 사용된 결제 방법에 따라 많게는 총 주문 가격에 해당하는 금액이 사전 승인될 수 있습니다. 한 번 구입하는 중에 주문이 승인되어 그만큼 증액된 금액이 청구될 수도 있으므로 청구서에 여러 번 주문한 것처럼 표시될 수 있습니다. 일부 사용자의 비슷한 상황 https://www.ppomppu.co.. 2019. 2. 28.
iOS 앱내구매 차단 설정 변경 방법 iOS 12 이전 OS: 설정 -> 일반 -> 차단 -> 앱 내 구입 옵션을 OFF 하여야함iOS 12 이상 OS: 설정 -> 스크린타임 -> 콘텐츠 및 개인 정보 보호 제한 -> iTunes 및 App Store 구입 -> 앱 내 구입을 허용으로 변경하여야 함 2019. 1. 11.
UISearchBar의 요상한 버그(feat ScopeBar) 오늘 개발하다가 요상한 일을 겪었다.거의 개발 마무리 단계여서 단말기별로 쭉 테스트를 진행중이었는데,개발하고있는 앱의 Deployment Target을 8.0에서 9.0으로 올리면서 제일 작은 해상도를 가진 4s를 보다가 발견한 이슈이다. 보면 UITextField가 아닌 UISearchBar를 사용중에 있는데, 7+, 7에는 나오지 않는 파란색 무언가가 생겼다...보니까 검색할때 세그먼트로 만들어진 ScopeBar라는게 있는데 이게 hidden으로 설정해 놓으면 검색쪽 뒤쪽으로 배치가되서 비쳐 보이는듯 했다. 그래서 숨기는 코드를 작성해보았다. searchBar.showsScopeBar = false searchBar.scopeButtonTitles = nil 근데도 똑같았다.. 그래서 밑에 백그라운드.. 2018. 11. 13.
하이브리드 앱 개선하기..(노력 1) 지금 회사에서 개발하고 있는 앱은 하이브리드 앱입니다. 그리고 굉장히(?) 오래된 앱이라고 생각합니다. 나름 개편을 하고는 있는데 많이 부족해 보입니다. 하이브리드이지만 주요화면들이 거의 웹영역이기 때문이죠. 요즘은 하이브리드앱이지만, 거의 하이브리드라고 생각도 못할만큼 자연스러운 사용성을 제공하는 앱을 보고 놀랐습니다!! (ex - 텐바이텐) 그래서 나름 개선을 해보고자 노력중에 있슴니다 (오늘부터) 1. 일단 링크로 이동이 가능한 부분은 사용자가 눌렀을 경우 회색 오버레이가 깔리는 부분을 개선하고자 했습니다. 웹뷰가 로딩이 완료되는 시점에 추가 css를 입혀주는 것입니다. 스크립트랑 css는 대학생때 해보고 아직까지 쥐뿔도 모르지만 막 검색해서 넣습니다. iOS 만 한정된 것이 아니라 AOS도 동일하.. 2018. 11. 12.
아이폰 xs, xs max, xr 아이폰이 새로 나왔습니다! * Xs-5.8 (디바이스는 7 크기) * Xs 맥스-6.5 (디바이스는 7+ 크기) * Xr - 6.1인치 보급형 기존에 화면 크기보다 두개가 더 추가되었습니다. (6.5, 6.1) (7 : 4.7인치, 7+ 5.5인치, x: 5.8인치) 모두 노치영역(...)이 존재하네요 1차 출시국은 9월 21일부터 판매가 들어간다고 합니다. 한국은 1,2차 출시국에 해당되지 않으며 작년과 마찬가지로 10월 말정도부터 출시되지 않을까 조심스레 예상해봅니다. 2018. 9. 13.
UIViewController 일부 해석 View Management 제일 최상위 뷰인 이 클래스에 저장되어있는 view 프로퍼티를 뷰를 통해 각각의 view controller는 뷰를 계층적으로 관리하고 있습니다. 이 최상위 뷰는 나머지의 view를 계층적으로 관리하기 위해 컨테이너로서 동작합니다. 이 최상위 뷰의 사이즈와 위치는 가지고 있는 부모 view controller 혹은 앱의 window 오브젝트들을 결정합니다. window를 통해 소유하고 있는 view controller는 앱의 최상위 view controller이고 뷰는 window를 꽉 채운 사이즈로 결정됩니다. View controller들은 가지고 있는 그들의 view들을 lazy하게 로드합니다. 처음으로 로드하거나 view controller들의 view들을 생성할 때 .. 2018. 9. 3.
IAP 이슈) 카드 결제 정보가 유효하지 않은 경우 두가지 값이 넘어옴.. IAP 이슈 정리 * 발생 현상 카드 결제 정보가 유효하지 않은 경우 IAP 시도시, 사용자는 카드 결제 정보를 Appstore를 통해 이동하여 입력 후 해당 IAP 프로세스를 진행함. 앱내에서는 PaymentCanceled 값이 Delegate를 통해 전달되어 개발자측에서는 Fail로 판단. PaymentCanceled 값은 IAP 프로세스를 사용자의 의도에 의해 취소하였는지에 대한 enum값입니다. 개발자측의 자체 트랜젝션 내에서는 IAP에 대한 값을 Delegate에 의존하고 있으므로 CS를 받았을 때, 사용자 취소로 인하여 충전이 안되었다고 판단할 수 밖에 없습니다. (카드 결제 정보 입력후 결제가 실제로 되었는지 여부를 판단하기 위해 결제 영수증을 받아보는법, 혹은 결제 승인 문자를 캡쳐하는 수.. 2018. 8. 21.
iOS 앱 스토어에 배포시 필요한 사항들! * apple 공식 심사 문서 : https://developer.apple.com/app-store/kr/ 1. 앱 아이콘 앱스토어 노출용 이미지로, 앱 아이콘과 동일한 이미지로 하는 것이 일반적 사이즈 1024 * 1024 주의사항 모서리에 라운드 처리 불가 Shine 또는 Gloss 효과 사용 불가 알파 투명도 사용하지 말 것 2. 앱 명칭 앱 스토어에 표시될 앱 이름 실제 앱 설치 후 기기에서 표시되는 이름과 별도로 앱 스토어에서만 표시되는 이름 글자 수 제약 글자 수 제약은 폰트에 따라 달라질 수 있으므로 되도록 줄이는 것이 좋음 영문 11자 이내일 경우 아이폰에 표시될 때, 11자 모두 출력 영문 12자 이상일 경우 아이폰에 표시될 때 말 줄임 된 채로 출력 3. 앱 소개문 앱 스토어에서 표시.. 2018. 6. 19.
@ attribute, @ symbol @ 코드를 작성하다보면 종종 @ 를 많이 본다. (@objc, @escape, @IBOutlet, @IBAction 등등..) 실제로 개발 소스를 작성하면서 그것이 무슨 뜻인지에 대해 알지는 못했다. 그냥 쓰면 쓰는거지 이생각 이건 실제로 Attributes라고 언급한다. (검색하느냐 힘들었다. Attribute, symbol이라고 한다.) Attribute는 컴파일러에게 특별한 신호라고 생각하면 된다. 자세한 영문 공식 홈페이지는 여기를 확인하자 : https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Attributes.html swift에서는 @ 심볼을 두가지 이유때문에 사용한다.. 2018. 6. 7.
TDD in iOS (#1 - UnitTest) TDD란? Test-Driven Development의 약자로 말그대로 테스트코드를 먼저 작성 후 실제 개발을 하는 것을 말합니다.테스트 주도 개발의 배경이 되는 생각은 설계할 동안 작성 중인 코드가 무엇을 해야 할지를 생각하게 하는 것입니다.테스트 주도 개발의 작업 접근법은 테스트를 하나 만들고 실행해서 실패하는지 확인한 후 이 테스트를 통과할 코드를 작성하는 것입니다. 통과하면 다음 테스트를 작성하는 것을 반복합니다. 위의 그림을 보면 TDD의 프로세스를 이해하기 쉽습니다. Red (적색 단계) 실패하는 테스트 만들기 결과적으로 원하는 방법으로 코드를 작성하여 실패하는 테스트 이 테스트 코드를 바탕으로 실제 개발 코드를 작성합니다. Green (녹색 단계) 적색 단계에서 작성한 테스트를 바탕으로 실제.. 2018. 5. 31.
Developer.apple Team agent 변경 회사당 하나의 계정만 허용합니다. 개인 apple id에 대해 새로운 이메일로 id를 변경 가능합니다.https://appleid.apple.com 에서! team Agent를 변경하려는 이유는 개인 이메일이 포함되어있기 때문입니다.핸드폰번호도 개인적이라 이차인증이 걸려있는 경우 불편합니다.그래서 어떻게 해야하냐면 1. 팀에이전트의 애플 아이디, 핸드폰번호를 변경합니다.2. 아니면 그냥 새로운 계정을 하나 생성하여 팀에이전트를 갈아치웁니다.https://forums.developer.apple.com/thread/72649 2018. 5. 29.
fastlane을 적용하여 앱스토어에 앱 배포하기(업데이트) #2 fastlane을 적용하여 앱스토어에 앱 업데이트 이번 섹션은 앱 출시 후 업데이트에 관해 설명하고 있습니다. 이전 튜토리얼에 이어서 참고하시면 됩니다 ^^ 튜토리얼 우선 fastlane이 setup되어있는 상태라고 가정하고 튜토리얼을 작성할 예정입니다. fastlane이 해당 프로젝트에 setup되지 않은 분은 fastlane을 적용한 QA 프로세스 자동화 게시물의 초반부분을 참고해주세요! Release note 수정 앱의 업데이트 사항을 /fastlane/metadata/ko/release_notes 에 작성합니다. Build, Version 변경 앱을 업데이트 하기 위해서는 빌드 넘버와 앱스토어에 노출될 버전 넘버를 변경해야 합니다. 이건 직접 프로젝트 내에서 수정하여도 되지만, fastfile 내.. 2018. 5. 29.
fastlane을 적용하여 앱스토어에 앱 배포하기(배포) #1 fastlane을 적용하여 앱스토어에 앱 배포하기 2개로 나누어 튜토리얼을 작성할 예정입니다. 1에서는 앱을 최초 배포에 대한 튜토리얼을, 2에서는 앱 업데이트에 대한 튜토리얼에 대한 내용을 다룰 예정입니다. 튜토리얼 우선 fastlane이 setup되어있는 상태라고 가정하고 튜토리얼을 작성할 예정입니다. fastlane이 해당 프로젝트에 setup되지 않은 분은 fastlane을 적용한 QA 프로세스 자동화 게시물의 초반부분을 참고해주세요! appIdentifier을 등록 우선 앱의 identifier을 itunesConnect와 developer Potal에 등록하기 위한 코드를 작성합니다. 여기서 사용하는 produce는 새로운 iOS앱을 iTunesConnect와 dev Potal에 등록하는데 사.. 2018. 5. 29.
fastlane을 적용하여 팀원간 인증서 동기화 하기 왜 이것이 필요할까요? "나는 되는데 왜 너는 안되지?" iOS 개발자에게는 꽤나 복잡한 문제가 아닐까 싶습니다. 프로비저닝 프로파일이며, 인증서며, 맥장비가 늘어갈수록 셋팅해주는 것만으로도 진이 빠지곤 하죠.. 이런것들을 해결하기위해 match는 꽤나 좋은 툴입니다. 간단히 설명하자면 우리가 하나의 소스코드를 수정하기 위해 git이라는 툴로 관리를 하는 것과 같이 인증서또한 git으로 관리하자는 것이죠. 팀원간에 일치하지 않는 개발환경은 혼란을 야기시킬 수 있습니다. Easily sync your certificates and profiles across your team using git 공홈에서는 저렇게 match를 설명하고 있는데요. 저 문장이 match의 모든 것을 말해주는 것 같네요 ㅎㅎ 당신.. 2018. 5. 29.
fastlane을 적용한 QA 프로세스 자동화 QA 프로세스 정리 현재 기준으로 회사에서 하나의 앱을 QA팀에게 넘기기 위해서 많은 공수가 들어가고 있습니다. .plist 파일 수정후 업로드 archive한 .ipa 파일 추가 외부에서 다운로드 받을수 있도록 .html 파일 수정 수정 내역 메일링 QA가 한번으로 끝날수도 있으나, 디바이스를 추가해달라는 요청, 추가 수정사항이 있을 때는 위와 같은 프로세스를 한번 더 반복해야 되는 상황이 있습니다. 그러므로 이 공수를 좀 줄이기 위해 우선적으로 QA 프로세스 자동화를 목적으로 R&D 를 진행하였습니다. 튜토리얼 fastlane 설치 우선적으로 fastlane을 설치를 진행합니다. Xcode 커맨드라인툴을 설치 후, fastlane gem을 설치합니다. 기본적으로 fastlane은 커맨드라인툴이기 때문.. 2018. 5. 29.
반응형