Xcode 6 오류 : "포함 된 바이너리의 번들 식별자에 상위 앱의 번들 식별자가 접두사로 붙어 있지 않습니다."
확장 프로젝트를 빌드하려고하는데 Xcode가 주제에 오류를 계속 던집니다.
오늘날에도 확장 프로그램의 번들 ID 는 앱의 번들 ID로 시작됩니다.
상품명: ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier
나는 빌드 폴더를 청소하고 재 구축을 시도했지만 운이 없다. 재미있는 것은 전체 프로젝트가 몇 번 빌드되었지만 일부 코드와 UI 변경 후 실패하기 시작했다는 것입니다. 새 프로젝트를 만들어도 5 ~ 6 번 정도 빌드하면 똑같은 일이 일어납니다.
다른 사람이이 오류가 발생 했습니까? 솔루션이나 해결 방법에 대한 힌트가 있습니까?
빌드하기 전에 청소를 시도하십시오. 이것은 나를 위해 문제를 해결했습니다 (Xcode 6b2).
WatchOS 2가 도착했을 때 번들 ID 동작이 변경된 것 같습니다.
이전에는 다음과 같은 확장 번들 식별자가있었습니다.
com.mycompany.myappname.watchkitextension
Stackoverflow의 다른 곳에서는 확장 번들 식별자가이 형식이어야한다고 언급되었지만 내가 무엇을 시도 했든 상관없이 Xcode가 계속 오류를 던졌습니다.
가능한 유일한 해결책은 확장 번들 식별자를 다음과 같이 변경하는 것입니다.
com.mycompany.myappname.watchkitapp.watchkitextension
나는 이것이 WatchOS 1 앱의 경우가 아니라고 확신합니다. 이 변경으로 인한 문제는 실제로 번들 식별자에 대한 앱 ID를 생성 할 수 없다는 것 com.mycompany.myappname.watchkitextension
입니다. 이는 필요하지 않습니다. 빌드 설정의 모든 프로비저닝 프로필을 자동으로 설정하고 릴리스 / 임시 / 디버그 체계에 적합한 코드 서명 인증서를 사용하는 것을 잊지 마십시오.
Xcode가 문제 해결을 제안했기 때문에이 접근 방식이 작동한다는 것을 실제로 알게되었습니다.
다음과 같이 변경했습니다.
기본 앱 번들 ID : com.myapp.testapp
과
확장 앱 번들 ID : com.myapp.testapp.myextension
그리고 그 작품 !!!
확장의 info.plist에있는 BundleID를 필요한 것으로 수동으로 변경해야했습니다.
레이더를 제출했습니다 : rdar : // 17487465
이것은 나를 도왔습니다.
확장에는 상위의 번들 ID가 접두사로 있어야합니다.
예를 들어 앱이 com.ronnathan.myapp 인 경우 내선 번호는 com.ronnathan.myapp.today 여야합니다. 앱 대상의 이름을 변경 했으므로 이제 확장 대상으로 이동하여 이름을 일치하도록 변경하십시오.
Target-> General-> Embedded Binaries는 이전 파일을 삭제하고 새 파일을 선택하여이 문제를 해결했습니다.
I got the same error, you probably add a extension like Today widget, since the extension is also a binary itself so it has its own plist, and make sure in extension's plist the bundle id is prefixed with app's bundle id. Hope this helps.
In my case, this error occurred when I changed App bundle identifier. I also have WatchKit App in my project.
To fix this, update the WatchKit Extension and WatchKit App bundle Id prefix with the new bundle id of your app. Check info.plist in both targets.
Also update the following -
Update the following with the new Watch App bundle id. WatchKit Extension > Info.plist - NSExtension->NSExtensionAttributes->WKAppBundleIdentifier
Update the following with the new app id. WatchKit App > Info.plist - WKCompanionAppBundleIdentifier
After changing all the values don't forget to Clean product once.
It might have happened that you duplicated your targets to do a clone app. For instance you selected each of your targets and duplicated them. When you cloned your watchkit extension target its target membership could be automatically assigned to the original watch app.
To fix this, you would need to go to yours original "WatchKit extension.appex" file in Project Navigator and unselect Target Membership in File Inspector for your new clone watch app target. You should do the opposite for your duplicated "Watchkit extension-copy.appex" and make sure it has only duplicated "watch app-copy" target selected there.
Make sure your:
Target App A -> Built Settings -> Code Signing -> Release
is the same with:
Target App A (Extension) -> Built Settings -> Code Signing -> Release
I tried most of the solutions given here, but it did not helped me to fix the issue in Xcode 9.4
This SO Answer helped me fix the issue.
What i did is simply
Unchecking the Automatically manage signing for all the targets and the project
In code signing making it iOS Developer for all the targets and the project.
Clean the project, then close the project and open it.
Now Enable the Automatically manage signing for the target and choose the developer account. Then build it.
It fixed me the error. I don't know when Apple will fix these type of issues. It eats lot of hours.
Edit: I am using This answer too, That my target bundle id is com.companyname.projectname and for the extension bundle id com.companyname.projectname.myextension
The problem is likely that you added a folder using "Create folder references" when adding it to your project (like I did). @Jacob's fix didn't work for me :(
I had to delete the folder reference I added to my project, then clean and build, and that fixed it for me.
Just delete apps provision profiles from ~/Library/MobileDevice/Provisioning Profiles, reload Xcode and fix issues when Xcode prompts so (or manually download them from iOS dev center).
Fixed this problem for me.
I was having the same problems. Changing the CFBundleIdentifier for my WatchKit extension to something other than the original value used when I first added the WatchKit extension and re-setting my shared app group entitlement fixed it for me.
I just clean derived folder and it helps me in these situations.
각 대상> 빌드 설정> 제품 번들 식별자> (이름 변경)으로 이동하십시오.
이것은 나에게 도움이되었습니다.
나는 얻고 있었다 :
Xcode가 일치하는 iOS 앱 개발 프로비저닝 프로파일을 찾을 수 없습니다.
그래서 번들 식별자 이름을 ie com.example.something
로 변경 com.example.something1
한 다음 빌드를 정리했습니다.
종속 번들 ID도 모두 변경해야합니다.
Extension의 번들 식별자에 App Bundle 식별자가 접두사로 추가되었는지 확인합니다. 동일하고 여전히 오류가 발생하면 Extension의 .plist 파일로 이동하여 Bundle Identifier를 변경하십시오.
'Nice programing' 카테고리의 다른 글
네임 스페이스 내에 클래스가 있는지 확인하는 방법은 무엇입니까? (0) | 2020.11.30 |
---|---|
dplyr로 여러 회귀 모델 피팅 (0) | 2020.11.30 |
명령 줄에서 Maven 프로필 비활성화 (0) | 2020.11.30 |
tic-tac-toe 게임에 어떤 알고리즘을 사용하여 AI에 대한 "최고의 움직임"을 결정할 수 있습니까? (0) | 2020.11.30 |
GDB에서 이전 줄로 이동하는 방법은 무엇입니까? (0) | 2020.11.30 |