티스토리 뷰
iOS Xcode 에서 제공해주는 Extention 중에 Share Extension을 사용하면서 발생한 이슈를 공유 하려고 합니다.
먼저 Share Extension 이 무엇일까요?
웹 브라우저인 사파리, 크롬 등을 사용하면 '공유하기' 버튼을 발견할 수 있으면 그 버튼을 누를 시 공유할 앱을 선택하라고 나옵니다.
공유할 앱 대상으로 지정되도록 도와주는 기능이 Share Extension 기능입니다.
자세한 설명은 Apple Developer 에서 확인할 수 있습니다.
무슨 문제가 발생하였는가?
iOS Shared Extention 을 적용 후 배포를 위한 Build 시 위와 같은 이슈가 발생하였습니다.
무엇이 문제였을까요?
iOS Shared Extention .plist 를 살펴 보겠습니다.
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>TRUEPREDICATE</string>
</dict>
</dict>
...
NSExtensionActivationRule 의 값이 TRUEPREDICATE 로 되어있을 것입니다.
TRUEPREDICATE 는 테스트용으로 Apple 에서 제공한 값이며 배포용으로 Build 시 TRUEPREDICATE 대신 공유 형태에 맞는 값으로 설정해야합니다.
iOS Shared Extention .plist
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsImageWithMaxCount</key>
<integer>3</integer>
<key>NSExtensionActivationSupportsMovieWithMaxCount</key>
<integer>1</integer>
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
<integer>1</integer>
</dict>
</dict>
...
공유하는 목적에 맞춰서 NSExtensionActivationRule 값을 변경할 수 있습니다.
알맞은 형태로 변경 후 다시 build 시 오류 없이 성공적으로 빌드 되는 것을 확인할 수 있습니다.
마무리
iOS Shared Extention App Build Issue 시 NSExtensionActivationRule 값을 확인하여 변경되었는지 체크한다면 이슈 없이 동작하는 것을 확인할 수 있습니다.
참고
'프로그래밍 > iOS' 카테고리의 다른 글
[SWIFT] FileUpload (octet-stream) 간단히 살펴보기 (2) | 2020.04.21 |
---|---|
[SWIFT] STOMP Client 맛보기 (2) | 2020.04.18 |
[SWIFT] 메일 보내는 방법 알아보자 (0) | 2018.12.21 |
내부 배포용 앱 만들기(Enterprise) (0) | 2018.12.02 |
[SWIFT]클로저 (0) | 2018.10.24 |
- swift
- 안드로이드
- 탁구
- view
- 고시문헬퍼
- 코틀린
- 임용고시
- IOS
- flutter
- 스코어헬퍼
- 고시문
- Android
- 패턴
- 미션차이나센터
- 알고리즘
- 선교
- java
- missioon
- RXjava
- DI
- MCC
- missionchina
- IT
- Android Studio
- 점수판
- 디자인패턴
- issue
- Kotlin
- push
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |