WTF?刚刚提交Appstore的ipa,就被标记为无效二进制文件?

4,976 阅读2分钟

前言

最近有一个合作的APP需要进行一个版本更新,于是正常打包,提交Appstore审核。But,一连收到4份苹果的邮件,前三封都是正常状态,准备提交,等待审核。 在等待之后邮件之后,突然收到一个新的邮件?!?!

差点尿不湿都尿湿了,怎么个事儿?刚提交都封号了?!

定睛一看Invalid Binary ?

What? 无效的二进制 ???

截图如下:

WX20240606-172100@2x.png

App Store Connect

The status of your app has changed to Invalid Binary.

解决方案

缘由

前思后想,突然想起来之前提到过苹果从5月1号开始,就开启了新一轮的安全声明。应该是没有配置正确的Privacy文件所导致的原因。

# 叮!App Store审核的应用程序又出新规了Missing API declaration

如何自测

1.点击 Xcode 菜单中的 Window。选中Organizer

image.png

2.选择刚刚上传到Appstore的构建版本,选择 Geneate Privacy Report!

image.png

如果可以正常生成一个xxx.pdf文件,就证明权限声明并没问题。反之,请自行检测所添加的PrivacyInfo是否配置存在问题或者并未真正添加到项目当中!

特别说明

1.名字不要修改,就用创建时候默认的名字。

2.一定要勾选Targets,如图所示。

image.png

配置参考

这是参考大厂腾讯云IM,要求配置的PrivacyInfo中的内容,具体的场景请根据自己项目中配置进行自行删改。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSPrivacyTracking</key>
    <false/>
    <key>NSPrivacyCollectedDataTypes</key>
    <array/>
    <key>NSPrivacyTrackingDomains</key>
    <array/>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategorySystemBootTime</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>35F9.1</string>
            </array>
        </dict>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryDiskSpace</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>E174.1</string>
            </array>
        </dict>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>C617.1</string>
            </array>
        </dict>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>CA92.1</string>
            </array>
        </dict>
    </array>
</dict>
</plist>

关于第三方SDK

之前有看到很同行的帖子有提及到关于SDK需要增加权限说明或者签名什么的验证,亲测没有影响。没有给SDK生成专属的签名,依旧可以顺利提交到Appstore。

最后,祝大家大吉大利,今晚过审!