项目上架

最近由于某些原因公司的企业证书被注销了,我去,无语事件.于是公司想将这个项目上架,然而做 IOS 开发的人都懂,哪里有那么容易的事情,可谓上一次架人都消瘦了一圈, 堪比攻打南天门😄😄, 记录下中间遇到的问题吧.

  • 1 . 真机设备被苹果封禁.
WeChat459682caa31cd91baff3bcfaebc4c906.jpg

没错 TYPESTATUS的状态为 Ineligible for 30 days, 查询资料才知道是设备被封禁了,要等.....,无语事件;

感谢您联系 Apple Developer Program 支持团队。我是 Calvin,很荣幸能协助您。
在邮件中,您表示在添加测试设备时,遇到错误提示的问题。
经查询,您所收到信息表明:登记的设备被发现存在问题。在指定时限结束之前,设备无法使用。
您可以参考“设备注册更新”以了解更多信息。
如果您希望立即与 Apple Developer Program 支持 Advisor(技术顾问)通话,请在我们的营业时间,通过我们的网站联系我们.

具体的可查看苹果官网: 设备注册更新
个人猜测,可能是注册设备时设备上存在企业证书,被检测到了将设备封了; 你可以删除手机的企业证书
我们于是只能靠打包上苹果网站,利用 TestFlight 来实现真机测试,无语....
(这里普及个知识,TestFilght 是不用审核就可以利用添加测试员来实现内部测试分发的,只需要你上传成功并构建版本即可.然后手机上安装TestFilght ,通过邮件中的兑换就可以安装测试)

  • 2.打包上传中遇到的问题
    2.1 图片中有 Alpha ,即透明度
    可以利用 mac 电脑自带的图片预览, 打开图片 -> 文件 -> 导出 -> 将Alpha勾选取消,生成新图片即可:
WechatIMG305.jpg
2.2 项目中使用了 UIWebView 控件,苹果已经禁止使用该控件.

解决方法:
1.打开终端,cd + 把项目的工程文件所在文件夹拖入终端(即 得到项目的工程文件所在的路径)
2.输入以下命令(注意最后有个点号,而且点号和 UIWebView 之间必须有一个空格):

grep -r UIWebView.

3.以上操作都正确的话,会马上出现工程中带有 UIWebView 的文件的列表(包括在工程中无法搜索到的 .a 文件中对UIWebView 的引用)

注:引用AFNetWorking可以直接把AFNetWorking 里面的UIWebView+AFNetworking 扩展删掉就可以了,没影响的。

2.3 缺少出口合规证明

需要在 Xcode 的 Plist 中添加以下键值对,表明不使用加密;

<key>ITSAppUsesNonExemptEncryption</key>
WeChate3b16487c51c848ed7ec3e5a4215e109.jpg
2.4 由于老版本的萤石云 SDK 中包含 UIWebView, 没办法只能对其 SDK 进行升级.

萤石云IOS开发

头疼了一天, 官网介绍了有两种接入 SDK 的方法:

WechatIMG295.jpg

句句真言啊:

  1. 只能在真机上运行,模拟器运行会报错,只能真机调试;
  2. 建议使用动态库,动态库可以避免上述的崩溃问题;
  3. SDK 支持的最低版本是 IOS11, 需要将 Xcode 的支持的最低版本调整到 IOS 11.

第一种按照官网导入静态包失败, 可是在打 Release 最后报错,看错误信息应该是缺少了某个依赖库,但是我对照官网折腾了几遍还是没找到报一样,只能放弃了
注意:Xcode15移除了libiconv.2.4.0.tbd,所以SDK自v5.4起,更换为libiconv.tbd

第二种是安装动态包成功,同时可以避免安装静态包,
遇到的问题是能搜索到 pod 'EZOpenSDK', '~> 5.12';
但是 pod install 的时候,安装的版本只是 'EZOpenSDK', '~> 5.2', 要是强行指定 'EZOpenSDK', '~> 5.12' 版本, pod 就会报错,无法安装;
最后百度才发现问题,是需要将 Podfile 中的 platform :ios, ’11.0’ 指定到 11.0才可以安装到

  • 3 打包上传成功了,却在苹果网站上查询不到构建版本

app包上传到 APP Store成功后, 等啊.......等啊, 等了一天😓😓,还是没查询到构建版本.

百度了才知道; 上传成功后, APP 的同步到苹果网站的只需要 15 分钟左右,而且如果上传的ipa 包有问题的话, 就算你等到海枯石烂也无法等到😓😓,这时候一定要去看看你开发账号时关联的邮箱📮,要是 ipa 包有问题的话会给你发邮件的.

  • 4 Universal Link(通用链接)

关于通用链接可以看我上一篇文章

我要说明的是要注意的几点:
1. 需要https且不带端口的域名
2. 建议Universal Links配置path,例如/app/*, 避免全域命中Universal Links跳转
3. apple-app-site-association文件到域名的根目录和.well-known子目录下, 这两个地方都放一下并且要能访问到
4. Universal Links正确的是:https://help.wechat.com/sdksample/

  1. 验证Universal Links是否成功:由于苹果关闭了验证网页,所以可以使用替代测试的方案:
    使用如下链接:(后面拼接你的domain域名)
https://app-site-association.cdn-apple.com/a/v1/

例如: https://app-site-association.cdn-apple.com/a/v1/spotify.com
如正常访问到 apple-app-site-association 文件,说明配置成功。

  • 5 微信无法支付,项目跳到微信后再回跳App,流程就中止

    支付不方便测试,可以使用微信文字分享功能来测试界面的跳转,验证Universal Link校验:

  var req = SendMessageToWXReq()
        req.bText = true
        req.text = "hangge.com 做最好的开发者知识平台。"
        req.scene = _scene
        WXApi.sendReq(req)

出现这个问题问题, 是因为微信唤起App,App一定会收到系统回调。在调用Scheme回调时, 没有走 UIApplicationDelegate 回调引起的. 它们的回调方法分别是:

- (void)scene:(UIScene *)scene openURLContexts:(NSSetUIOpenURLContext *> *)URLContexts {
     return [WXApi handleOpenURL:userActivity delegate:self];
}

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionaryUIApplicationOpenURLOptionsKey, id> *)options{
      return [WXApi handleOpenURL:userActivity delegate:self];
}

问题排查可参考官方文档

  • 6 ITMS-91053: Missing API declaration - 要求添加权限文件
WechatIMG296.jpg

注意: 一定要确认PrivacyInfo文件在Build Phases -> copy Bundle Resources 中,否则无法将其打包的时候添加进去

WechatIMG298.jpg

问题主要是缺少以下4个隐私描述:
NSPrivacyAccessedAPICategoryFileTimestamp --> C617.1
NSPrivacyAccessedAPICategoryDiskSpace --> E174.1
NSPrivacyAccessedAPICategorySystemBootTime --> 35F9.1
NSPrivacyAccessedAPICategoryUserDefaults --> CA92.1

创建PrivacyInfo文件

WechatIMG297.jpg
  • 7 Guideline 2.1 - Performance - 应用程序无限期加载,无法登录
WechatIMG299.jpg

现场测试账号登陆是成功的,但为什么审核的时候说无限期加载,登录不上?
开始我以为是因为自己的服务器不稳定导致的审核时无法访问,然后回复邮件,结果还是一样的问题;
然后查询资料后猜想,可能是处于美国的审核员的 IP 可能无法访问我们国内的服务器.需要服务器开通 IPV6 网络.

最后我们使用了阿里云服务器作为中转

WechatIMG418.jpg

`


WechatIMG420.jpg
  • 8 Guideline 2.3.3 - Performance - Accurate Metadata - 准确的元数据
WechatIMG300.jpg

说的是审核的时候,发现应用程序的预览图和 APP 运行出来的图片不一样,并且图片和机型不适配,要求重新截取预览图片;
1. iPhone 8 Plus 1242 X 2208(5.5英寸)
2. iPhone Xs Max 1242 X 2688 (6.5英寸)
3. iPhone15 pro max 2796 X 1290 (6.7 英寸)

由于 Xcode15 中移除了iPhone X 以下的模拟器解决办法:

利用浏览器下载以前 OS Version 版本环境

WechatIMG303.jpg

  • 9 Guideline 2.5.4 - Performance - Software Requirements - 软件需求
WechatIMG302.jpg

从邮件中我们可以知道, 说了两个问题, 1. 没有找到需要持久使用定位服务的功能,如果没有的话可以删除 2. 没有找到 对应使用 VoIP 的功能.
对此,我们在回复的邮件中,一方面进行文字上的解释,另一方面通过视频辅助指出使用对应功能的位置的. 注意:视频只需要地址;
注意: 视频可以上传到优酷, 审核很快, 一般 5 分钟就可审核通过, 然后就可以获取视频地址

  • 10 支付宝和微信第三方上架

对此,刚开始我也查询了很多资料, 有些人隐藏功能, 有人使用网页支付的, 还有人做两套支付蒙骗过关的, 但是我想说的是, 你既然想用支付宝支付,就会在Queried URL Schemes白名单中添加 alipays,所以基本上逃不过苹果扫描审核的. 不要想着隐藏支付功能.

如何区分苹果支付是否必须使用 IAP ,主要的看用户付费购买的商品/服务是否为「虚拟数字产品」。更详细地说,看商品/服务的实际消费场景是在 app 内,还是 app 之外。
在 app 内即可完成消费的,苹果要求使用 IAP。典型如电子书、在线音乐、充值类虚拟货币、游戏/直播中道具、QQ/微博等会员类产品、在视频 app 中看电影、微信表情等。
需要在 app 之外完成消费的,可以使用第三方支付。典型如线下电影票、实物电商、在行、滴滴出行/Uber 等。

然后说下自己项目上架的情况, 项目中集成了支付宝和微信没有走内购, 本想苹果会回邮件问我做个调查,谁知道直接给过了😅😅

但是下面是我在网上找了一些资料和总结:

App Store 含第三方支付被3.1.1被拒解决方案
该案例可以参考其最后的文案邮件,尤其是提供的现场的服务报告,强有力的说明了消费场景是APP 外

配件商城第三方支付调查

自己总结:

 
尊敬的审核员

谢谢你的耐心和认真审核,对于您提到审核条款,我们对此回应如下:

 Q: Does your app access any paid content or services?
  你的应用程序是否访问任何付费内容或服务?
  A:是的
   
 Q: Is the service provided within the app?
  服务是在应用程序内提供的吗?
   A: 不是

  Q:What are the paid content or services, and what are the costs?
  付费内容或服务是什么,成本是多少?
  A: 没有需要付费的内容或服务

  Q:Do individual customers pay for the content or services?
 个人用户是否为内容或服务付费?
 A: 否,我们的app内容和提供的服务不需要付费

 Q: If no, does a company or organization pay for the content or services? 
  如果没有,公司或组织是否为内容或服务付费?
  A: 否,我们的app内容和提供的服务不需要付费

 Q: Where do they pay, and what's the payment method?
  他们在哪里付款,付款方式是什么?
 A:用户在我们的app的发现->“配件商城”和“二手农机” 里面可以购实物商品。付款方式:支付宝或者微信。

 Q:If users create an account to use your app, are there fees involved?
  如果用户创建一个帐户来使用你的应用,是否需要付费?
 A: 不收费

 备注:用户购买商品的实物或示意图在附件里(主旨在于证明消费场景在 APP 外)
   1. picture1.png
   2. picture2.png
   3. picture3png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容