自动化编译提交appstore的xcarchive格式
运用-xcconfig 参数
如果我们需要自动化编译出多个可提交的应用,那我们不可避免的需要更改以下这几个信息
1.info.plist 和每个应用息息相关的信息,显示名称,identifier,version和可能我们自己定义的一些和应用挂钩的标示
2.productName (我们不想编译出的包都是一个名把 :))
3.provisioning_profile,code_sign_identity 和每个应用相关的证书信息
如果要在运行xcodebuild的同时去更改这些信息 那我们就需要用到-xcconfig 后面跟随的是文件路径,所以我们需要人工的创建一个.xcconfig文件 然后重新更改以下信息
PRODUCT_NAME =
INFOPLIST_FILE =
PROVISIONING_PROFILE =
PROVISIONING_PROFILE[sdk=iphoneos*] =
CODE_SIGN_IDENTITY =
CODE_SIGN_IDENTITY[sdk=iphoneos*] =
具体这些key应该怎么写 我们可以vi 打开我们的xxx.xcodeproj中的project.pbxproj拖到最底部查看 或是 直接打开xcode在buildsetting中直接复制粘贴我们想要更改的配置项到.xcconfig文件(这点xcode还是挺贴心的)这样我们的配置文件就做好了,至于用shell怎么把这几步做成自动化就不用多说了把
接下来我们就要分析一下 xcode archive出来的提交文件
文件结构
xxx.xcarchive
---dSYMs/
---xxx.app.dSYM
---Info.plist
---Products/
---Applications/
---xxx.app
经过一番仔细的查看 我发现archive文件和我们用xcodebuild编译出来的xxx.app.dSYM xxx.app并没有什么区别,只不过多加了Info.plist来加入了一些程序的信息,我们在看下Info.plist这个文件,可以发现 只是一些identifier version等等基本信息 这些信息我们完全可以自己手动的写入,然后我们只要根据这些文件路径组成xcarchive文件 复制到相应的路径 我们就可以在organizer-archives里面提交到app store了
小问题:
加入568h的支持phone5的启动图片 貌似要用ios6 sdk编译才能通过app store的提交审核 不然会因为Invalid Launch Image - You app contains a launch image with a size modifier that is only supported for apps built with the iOS 6.0 SDK or later. 而被打回。