We have started the review of your app, but we are not able to continue because we need additional information about your app.
Next Steps
To help us proceed with the review of your app, please review the following questions and provide as much detailed information as you can.
- Who is the target audience?
- How do users obtain an account?
- Is this app meant for internal distribution in your own company, in the company of one target client, or in multiple target clients’ companies?
- In which countries will this app primarily be distributed?
- If this app is meant for internal distribution, will the app be accessible by both internal and external partners? Or will it be exclusive to in-house employees?
Once you reply to this message in Resolution Center with the requested information, we can proceed with your review.
Since your App Store Connect status is Metadata Rejected, we do NOT require a new binary. To revise the metadata, visit App Store Connect to select your app and revise the desired metadata values. Once you’ve completed all changes, reply to this message in Resolution Center and we will continue the review.
1.目标受众是xxx
2.如何如何xxx建立App账户(一定要解释清楚)
3.此应用不是在我们公司内部使用, 是仅用于一个目标客户的公司下属使用.
4.应用将主要在中国地区发布使用
5.应用上线后我公司后台管理员和目标客户公司的下属可使用.
具体可以,比如我是这样写的:
尊敬的苹果团队,您好,
感谢您的耐心审核,针对您提到的5个信息问题,我们现在对此回复如下:
1.目标受众是水泥厂家、经销商和水泥运输车队
2.账户的建立是如果厂家打算使用我们的产品,会和我们进行合作,我们后台会根据他们提供的手机号创建空间,厂家可以在自己空间下开通经销商账号
3.此应用不是在我们公司内部使用, 是仅用于一个水泥行业客户的公司下属使用.
4.应用将主要在中国地区发布使用
5.应用上线后我公司后台管理员和目标客户公司的下属可使用.
结果苹果又再次拒绝了,苹果是这样回复的:
Hello,
Thank you for your response.
Regarding the 2.1 issue, it would be appropriate to review the following questions and provide as much detailed information as you can.
- Is this app meant for distribution in any target clients’ companies?
We look forward to reviewing your resubmitted app.
Best regards,
App Store Review
意思是问我们的APP是否是应用于某一个目标客户公司还是说应用于所有目标客户公司,我的回复是这样的:
Dear apple team,
Thank you for your patient examination. With regard to your question, our reply is as follows:
Yes, this APP is applicable to any cement production and transportation industry clients, we are a Internet company, the main production car intelligent weighing equipment, any cement manufacturers can purchase our weighing equipment and installed in the bottom of the vehicle, our weighing equipment will vehicle load data and real-time GPS data via wireless network to send to our server, and then our server admin staff will create and assign a password through the background to the cement manufacturers use, cement manufacturers according to the assigned account login and password APP, after the success of the login from our server to get the data of weighing equipment, The data mainly includes the vehicle on which the weighing device is installed, the GPS position of the vehicle, and the load curve of the vehicle. Meanwhile, customers in the cement industry can create cement transportation orders through this APP and check the details of the orders. Attached is the page of our background account creation and distribution.
Best regards
本以为又要被拒了,结果过了四五天突然成功上架了,感谢,也就是说要把你公司的产品,所属行业,客户群体以及APP使用之间的关系写的清楚些就没问题了。
关于2.1,也有下面这样的问题描述
Guideline 2.1 - Information Needed
We’re looking forward to continuing our review, but we need a bit more information about your business model and your users to help find the best distribution option for your app. Our preliminary review of your app suggests that your app may be a good fit for our Apple Business Manager program, which is designed specifically for business apps.
Next Steps
Please review the following questions and provide as much detailed information as you can for each question.
1. Please describe which kinds of users you expect will use your app. Some common kinds of users are:
- Users who are part of a single company (including its partners, employees and contractors)
- A limited number of companies which are clients of the developer
- The general public
2. Identify the countries or regions where you plan to distribute your app.
3. What features in the app are intended for use by general App Store users?
4. How do users obtain an account?
5. If there are any paid aspects of the app, such as for opening an account or using certain features in the app, please explain how users access the paid content.
6. Who pays for the paid content?
Since your App Store Connect status is Metadata Rejected, we do NOT require a new binary. To revise the metadata, visit App Store Connect to select your app and revise the desired metadata values. Once you’ve completed all changes, reply to this message in Resolution Center and we will continue the review.
Guideline 4.1 - Design - Copycats
Your app or its metadata appears to contain potentially misleading content. Specifically, your app includes content that resembles 万年青 without the necessary authorization.
Next Steps
Please demonstrate your relationship with any third-party brand owners represented in your app.
我的回复是这样的:
中文:
亲爱的苹果的团队,
谢谢你对应用程序的审核。关于您的问题,我们的答复如下:
1.这个app适用于任何水泥的生产、销售、运输行业的用户,我们是一个互联网公司,主要生产车载智能称重设备,任何水泥行业用户可以购买我们的车载智能称重设备,并将设备安装在车辆底部,这些用户使用我们这个app来查看设备的GPS、重量、速度等数据.
2.这个app目前主要分发在中国.
3.只要是购买了我们的车载智能称重设备的用户,app里面的所有特性他都可以使用.
4.账号是这样获取的,用户一旦购买了我们的车载智能称重设备,我们的服务器管理人员将创建并分配一个账号和密码给用户使用,用户根据已分配的帐号和密码在app上登录,登录成功后,从服务器获称重设备上传的数据,这些数据主要包括安装的GPS、重量、速度曲线。同时,水泥行业的用户可以通过这个app创建水泥运输订单,查看订单详情。附件是我们后台账号创建和分发的页面。
5.这个app不包含任何付费方面.
6.这个app不包含任何付费方面,所以不存在买单的问题.账号是由我们的后台管理人员免费创建并分配的,登录成功之后就可以查看车辆相关的数据.
关于指南4.1,我想说的是万年青只是app所对应的后台管理系统的名称而已,可以看我发的附件.
致以最亲切的问候
英文:
Dear Apple team,
Thank you for reviewing the application. With regard to your question, our reply is as follows:
1. This app is applicable to any cement production, sale, transport industry users, we are an Internet company, the main production car intelligent weighing equipment, any cement industry users can buy our vehicle intelligent weighing equipment, and installation of equipment in the bottom of the vehicle, the users to use this app to view the GPS equipment, weight, speed and other data.
2. This app is mainly distributed in China at present.
3. As long as the user has purchased our vehicle-mounted intelligent weighing device, he can use all the features in the app.
4. Account is obtained that the user once bought our car intelligent weighing equipment, our server admin staff will create and assign an account and use the password to the user, the user according to the assigned account and password login in the app, after the success of the login, in weighing equipment to upload data from the server, the data mainly includes the installation of GPS, weight, speed curve. Meanwhile, users in the cement industry can create cement shipping orders through the app and view the order details. Attached is the page of our background account creation and distribution.
5. This app does not include any payment aspect.
6. This app does not include any payment aspect, so there is no payment problem. The account is created and assigned by our background manager for free. After successful login, you can view the data related to the vehicle.
About guide 4.1, What I want to say is that Evergreening is just the name of the background management system corresponding to the APP. You can see the attachment I sent.
Best regards
结果还是被拒,苹果的回复如下:
Hello,
Thank you for providing this information.
Upon further review, we found that your app does not comply with the following guidelines:
Guideline 3.2 - Business
Users come to the App Store expecting to find apps they can pick up and use, so we check every app to see if it is meant for a wide audience. For apps designed to be used by a specific business, we work with developers to choose the right distribution option for their app.
We found in our review that your app is designed to be used by a specific organization or business, including its partners or employees. Custom app distribution through Apple Business Manager is the best way to make these kinds of business apps available to your target audience.
By distributing custom apps through Apple Business Manager, you will be able to:
- Distribute apps to personal and company-owned devices.
- Enjoy an App Review process designed with business needs in mind, in locations where custom app distribution is available.
- Keep using Apple Developer Program tools like App Store Connect for app management and TestFlight for beta testing.
Next Steps
Follow these steps to distribute your business app using custom app distribution and Apple Business Manager:
1. Have the business or organization your app is designed for enroll in Apple Business Manager.
2. If you haven't already, sign the Paid Applications agreement in App Store Connect.
3. Change your Pricing and Availability setting in App Store Connect to make your app available to specific businesses or organizations.
4. Resubmit your app for review. Once the app has been published, businesses and organizations will be able to find your app on Apple Business Manager.
Resources
- Watch a WWDC overview of custom app distribution with Apple Business Manager.
- Learn how to use Apple Business Manager.
- See the availability of Apple business programs in your region.
Best regards,
App Store Review
中文翻译:
你好,
谢谢你提供这些信息。
经过进一步审查,我们发现您的应用程序不符合以下指导原则:
准则3.2 -业务
用户来到应用商店希望找到他们可以挑选和使用的应用程序,所以我们检查每个应用程序,看看它是否适合广大用户。对于为特定企业设计的应用程序,我们与开发人员合作,为他们的应用程序选择正确的分发方案。
我们在审查中发现,你的应用程序是为一个特定的组织或企业设计的,包括它的合作伙伴或员工。通过Apple Business Manager发布自定义应用程序是将这些类型的商业应用程序提供给你的目标用户的最好方式。
通过发布自定义应用程序通过苹果业务经理,您将能够:
-向个人和公司拥有的设备分发应用程序。
-享受一个应用程序审查过程的设计考虑到业务需求,在地方自定义应用程序分发是可用的。
-继续使用苹果开发者程序工具,如App Store Connect进行应用管理,TestFlight进行beta测试。
下一个步骤
按照以下步骤使用自定义应用程序分发和苹果业务经理分发您的业务应用程序:
1. 有企业或组织您的应用程序是专为注册在苹果业务经理。
2. 如果还没有,请在App Store Connect上签署付费应用协议。
3.改变你在App Store Connect中的定价和可用性设置,使你的应用程序对特定的企业或组织可用。
4. 重新提交你的应用程序以供审查。一旦应用程序发布,企业和组织将能够在Apple Business Manager上找到你的应用程序。
资源
-观看一个WWDC概述自定义应用程序分发与苹果业务经理。
-学习如何使用苹果业务经理。
-查看您所在地区的苹果商业程序的可用性。
最好的问候,
应用程序商店检查
很明显,苹果将此App划分为特定企业的商业应用,而非面向普通用户的,于是我只能继续跟坚持我的App是面向全用户的,而非特定企业的,回复如下:
Dear Apple team,
Maybe my description is not accurate, which leads to your misunderstanding. The user I mentioned earlier refers to all customer groups. Our app is mainly released in China. What we are facing is not only a specific enterprise, but also a single person. For example, if he owns a car, he can also buy our company's GPS equipment and install it in his car. After he purchases the GPS device, we will assign him an account number and password, and he can log in and check through this app His vehicle's GPS data and other related data, so it can be understood that the app is also for all people. The main purpose of our app is to enable all customers who purchase our GPS equipment to monitor their vehicles with our app, improve their protection of their vehicles, and facilitate the query of their own data trends. It is a tool software for users. This software is the whole System module is an indispensable link, it is very important for us! If we define our app as a specific enterprise application, first of all, other customers will not be able to download the app to view GPS data after purchasing our GPS equipment. Moreover, it is not convenient for us to iterate new versions and develop more users. After all, the app store is the only officially approved app store by apple. Maybe some functions of the app have not been improved yet. This is only version 1.0.3. With the development of the project, we should develop more customer related functions. Then for the customer's account number and password, we will check the customer's relevant information on the platform, and then let us know the password of the customer after setting the administrator account.
Best regards
中文翻译:
亲爱的苹果团队,
可能是我的描述不准确,导致了你的误解。我前面提到的用户指的是所有的客户组。我们的app主要在中国发布。我们面对的不仅仅是一个具体的企业,也面向单个个体用户。例如,如果他有一辆车,他也可以购买我们公司的GPS设备,安装在他的车里。在他购买了GPS设备后,我们会给他分配一个账号和密码,他可以通过这个app登录并查看他的车辆的GPS数据和其他相关数据,所以可以理解这个app也是为所有人服务的。我们app的主要目的是让所有购买我们GPS设备的客户通过我们的app来监控自己的车辆,提高他们对车辆的保护,并方便查询自己的数据趋势。它是一个用户的工具软件。本软件是整个系统模块中不可缺少的一个环节,它对我们来说非常重要!如果我们将我们的app定义为一个特定的企业应用,首先,其他客户购买了我们的GPS设备后,将无法下载app来查看GPS数据。而且,对于我们来说,迭代新版本和开发更多的用户是不方便的。毕竟,应用程序商店是苹果唯一官方认可的应用程序商店。可能app的一些功能还没有改进。这只是版本1.0.3。随着项目的发展,我们应该开发更多的客户相关功能。 然后客户的帐号和密码,我们将检查平台上的客户的相关信息,然后让我们知道客户的密码设置管理员帐户。
致以最亲切的问候
然后苹果回复说在3~5个工作日内会打审核信息页面的电话来讨论App审核事项,但是等了三四天也没见苹果给我打电话,然后我就急了,直接回复说,我还没收到你的来电,请尽快拨打我的电话以便于App的审核。
结果第二天莫名其妙的就上架成功了,根本没打我电话.
Your app uses the "prefs:root=" non-public URL scheme, which is a private entity. The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.
Specifically, your app uses the following non-public URL scheme:
prefs:root="的调用,这个api已经被列为私有api,请大家尽快升级。
prefs:root="的调用,这个api已经被列为私有api,请大家尽快升级
Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.
Next Steps
To resolve this issue, please revise your app to provide the associated functionality using public APIs or remove the functionality using the "prefs:root" or "App-Prefs:root" URL scheme.
If there are no alternatives for providing the functionality your app requires, you can use Feedback Assistant to submit an enhancement request.
对于以2.5.1这种问题,首先可以在Xcode工程里全局搜索“prefs:root=”,如果是代码里含有“prefs:root=”可以考虑改用最新的公开API:
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
其次也可以考虑第二种方式
对prefs:root = Bluetooth字段做转换,这样可以在审核时逃过代码扫描,具体方法如下:
//将字符串转换为16进制
NSData *encryptString = [[NSData alloc] initWithBytes:(unsigned char []){0x70,0x72,0x65,0x66,0x73,0x3a,0x72,0x6f,0x6f,0x74,0x3d,0x4e,0x4f,0x54,0x49,0x46,0x49,0x43,0x41,0x54,0x49,0x4f,0x4e,0x53,0x5f,0x49,0x44} length:27];
NSString *string = [[NSString alloc] initWithData:encryptString encoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:string] options:@{} completionHandler:nil];
如果“prefs:root=”搜索到的位置并不是在代码里,而是在一个文件里面的注释,可以考虑将此文件删除,或者将该注释删除,比如有一次我发现在TZImagePickerController这个第三方SDK下有个README.md文件,里面含有包含“prefs:root=”的注释说明,结果上架的时候被拒绝了,然后我将些文件删除掉,重新打包提交审核通过了。
最近上传一个客户定制的iOS 应用到App Store的时候,又出现了Guideline 4.3 - Design被拒绝的情况,多次碰到这个情况,也是对苹果的审核机制深深的跪了,奈何胳膊拧不过大腿,还是乖乖的想办法怎么解决吧。
Guideline 4.3 - Design This app duplicates the content and functionality of other apps submitted by you or another developer to the App Store, which is considered a form of spam. Apps that simply duplicate content or functionality create clutter, diminish the overall experience for the end user, and reduce the ability of developers to market their apps. The next submission of this app may require a longer review time, and this app will not be eligible for an expedited review until this issue is resolved. Next Steps - Review the Design section of the App Store Review Guidelines. - Ensure your app is compliant with all sections of the App Store Review Guidelines and the Terms & Conditions of the Apple Developer Program. - Once your app is fully compliant, resubmit your app for review. Submitting apps designed to mislead or harm customers or evade the review process may result in the termination of your Apple Developer Program account. Review the Terms & Conditions of the Apple Developer Program to learn more about our policies regarding termination. If you believe your app is compliant with the App Store Review Guidelines, you may submit an appeal. Alternatively, you may provide additional details about your app by replying directly to this message. Since your App Store Connect status is Rejected, a new binary will be required.
众所周知由于在2017年App Store算法重大调整,审核更加严格,导致之后出现大面积开发者遇到Guideline 4.3 - Design问题,这个问题在2017年年底也碰到过,不过当时换了账号重新上传就OK了,但这毕竟不是长久之计,还是得研究下怎么从代码层次避规,注意:4.3一般都是机器审核阶段才会出现的问题!
1,预审核
扫描api,及plist文件字符缺失等;此处分两步,第一步为上传时苹果Application Loador等应用对于适配icon等的检查,第二步为上传后苹果的功能性检查,例如配置了Push功能但有缺失或者未打开功能,则会邮件提示等等;
2,机审
此处扫描支付SDK等,及马甲情况,机器扫描主要看代码块,可参考百度蜘蛛抓取网站模块原理;如遇部分无法过机审情况可尝试加速绕过机审(不是100%成功);
3,人工审核
此处主要检测功能或者App体验测试,例如用测试账号登录App体验功能,或其他是否明显bug等,ipv6也在此处检测;
1.ipa包特征:
包括有代码相似性,资源相似性;
代码相似性解决办法:
资源相似性解决办法:
2.开发者帐号:
3.元数据配置相似性:
解决代码相似性的问题,在网上找到三个代码混淆小工具
附上三个常用的代码混淆工具github链接:
spamCode Git下载地址
https://github.com/oneyian/SpamCode
iOSMixProject Git地址
https://github.com/JourneyYoung/iOSMixProject
KLGenerateSpamCode
https://github.com/klaus01/KLGenerateSpamCode
主要说说KLGenerateSpamCode这个工具用于应对苹果对重复应用的审核(Guideline 4.3 Design Spam),避免苹果机审检测概率。
主要功能
1.修改工程名
2.修改类名前缀
3.扫描工程中的代码,生成同等数量的 Category 文件,文件中及是同等方法数量的垃圾代码。
4.修改 xxx.xcassets 文件夹中的 png 资源文件名。
5.删除代码中的所有注释和空行。
用法就不多讲了 github上已经讲的很清楚了。
如上,对上面提到的重点进行重新配置,然后使用KLGenerateSpamCode这个工具处理下代码,可以极大避免4.3情况的出现,祝好运!
实测:最近按上文中的方法,再次上传了2个应用,均是一次性通过。注意:图片压缩是必不可少的步骤,减少资源相似度,提高马甲包的通过率!
以下几点为我总结的经验,供各位参考:
1、审核人员是否会改变:首先我明确告知各位,APP如果不通过,将会一直由同一个审核人员审核。请不要妄想觉得我被拒绝后,延迟几天提交就能够换一个审核人员,这是思想是错误的;
2、关于4.3延迟审核时间:4.3审核结果将导致你的APP无法加急审核,不管你的理由有多么悲情多么振奋,都会被审核人员驳回。4.3延迟时间大概以下规定。第一次审核4.3:三个工作日;第二次4.3:14个工作日 ;第三次4.3:延迟一个月左右。期间请不要撤回。
3、进入审核多久出结果:理论上进入审核后一到二小时会出审核结果。实际审核结果基本1分钟就会给出尤其针对4.3开发者。(本人在一次和美国审核人员电话交涉中得出该结果。对方在美国周六下午拨打我电话,我要求她当场审核下我的APP,仅仅说话的功夫,她就得出4.3的结论。)
4、在解决中心回复4.3问题有用吗:绝大数4.3开发回复依旧会被认为是4.3。除非你本身APP在ios占有很大的数量,被审核人员认同。其他情况基本不会改变审核人员的结果。(ios这点审核人员规矩的很,不会和你讲人情。证据:依旧在于美国工作人员沟通中,本人表示是否可以将本人APP以非4.3的理由驳回,她表示不可以)
5、审核人员是否看的懂中文:苹果公司是一个全球性的工作,在其招聘官网明确要求招聘精通中文的审核人员。同时我在沟通当中了解到苹果公司有大量的华裔人员。所以你可以使用中文与审核人员邮件以及电话沟通。
6、解决中心以及电话沟通话给您解决办法吗:会。一般来说邮件沟通比较类似模板话术,在最后几句会加入苹果审核人员的个人建议以及看法。但是建议和看法都比较普遍 比如修改功能不要和其他app具有重复功能(我要能不重复,我还搞这些干嘛哈哈)
7、如何解决4.3问题:请不要再浪费时间在原包重新上传修改模板。立即移除APP并新建包,修改logo,模板。
We noticed that your app requests the user’s consent to access the Bluetooth, but doesn’t sufficiently explain the use of the Bluetooth in the purpose string.
To help users make informed decisions about how their data is used, all permission request alerts need to specify how your app will use the requested information.
Next Steps
Please revise the relevant purpose string in your app’s Info.plist file to specify why your app needs access to the user's Bluetooth.
You can modify your app's Info.plist file using the property list editor in Xcode.
Resources
- See examples of helpful, informative purpose strings.
- Review a list of relevant property list keys.
Please see attached screenshot for details.
中文翻译:
5. 1.1法律:隐私-数据收集和存储
法律-隐私-数据收集和存储
我们注意到您的应用程序请求用户同意访问蓝牙,但在purpose字符串中没有充分解释蓝牙的使用。
为了帮助用户在知情的情况下决定如何使用他们的数据,所有的权限请求警报都需要指定你的应用程序将如何使用所请求的信息。
下一个步骤
请修改应用程序信息中的相关目的字符串。plist文件指定为什么你的应用程序需要访问用户的蓝牙。
你可以修改你的应用程序的信息。plist文件使用Xcode的属性列表编辑器。
资源
-参见有帮助的,有用的目的字符串的例子。
-检查相关属性列表键的列表。
详情见附件截图。
类似的隐私访问权限文案如下:
Privacy - Camera Usage Description (访问相机权限):“您的App名称”想访问您的相机,为了帮您扫描称重设备条形码、给车辆拍照等功能;
Privacy - Photo Library Usage Description (访问相册权限) : “您的App名称”想访问您的相册,为了帮您上传车辆录入图片、设备维修图片等功能;
Privacy - Bluetooth Peripheral Usage Description (访问蓝牙外设权限) “您的App名称”想访问您的蓝牙,为了帮您在录车、维修、数据标定时通过蓝牙读取称重主机重量、传感器数据;
Privacy - Bluetooth Always Usage Description (蓝牙一直使用权限)“您的App名称”想访问您的蓝牙,为了帮您在录车、维修、数据标定时通过蓝牙读取称重主机重量、传感器数据;
Privacy - Location Usage Description (位置使用权限):“您的App名称”想访问您的位置,为了帮您获取附近待维修车辆,记录您录车、维修、数据标定等拍照操作时的地理位置
Guideline 5.0 - Legal
Recently, the Chinese Ministry of Industry and Information Technology (MIIT) requested that CallKit functionality be deactivated in all apps available on the China App Store.
During our review, we found that your app currently includes CallKit functionality and has China listed as an available territory in App Store Connect.
Next Steps
This app cannot be approved with CallKit functionality active in China. Please make the appropriate changes and resubmit this app for review.
If you have already ensured that CallKit functionality is not active in China, you may reply to this message in Resolution Center to confirm.
Voice over Internet Protocol (VoIP) call functionality continues to be allowed but can no longer take advantage of CallKit’s intuitive look and feel. CallKit can continue to be used in apps outside of China.
准则5.0 -法律
近日,中国工业和信息化部(工信部)要求在中国App Store的所有应用程序中停用CallKit功能。
在我们的审查中,我们发现您的应用程序目前包括CallKit功能,并在app Store Connect中将中国列为可用区域。
下一个步骤
这个应用程序在中国不能通过CallKit功能激活。请做出适当的更改,并重新提交此应用程序以供审核。
如果您已经确认CallKit功能在中国没有激活,您可以在解决中心回复此消息进行确认。
VoIP (Voice over Internet Protocol)呼叫功能继续被允许,但不能再利用CallKit直观的外观和感觉。CallKit可以继续在中国以外的应用程序中使用。
解决方案:
直接回复:This function is not available in China. We have blocked users in China from using this function through the server(此功能在中国区不可用,我们通过服务器屏蔽了中国区的用户使用此功能)
humiaor