TL;DR 如何更新生成的仅限 watchOS 的 iOS plist 文件?
默认情况下,仅限 watchOS 的应用程序有 3 个目标:WatchKit 应用程序、WatchKit 扩展以及看似主捆绑包的内容,类似于“假”iOS 应用程序,可能需要分发。
在构建步骤中,您可以清楚地看到主要的“TeslaPulse”目标是 iOS 目标,并且是 WatchKit 应用程序和 WatchKit 扩展的父包(有点像非 watchOS-only 应用程序)。
这个主要的 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
Run Code Online (Sandbox Code Playgroud)
这就是为该主要目标生成Info.plist。
问题:如何更改该 plist 以获得额外的密钥?
这是必需的,因为https://forums.developer.apple.com/message/405719#405719为了使您的应用程序可供 TestFlight 的内部用户使用,您需要以某种方式显式添加密钥ITSAppUsesNonExemptEncryption。
尽管对于像我这样的仅限 watchOS 的应用程序,我发现解决该问题的唯一技巧是在生成存档后手动更改生成的 plist。