Обновить приложение только для watchOS "генерируется iOS" plist? - PullRequest
1 голос
/ 21 февраля 2020

TL; DR Как обновить сгенерированный файл iOS plist только для watchOS?


Приложения только для watchOS имеют по умолчанию 3 цели: WatchKit App, WatchKit Расширение и то, что выглядит как основной комплект, что-то, напоминающее «фальшивое» iOS приложение , вероятно, необходимое для распространения.

watchOS-only app targets

На этапах сборки вы четко видите, что основная цель "TeslaPulse" является целью iOS и является родительским комплектом приложения WatchKit и расширения WatchKit (вроде как для приложений, не предназначенных только для watchOS).

Эта основная iOS цель выполняет один шаг:

ProcessInfoPlistFile /Users/vince/Library/Developer/Xcode/DerivedData/TeslaPulse-dotmlbmrjsjjgggixtbkfceylkfa/Build/Products/Debug-iphoneos/TeslaPulse.app/Info.plist /Users/vince/Library/Developer/Xcode/DerivedData/TeslaPulse-dotmlbmrjsjjgggixtbkfceylkfa/Build/Intermediates.noindex/TeslaPulse.build/Debug-iphoneos/TeslaPulse.build/empty.plist (in target 'TeslaPulse' from project 'TeslaPulse')
    cd /Users/vince/Documents/TeslaPulse
    builtin-infoPlistUtility /Users/vince/Library/Developer/Xcode/DerivedData/TeslaPulse-dotmlbmrjsjjgggixtbkfceylkfa/Build/Intermediates.noindex/TeslaPulse.build/Debug-iphoneos/TeslaPulse.build/empty.plist -producttype com.apple.product-type.application.watchapp2-container -genpkginfo /Users/vince/Library/Developer/Xcode/DerivedData/TeslaPulse-dotmlbmrjsjjgggixtbkfceylkfa/Build/Products/Debug-iphoneos/TeslaPulse.app/PkgInfo -expandbuildsettings -format binary -platform iphoneos -additionalcontentfile /Users/vince/Library/Developer/Xcode/DerivedData/TeslaPulse-dotmlbmrjsjjgggixtbkfceylkfa/Build/Intermediates.noindex/TeslaPulse.build/Debug-iphoneos/TeslaPulse.build/Base.lproj/LaunchScreen-SBPartialInfo.plist -additionalcontentfile /Users/vince/Library/Developer/Xcode/DerivedData/TeslaPulse-dotmlbmrjsjjgggixtbkfceylkfa/Build/Intermediates.noindex/TeslaPulse.build/Debug-iphoneos/TeslaPulse.build/assetcatalog_generated_info.plist -additionalcontentfile /Users/vince/Library/Developer/Xcode/DerivedData/TeslaPulse-dotmlbmrjsjjgggixtbkfceylkfa/Build/Intermediates.noindex/TeslaPulse.build/Debug-iphoneos/TeslaPulse.build/ProductTypeInfoPlistAdditions.plist -requiredArchitecture arm64 -o /Users/vince/Library/Developer/Xcode/DerivedData/TeslaPulse-dotmlbmrjsjjgggixtbkfceylkfa/Build/Products/Debug-iphoneos/TeslaPulse.app/Info.plist

Это , генерирующее Info.plist для этой главной цели.

Вопрос: Как можно изменить этот список для получения дополнительного ключа?

Это необходимо из-за https://forums.developer.apple.com/message/405719#405719, где ваше приложение будет доступно для внутреннего использования. пользователям TestFlight вам как-то нужно явно добавить ключ ITSAppUsesNonExemptEncryption.

Хоть для Приложения, предназначенные только для watchOS, такие как мое, единственная хитрость, которую я нашел, чтобы обойти проблему, заключалась в том, чтобы вручную изменить сгенерированный plist после , когда был создан архив.

1 Ответ

1 голос
/ 14 апреля 2020

Имея ту же проблему, вы сможете добавить ключ в основное WatchApp. Но iTunesConnect проверяет приложения-часы, как будто они объединены в приложении iPhone: ERROR: ERROR ITMS-90363: "Invalid Info.plist key. The key 'ITSAppUsesNonExemptEncryption' in bundle Boiler.app/Watch/WatchKit App.app is invalid."

Я нашел хорошее решение, просто создав info.plist для фиктивной цели! Это будет объединено вместо empty.plist! Не забудьте INFOPLIST_FILE из параметров сборки фиктивной цели. (источник: https://forums.developer.apple.com/thread/122660)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...