1:开放的头文件(包含完整的调用注释)
2:静态库文件 后缀名为.a
3:Bundle文件,用于存放各种资源文件。
那么其他的都很简单:这里具体说说bundle文件的封装(其实也很简单)
第一步:创建Bundle项目
选择Bundle文件类型后并创建项目。
第二步:修改BuildSetting相关设置
1:Base SDK 修改为 iOS6 或者其他存在的iOS SDK版本
2:Architectures 修改为 armv7 armv7s
第三步:添加需要添加的资源文件
第四步:Build (这里不需要使用证书也可以编译成功)
这样就生成了自己的Bundle
调用的时候助需要引用至项目中就行。
如果想要将在某个非mainBundle的地方调用。那么需要额外加载此Bundle
NSBundle *buddle = [NSBundlebundleWithPath:@“你的bundle文件存放路径”]
[buddle load]//这一步必须执行,否则buddle无效
这样你就可以将这个bundle放在任意路径调用了
这个问题主要是因为老项目不是用Xcode9创建的,然后Xcode9出来之后我们升级到了Xcode9,但是打开项目Assets.xcassets,里面的AppIcon并没有"App Store iOS 1024pt"这个item,另外如果使用的是LaunchImage而不是LunchScreen作为启动图的话,LaunchImage里面也不会有"iPhone X Portrait iOS11+"这个item,所以我们就需要添加。
③更改Contents.json文件内容,按照对应格式添加即可:
AppIcon需要添加的内容:
LaunchImage需要添加的内容:
注意:
1>filename这个字段的名字一定要跟你的图片资源的名字相匹配,是图片名字的全称包括后缀名,也包括@2x或者@3x。
2>添加这段内容要注意前后的格式,如果你是添加在这个"images"这个数组的最后一个元素,那么与上一个元素之间就需要用","隔开;如果是中间添加那么就需要在前后都需要加","隔开,保持格式一致。
④把对应的图片资源拖到Contents.json文件同级目录下即可。然后刷新下AppIcon和LaunchImage就能看到对应的item了。
注意:
以上添加完之后还是要用Xcode9来打包,如果用Xcode8打包的话,会将原来指定的Icon或者LauchImage图片变成unsigned,所以还是要用Xcode9打包!
如果有任何其他问题,评论区里面留言,以上!!!
1、A copy的名称是不是显得不够专业?现在来修改一下:1)首先修改Xcode左上角的target名称:
点击xcode左上角Run、Stop右边的工程名称,下拉框中选择Manage Schemes,在d出框中,点击A copy那行,点击一次、再点击一次,就可以修改A copy为你想要的名字了,比如ALite;
2)修改xcode左下方Products下的A copy.app名称:
点击Targets下你刚才改名后的ALite,点击Bulid Setting,搜索Packaging下的Private Headers Folder Path,修改A copy.app/PrivateHeaders为:ALite.app/PrivateHeaders;
2、修改Bundle Identifier和选择不同的证书,让app区分开来
1)新target需要的.plist文件
新建一个文件夹X,添加X到项目中,添加时选择target为ALite,不要选target A了,因为不是共用的;复制原来target的A-Info.plist到X,修改其名称为ALite-Info.plist,xcode中右键Add File To ...,选择添加到target ALite中;
2)点击target: ALite ->Summary:提示你需要选择plist文件,选择1)中添加的ALite-Info.plist;
3)点击target: ALite ->Summary:设置Bundle Idenfitier;
4)点击target: ALite->Build Settings->Code Signing:选择另外的证书;
3、修改程序名称
一般说来,多个target的程序名称不同,复制zh-Hans.lproj和en.lproj下的InfoPlist.strings文件到X,xcode中右键Add File To ...,选择添加到target ALite中;然后修改InfoPlist.strings的内容:CFBundleDisplayName="程序名称Lite"
4、2个target到现在就创建好了,你添加资源文件的时候,通过选择添加的target来控制不同版本的内容;再说一下预编译宏的事情:target->Build Setting,搜索:Preprocessor Macros,设置Debug和Release里的预编译宏内容,比如TARGET_VERSION_LITE=1表示lite版本(注意=前后不能右空格,有空格会编译不过),程序中对不同版本这样判断:
#if TARGET_VERSION_LITE ==1
...
#elif TARGET_VERSION_LITE ==2
...
#endif
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)