2014-10-14 3 views
2

로그인 토큰을 저장하기 위해 키 체인 서비스를 사용하고 있습니다. 모든 것은 디버그 빌드와 Ad-Hoc 배포 빌드에서 의도 한대로 작동합니다. 그러나 앱 스토어에서 다운로드 한 앱 버전에서는 작동이 중지됩니다. 최초 로그인 시도가 성공하면 API에서 추가 정보를 요청하지만 빈 토큰을 보냅니다. 유일한 원인은 토큰이 키 체인에 저장되지 않고 요청에서 토큰을 사용할 때 기본값 (빈 문자열)을 반환한다는 것입니다.코드 서명으로 깨진 키 체인 서비스

내 질문은 다음과 같습니다. 어떻게 다른 프로비저닝 프로파일로 인해 키 체인 서비스가 값을 저장할 수 없습니까? 나는 두 파일이 링크되어 있고 프로필을 변경하면 이전 프로필을 사용하여 저장된 데이터에 액세스하는 것을 멈추게 될 것이라는 점을 알고 있습니다. 그러나 이것은 완전히 다른 것입니다. 앱 스토어에서 다운로드 한 앱 버전을 디버그 할 수있는 적절한 방법을 찾을 수 없다는 것을 이해하지 못한다.

+0

동일한 문제가 발생하지만 배포 프로필이있는 베타 빌드로 키 체인 만 저장할 수 있지만 키 체인에서 읽으려고 할 때마다 충돌이 발생합니다. 동일한 프로필로 저장하려고 시도했지만 읽음으로 인해 충돌이 발생합니다. Keychain에 액세스 권한을 설정하고 plist를 구성하더라도 불구하고. –

+0

SecItemAdd, SecItemCopyMatching, SecItemUpdate API는 오류 코드를 반환합니다. 이 오류 코드를 기록하고 여기에서 같은 오류 코드를 공유 할 수 있습니까? 원인을 확인하는 데 도움이됩니다. –

+0

앱 스토어를 통해 앱을 배포하는 경우에만 오류가 발생합니다. 다음 업데이트에서 백그라운드 키 체인 저장을 추가하고 – EddBC

답변

1

좋아, 알았어. 신속한 컴파일러 최적화와 관련이있다.

빌드 설정 -> 신속 컴파일러 코드 생성 -> 릴리스의 최적화 수준을 "없음"으로 설정하면 코드가 작동합니다.

+1

을 참조하십시오. 최적화가 이루어지지 않으면 코드가 정말 느리게됩니다 (일부는 100 배 느리게 나타납니다). -Ofast는 릴리스 용으로 권장되지 않지만 -Os 사용을 고려해야합니다. – kkodev

+0

동일한 문제가 발생하여이 버그가 Apple에보고되었습니다 (유용 할 경우 버그 19003552). 이 문제에 우선 순위를 두는 데 도움이되어야하는 것과 동일한 작업을 수행해야합니다. – kolizz