概观
我们的命令行构建(构建和创建.ipa)不再有效.
iTunesConnect已开始拒绝使用CODE_SIGN_RESOURCE_RULES_PATH构建设置的构建.
如果我们构建没有该设置,则PackageApplication工具(我们用于创建签名的.ipa)失败.
似乎PackageApplication使用resource-rules参数调用/ usr/bin/codesign,即使CODE_SIGN_RESOURCE_RULES_PATH排除了构建设置也是如此
我怀疑PackageApplication需要更新,以便在CODE_SIGN_RESOURCE_RULES_PATH排除构建设置时不会使用resource-rules参数调用/ usr/bin/codesign .
有人找到了解决方案吗?
细节
我们在命令行上构建我们的应用程序,如下所示:
xcodebuild -workspace myApp.xcworkspace -scheme myApp -sdk iphoneos -configuration AppStoreDistribution OBJROOT=$PWD/build SYMROOT=$PWD/build ONLY_ACTIVE_ARCH=NO 'CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist'
Run Code Online (Sandbox Code Playgroud)
我们在命令行上创建签名的.ipa,如下所示:
xcrun -log -sdk iphoneos PackageApplication "/Users/mpv/dev/myApp/build/AppStoreDistribution-iphoneos/myApp.app" -o "/Users/mpv/dev/myApp/build/AppStoreDistribution-iphoneos/myApp.ipa" -sign "iPhone Distribution: MyTeam (XXXXXXXXXX)" -embed /Users/mpv/Library/MobileDevice/Provisioning\ Profiles/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.mobileprovision
Run Code Online (Sandbox Code Playgroud)
iTunesConnect现在拒绝我们的构建,并出现以下错误:
"此捆绑包无效.Info.plist包含myApp [myApp.app]包中的无效密钥'CFBundleResourceSpecification'"
如果我们'CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist'从构建命令中删除该位,那么应用程序是在没有CFBundleResourceSpecificationplist键的情况下构建的(我认为这是我们想要的).新的构建命令如下所示:
xcodebuild -workspace myApp.xcworkspace -scheme myApp -sdk iphoneos -configuration AppStoreDistribution OBJROOT=$PWD/build SYMROOT=$PWD/build ONLY_ACTIVE_ARCH=NO
Run Code Online (Sandbox Code Playgroud)
现在的问题是构建.ipa的命令失败,出现以下错误:
错误:/ usr/bin/codesign --force --preserve-metadata = identifier,entitlements,resource-rules --sign iPhone Distribution:MyTeam(XXXXXXXXXX)--resource-rules =/var/folders/2b/7hylk7nn13dgrl9yyh2wp0lm0000gn/T /zDRRJMkKtQ/Payload/myApp.app/ResourceRules.plist …