【Xcode构建版本】ITMS-90683: Missing P
2020-04-12 本文已影响0人
xiari1991
最近app需要上架,构建版本后,等着使用TestFlight测试,等了好久,在TestFlight上却一直没有发现最新构建的版本😓,后查看App Store Connect 的【活动】,发现找不到最新构建的版本,明明已经构建了啊,什么原因呢?

后查看了注册开发者账号的邮箱,发现了一条来自App Store Connect的一条邮件,意思是我们app使用了相册权限,需要在info.plist中添加为何使用改权限的原因。但是我们的app没有访问相册的功能,全局所有后,发现没有任何有关相册相关的代码。那如何才能知道三方的SDK中是否有相关的代码呢?

想到了每次提审前我都会做的一件事,查看app是否使用了广告标志符,使用的是 grep -r advertisingIdentifier .
命令行,猜想 grep功能应该是查看文件中是否包含某个字符串。后查找资料了解了grep的作用,确实具有查询的作用。
接下来就要看下是哪个三方SDK中包含了相册相关的代码呢?
bogon:ThirdLibrary yfxiari$ grep -r PHPhotoLibrary .
Binary file ./ShareSDK/ShareSDK/Support/PlatformSDK/SinaWeiboSDK/libWeiboSDK.a matches
Binary file ./ShareSDK/ShareSDK/Support/PlatformConnector/SinaWeiboConnector.framework/SinaWeiboConnector matches
通过grep命令发现ShareSDK中的微博平台相关的SDK中包含了相册相关的内容,因为我们暂时没有用到微博,就直接把微平台的代码删除了,再重新Archive上传构建版本,成功了。
后续:有时我们忘记使用的SDK的版本号,使用grep可以帮助我们,如查询我使用的百度广告的版本号:
bogon:BaiduAd yfxiari$ grep -r -i version .
Binary file ./BaiduMobAdSDK.framework/BaiduMobAdSDK matches
./BaiduMobAdSDK.framework/Headers/BaiduMobAdInterstitial.h:@property (nonatomic, readonly) NSString* Version;
./BaiduMobAdSDK.framework/Headers/BaiduMobAdView.h:@property(nonatomic, readonly) NSString *Version;
./BaiduMobAdSDK.framework/Headers/BaiduMobAdCommonConfig.h:#define SDK_VERSION_IN_MSSP @"4.64"
./BaiduMobAdSDK.framework/Headers/BaiduMobAdSplash.h:@property (nonatomic, readonly) NSString* Version;
可以看到#define SDK_VERSION_IN_MSSP @"4.64"
,4.64正是此SDK的版本号。不同的SDK可能标注版本号的方式不同,可以通过不同的关键字来查询。这里提示下SDK的文件夹名称包含版本号一切问题就不存在了。