错误ITMS-90171:"无效的包结构不允许使用二进制文件APP.app/libswiftRemoteMirror.dylib

Mit*_*iya 11 xcode ios

我要将sift 2.2转换为swfit 3.0并上传到itunes商店然后出现一个错误.

我对这个错误很累: -

错误ITMS-90171:"无效的包结构 - 不允许二进制文件'ideaPitch.app/libswiftRemoteMirror.dylib'.您的应用程序不能包含独立的可执行文件或库,而不是受支持的包的CFBundleExecutable.请参阅包编程有关iOS应用包结构的信息,访问https://developer.apple.com/go/?id=bundle-structure."

我试过像这个问题的一些解决方案,但没有得到正确的结果.

任何人都可以把我赶出去.

Sve*_*ker 7

我假设您在命令行上生成IPA.

您最好的选择是使用Xcode7/8默认方式生成IPA文件:

xcodebuild -scheme $SCHEME clean archive $ARCHIVE_PATH
xcodebuild -exportArchive -archivePath $ARCHIVE_PATH -exportPath $IPA_PATH -exportOptionsPlist $EXPORT_PLIST
Run Code Online (Sandbox Code Playgroud)

此方法将自动处理libswiftRemoteMirror.dylib从生成的IPA文件中删除.

或者,您必须自己删除dylib.在创建xcarchive之后但在将其导出到IPA文件之前,您必须这样做:rm -rf $APP_PATH/libswiftRemoteMirror.dylib

编辑

如果您无法自行重建IPA并且只想从中删除libswiftRemoteMirror.dylib它,则必须执行以下操作resign:解压缩IPA,删除dylib,重新编码捆绑包并将其再次压缩:

unzip AppName.ipa -d IPA
cd IPA
rm -rf Payload/$APP_NAME.app/libswiftRemoteMirror.dylib
codesign -vfs '$IDENTITY_NAME' Payload/$APP_NAME.app
zip -r --symlinks New_IPA.ipa *
Run Code Online (Sandbox Code Playgroud)

将$ APP_NAME替换为您的应用包的名称.将$ IDENTITY_NAME替换为最初用于对应用进行签名的codesign标识的名称.如果未知,则显示它codesign -dvv Payload/$APP_NAME.app 2>&1 | grep Authority | head -1 | cut -d= -f2.

匹配的证书和私钥必须存在于您的钥匙串中才能成功辞职.如果您的应用程序使用推送,关联域等特殊权利,您必须将正确的--entitlements参数传递给上面的codesign命令.