2012-04-06 6 views
11

두 개의 앱 아이콘이 내장되어 있습니다 (무료 및 프리미엄). 인앱 구매가 성공적으로 완료된 후 무료 아이콘을 프로그램 아이콘으로 교체 할 수 있습니까?앱 아이콘을 프로그래밍 방식으로 변경할 수 있습니까

+2

iOS '10.3'이후 가능합니다! 이 답변을보십시오 : http://stackoverflow.com/questions/41950994/is-this-possible-to-apply-the-alternative-icon-to-the-ios-application – KlimczakM

답변

13

아니요, 아이콘은 응용 프로그램 번들에 지정되어 있으므로 변경할 수 없습니다. 변경하면 앱 서명이 무효화되어 동일한 체크섬이 아니므로 앱이 더 이상 실행되지 않습니다.

+0

이것은 내부에도 적용됩니까? 앱이 공개 앱 스토어를 통해 배포되기보다는? plist는 불변입니까? –

0

나는 두려워하지 않는다. 꽤 응용 프로그램 아이콘이 조건부로 변경할 수 없다는 것을 확신합니다.

0

jailbroken 전화 없이는 불가능하다고 생각합니다. 앱 아이콘은 애플리케이션 번들에 포함되어 있습니다.이 앱 번들에는 쓸 수 없습니다.

-1

나는 모든 대답에 동의하지 않습니다. "OneTap"앱을 사용해보세요. 새로운 앱의 아이콘을 만들 수 있습니다. OneTap 앱은 Itune에서 무료입니다.

+3

이것이 가능하다면 많은 사람들이 관심을 가질 것이라고 확신합니다. 솔루션의 실제 URL 링크 또는 소스 코드를 남겨 두십시오. – Vincent

+1

불가능합니다! OneTap은 자체 AppIcon을 변경하지 않습니다. 선택한 이미지로 Safari를 열면 사용자는 홈 화면에 저장을 눌러야합니다. 그런 다음 OneTap 앱으로 리디렉션 할 사파리를 열어 줄이 새 앱 아이콘을 탭할 수 있습니다. 프로그래밍 방식으로 앱 아이콘을 변경할 수 없습니다. – AlexPrinceton

3

아니요. 응용 프로그램 번들의 해당 부분은 읽기 전용이며 코드 서명이되어 있습니다.

TapOne 앱에 대한 대답은 완전히 다른 것입니다. 웹 사이트 나 전화 번호에 "웹 클립"을 만듭니다. 예를 들어, 귀하의 웹 사이트에 대한 아이폰의 아이콘을 만들, 당신은 당신의 웹 페이지 헤더에 이런 식으로 뭔가를 추가 : https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

TapOne 및 웹 클립 프로그래밍하지 :

<link rel="apple-touch-icon" href="/your-custom-icon.png"/> 

은 여기에서 확인할 대한 추가 정보를 원하시면있다 응용 프로그램 번들 내의 아이콘을 변경하십시오.

9

이 상황에 대한 새로운 해결책이 있습니다.

당신은 10.3 엑스 코드 8.3과 함께 밖으로

setAlternateIconName(_:completionHandler:) 

아이폰 OS를 사용할 수 있습니다.

10.3+

업데이트 :

사용 키는 PLIST 사용을 찾아 당신이 (나를 위해 적어도 didnt 한 일) xcassets에서 자산을로드 할 수 있습니다 것입니다, 아주 간단합니다. 프로젝트에 아이콘 파일을 추가하고 품질을 위해 180x180 이미지를 선호해야합니다.

"아이콘 파일 (iOS 5)"을 사용해야하므로 새 아이콘 파일이 작동하지 않습니다.

마지막으로 한가지 버튼 아이콘을 클릭하면 'IcoTest'아이콘이 변경되었습니다. '라고 표시된 알림 창이 나타납니다.

enter image description here

//ViewController.swift 
@IBAction func ico1Click(_ sender: Any) { 
    if UIApplication.shared.supportsAlternateIcons{ 
     UIApplication.shared.setAlternateIconName("Icon2", completionHandler: { (error) in 
      print(error ?? "") 
     }) 
    }else{ 
     print("NO NO") 
    } 
} 

//Info.plist 
<key>CFBundleIcons</key> 
<dict> 
    <key>CFBundleAlternateIcons</key> 
    <dict> 
     <key>Icon1</key> 
     <dict> 
      <key>CFBundleIconFiles</key> 
      <array> 
       <string>alternater1_180x180</string> 
      </array> 
      <key>UIPrerenderedIcon</key> 
      <false/> 
     </dict> 
     <key>Icon2</key> 
     <dict> 
      <key>CFBundleIconFiles</key> 
      <array> 
       <string>alternater2_180x180</string> 
      </array> 
     </dict> 
    </dict> 
</dict> 
+0

답변을 확대 해보세요. UIApplication에 대한 방법 또는 plist 또는 기타 설정 방법에 대해서는 설명하지 않았습니다. 그냥 '이 방법이라고 부르다'는 말은 누구에게나 유용하지 않습니다. – dlbuckley

+0

저는이 흥미 진진한 소식을 사람들과 나누고 싶습니다. 나는 내가 한 것처럼 소싱하는 방법을 나눌 것이다. 그래서 슬프지 만 이것은 당신에게 충분하지 않습니다. – ymutlu

+0

그것은 흥미 진진한 소식입니다, 당신 말이 맞습니다. 그러나 대답은이 새로운 기능을 사용하는 방법에 대한 전체적인 이야기는 아니며, 의미와 구현 세부 사항입니다. 나는 표를 던지려고 단순히 투표를 시도하고 아무도 돕지 않으려 고 대답하기 때문에 답변을 썼다. 당신이 완전히 그 기능을 설명하는 당신의 대답을 수정한다면 나는 행복하게 그것을 투표 :) – dlbuckley

1

업데이트 : 아이폰 OS 10.3 이후 당신이의 Info.plist에 정의 된 대체 아이콘을함으로써 응용 프로그램 아이콘을 업데이트 할 수 있습니다.

더보기 : Apple Docs

관련 문제