iOS一个项目多个target,实现测试或者一个工程多个app管理

5 篇文章 0 订阅
4 篇文章 0 订阅

         公司突然给了个需求,要把另一个项目整合到当前的项目里面,说是大部分页面代码共用少部分差别。后来我想了想,这个需求理论上是可以做的,但是要看两个项目的差别多大,其次!代码写得是不是很规范,耦合性高不高,在我看来我接手的项目代码写得很乱所以不赞成的,但是上面的要求,我还是去研究了一下具体的实现方案。

        就如标题所说的,多个target的创建和一些配置而已,直接上图:


①直接复制,会在下方多出一个 同名+copy 的target


②双击修改名称成你想要的名字


③添加宏定义



④同样,在原来的target添加宏定义,值=0,(注意debug和release一起加)



⑤修改bundleIdentifier和displayName。



⑥修改启动图和icon。



⑦在pch文件使用



⑧在.m文件代码中使用(我这是AppDelegate里面的didFinsh方法里面,在这里控制keywindow等就可以控制根试图,首页等差别文件)



⑨切换target运行,可以发现导入的头文件和.m文件的输出和预期一样。



⑩新建文件的时候或者拖入文件的时候记得选择合适的target,谁需要用到这个文件就选谁,都需要就全选(全部全选的话,应该会给编译带来弊端)


*顺便说一下,新建一个目录来管理另一个target的专属文件,也就是差异文件,使项目结构清晰易读。



*还有target也是可以直接点击+号新建的,这样建出来的target会附带很多文件



可以看到,跟全新的项目一样,需要慢慢配置,我没去仔细研究,有兴趣的自己试试


    最后,理解了这层作用以后,以后新写的项目尽量把这个问题考虑进去,代码封装好一些,耦合性低,复用性高,方便以后扩展。

原文 https://www.jianshu.com/p/ae0c9726785e




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 我可以为您提供一个完整的uniapp多图上传解决方案,如下:1.首先,安装uniapp,并在项目中添加一个新页面,以便上传图片。2.添加一个图片上传按钮,并配置它们的属性,以便接收多个图片。3.将图片上传到服务器,并在服务器端使用Node.js进行图片处理。4.将处理后的图片返回到前端,并显示在页面上。5.完成。 ### 回答2: uniapp作为一款跨平台的开发框架,提供了丰富的API和组件,可以很方便地实现多图上传功能。下面是一个完整的uniapp多图上传的实现步骤: 1. 创建一个页面,包含一个按钮显示选择图片的容器。 2. 在按钮的点击事件中,调用uni.chooseImage方法选择多张图片,并设置最大可选数量。 ``` uni.chooseImage({ count: 9, // 最大可选数量 success(res) { const tempFilePaths = res.tempFilePaths // 选择的图片的临时文件路径数组 // 将选择的图片临时文件路径保存到data中,用于后续上传操作 this.tempFilePaths = tempFilePaths } }) ``` 3. 在页面中显示选择的图片,可以使用v-for指令遍历tempFilePaths数组,在列表中显示图片。 ``` <view v-for="(item, index) in tempFilePaths" :key="index"> <image :src="item"></image> </view> ``` 4. 添加一个上传按钮,绑定上传事件。 ``` <button @click="uploadImages">上传</button> ``` 5. 在上传事件中,使用uni.uploadFile方法将选择的图片上传到服务器。 ``` uploadImages() { this.tempFilePaths.forEach((item) => { uni.uploadFile({ url: '上传接口地址', filePath: item, name: 'file', success(res) { console.log('上传成功') }, fail(res) { console.log('上传失败') } }) }) } ``` 6. 注意,在使用uni.uploadFile方法上传文件时,需要设置正确的上传接口地址,并将filePath参数设置为图片的临时文件路径,name参数为后端接口中接收文件的字段名。 7. 如果需要实现进度条等上传反馈,可以在uni.uploadFile的success和fail回调方法中添加相应的逻辑。 通过以上步骤,我们可以实现uniapp的多图上传功能。根据需要,您还可以通过添加图片预览、删除已上传图片等功能,来进一步完善这个多图上传功能。 ### 回答3: UniApp是一款开发跨平台应用的框架,可以用于开发iOS、安卓以及H5等应用。下面我将为您提供一个完整的UniApp多图上传的实现方案。 首先,您需要在页面中引入uni-app自带的上传组件`<input type="file" name="file" multiple @change="handleUpload">`,通过选择文件的方式来触发上传事件。 接着,在对应的vue文件中编写`handleUpload`方法,用于处理上传事件。在该方法中,您可以使用uni.uploadFile API来实现多图上传,具体代码如下: ```vue methods: { handleUpload(e) { const files = e.target.files const uploadTasks = [] for (let i = 0; i < files.length; i++) { const uploadTask = new Promise((resolve, reject) => { uni.uploadFile({ url: 'https://example.com/upload', // 上传接口地址 filePath: files[i].path, name: 'file', success: (res) => { resolve(res.data) }, fail: (err) => { reject(err) } }) }) uploadTasks.push(uploadTask) } Promise.all(uploadTasks) .then((results) => { console.log('上传成功', results) // 处理上传成功后的逻辑 }) .catch((err) => { console.error('上传失败', err) // 处理上传失败后的逻辑 }) } } ``` 在上述代码中,我们使用`Promise.all`方法来确保所有上传任务都完成后再执行后续的逻辑。当所有的上传任务都成功时,通过`then`回调获取到上传结果;当有任意一个上传任务失败时,通过`catch`回调进行错误处理。 注意,这里的`url`参数需要替换为您自己的上传接口地址,并根据接口返回的数据格式进行相应的处理,如展示上传进度、保存上传成功的图片链接等。 以上就是一个完整的UniApp多图上传的实现方式,希望能对您有所帮助。如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值