项目提审被拒:
Guideline 4.3 - Design
We noticed that your app provides the same feature set as other apps submitted to the App Store; it simply varies in content or language, which is considered a form of spam.
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.
我们的项目是新开发的项目,并不是马甲包,为什么这样呢一脸懵逼,怀疑是机审被拒了,以为我写了一个项目框架,包名都是一样的,里面的框架结构代码,网络,工具等代码都是多个项目公用的,但是业务逻辑代码,UI代码等都是每个项目不同,可能是苹果的机审机制有点鸡肋,认为我的项目是马甲包,而有用的新代码被认为是垃圾代码。
目前打算做如下修改:
1、修改项目包名
2、修改版本号 原来是1.0.0 改为 1.0.1.0901 看起来变化挺大哈哈
3、修改项目色系,原来是紫色系,修改为其他色系包括项目logo,页面按钮的按钮,tabbar按钮颜色,部分彩色文字的颜色等。
修改项目包名
iOS部分
iOS部分比较复杂,主要分为这么几个部分:
1.Xcode项目部分;
2.Xcode中test部分;
3.Xcode中所有文件名;
4.Xcode中所有相关代码;
5.修改scheme;
6.finder中文件夹名称;
7.cocospod相关;
Xcode项目部分
首先从Xcode项目开始,使用Xcode打开项目,点击左上角项目名称,按下回车就可以修改项目名称了。
修改好新的名称之后回车,就可以看到这个界面,点击rename就可以了。
这时候会发现应用大部分东西已经发生变化了,而且这个时候项目是一定没办法跑起来的,也不用跑,接着往下改。
Xcode中test部分
接下来把xxTests.m
中的代码修改一下。
Xcode中文件名
这步就直接把Xcode中所能看到的所有旧的相关文件名都替换成新的项目包名就可以了。也可以直接在下边搜索关键字并替换,这里注意,Pods下的部分先不要修改。
Xcode中相关代码
接下来再应用中全局搜索旧包名的关键字,并替换成新的包名,同上,这一步Pods部分先不要动,xcodeproj中的也可以先不动。
修改scheme
点击Product => Scheme => Manage Scheme ,这里你可以直接把原来的名字替换成新的名字。哦对了,这个地方不要双击,单击要改的地方按下回车就可以修改了。这里的-Pods也是需要修改的。
修改finder中的文件
这时候关闭Xcode,在finder中修改所有的旧包名,改成新的包名。
cocospod相关
这部分有两种方式可以使用。
重新安装pods
一种就是把原来的cocospod相关的东西全部删除,需要删除的文件有:
Pods 文件夹
Podfile.lock 文件
.xcworkspace 文件
然后重新pod init,记得不要删掉Podfile文件,不然就没办法安装了。
修改名称
再或者修改.xcworkspace文件的文件名为新的包名,并右键.xcodeproj文件,点击Show Package Contents,然后使用文本编辑器打开project.pbxproj。寻找所有的旧包名并替换。
收尾工作
这时候打开Xcode,别急着跑,先看看有没有文件是爆红的,如果有的话,点击右侧小文件夹,重新引入一下文件路径。
如果之前你是使用修改名称的方式修改cocospod,记得我们之前说的不要修改pods下的文件名和代码么?这时候就可以开始修改了。
记得先修改一下Pods下target的名称。
修改完直到应用中再也搜索不到旧的包名,这时候cmd+r一下试试吧。
最后
修改包名还是有很多坑的,有的时候有一点东西改的不对,就会影响最后的效果,修改的时候还是要多耐心一点。
个人
在按照上述文章操作了一番后,项目报错:
The file "/Users/me/Desktop/XXX-iOS/XXX/XXX.entitlements" could not be opened. Verify the value of the CODE_SIGN_ENTITLEMENTS build setting for target "XXX" is correct and that the file exists on disk.
找不到entitlements,因为项目中的entitlements 是在TPNS文件中,所以修改Target->XXX->Build Settings中,搜索entitlements,将原来的 XXX/XXX.entitlements 改为 TPNS/XXX.entitlements,再次编译即可, 如果编译不过,先clean一下再编译即可。