谷粒的泥坑

🌿谷粒的生活笔记 —— 在数字世界的泥坑中,播种代码、文字的种子,静待每一份热爱自然生长

iOS 提审报错Missing required icon file

1
Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format for iOS versions >= 10.0.

报错的具体原因还是不清楚,但是我知道了解决的方法,将项目中的AppIcon 删除后,重新的编译出 Assets.car文件

[读书笔记]下半身是健康的根本

为了打通阴阳两气交流的“通道”,就必须让下半身的阴气上行,刺激心火,推动上半身的阳气下行,形成一种水升火降的平衡状态,所以古人说寒头暖足,道理也便如此。如果要通过泡澡来养生保健的话,正确的方式是只泡下半身,让下半身热起来,使“气”的流动恢复正常。如果连上半身一起泡的话,气血无法下行,则会导致头痛、目眩、血压升高等疾病。

坐得多了,会引发太多的问题,便秘、痔疮、腹胀、消化不良等,这还属于轻的,不知道已经有多少人在受着腰椎、颈椎酸痛的困扰。

人不是机器,久坐不动,会耗血伤阴,记忆力下降,不仅于事无补,还会导致错误百出。

要想解决这个问题,关键还在于自己,只要脑子里面时刻有“久坐不利于健康”这个意识,

转动脚踝不拘形法,随便转动,使脚踝有舒适、略微发热的感觉即可

赤足行走,养阴最重要的是吸收地气

ANE 开发保姆级帮助

Adobe AIR ANE(AIR Native Extension)开发流程涉及多个步骤,包括设置开发环境、编写原生代码、打包 ANE、在 AIR 应用中使用 ANE 等。以下是一个完整的解决方案:

1. 设置开发环境

安装必要的软件

  • Adobe AIR SDK:用于编译和打包 AIR 应用。
  • Java Development Kit (JDK):用于编译 Java 代码(如果开发 Android ANE)。
  • Xcode:用于编译 iOS 代码(如果开发 iOS ANE)。
  • Android Studio:用于编译 Android 代码。

2. 创建 ANE 项目结构

创建一个目录结构来组织你的 ANE 项目,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/path/to/ane_project/
├── android/
│ ├── src/
│ │ └── com/
│ │ └── example/
│ │ └── MyExtension.java
│ ├── AndroidManifest.xml
│ └── build.gradle
├── ios/
│ ├── MyExtension.h
│ ├── MyExtension.m
│ └── MyExtensionANE.xcodeproj
├── default/
│ └── MyExtension.swc
├── extension.xml
└── build.xml

3. 编写原生代码

Android 原生代码

android/src/com/example/MyExtension.java 中编写 Java 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.example;

import com.adobe.fre.FREContext;
import com.adobe.fre.FREExtension;

public class MyExtension implements FREExtension {
@Override
public void initialize() {}

@Override
public FREContext createContext(String contextType) {
return new MyExtensionContext();
}

@Override
public void dispose() {}
}

iOS 原生代码

ios/MyExtension.m 中编写 Objective-C 代码:

1
2
3
4
5
6
7
8
9
#import "FlashRuntimeExtensions.h"

void MyExtensionInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet) {
// 初始化代码
}

void MyExtensionFinalizer(void* extData) {
// 清理代码
}

4. 编写 ActionScript 接口

default/MyExtension.as 中编写 ActionScript 接口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package {
import flash.external.ExtensionContext;

public class MyExtension {
private var context:ExtensionContext;

public function MyExtension() {
context = ExtensionContext.createExtensionContext("com.example.MyExtension", null);
}

public function someFunction():void {
context.call("someFunction");
}
}
}

5. 配置 extension.xml

extension.xml 中配置 ANE 的元数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<extension xmlns="http://ns.adobe.com/air/extension/32.0">
<id>com.example.MyExtension</id>
<versionNumber>1.0.0</versionNumber>
<platforms>
<platform name="Android-ARM">
<applicationDeployment>
<nativeLibrary>android/bin/MyExtension.jar</nativeLibrary>
<initializer>com.example.MyExtension</initializer>
</applicationDeployment>
</platform>
<platform name="iPhone-ARM">
<applicationDeployment>
<nativeLibrary>ios/MyExtension.a</nativeLibrary>
<initializer>MyExtensionInitializer</initializer>
<finalizer>MyExtensionFinalizer</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>

6. 编译原生代码

编译 Android 代码

使用 Gradle 编译 Android 代码:

1
2
cd /path/to/ane_project/android
gradle build

编译 iOS 代码

使用 Xcode 编译 iOS 代码:

  1. 打开 MyExtensionANE.xcodeproj
  2. 选择目标设备并编译项目。

7. 打包 ANE

使用 ADT 工具打包 ANE:

1
adt -package -target ane MyExtension.ane extension.xml -swc default/MyExtension.swc -platform Android-ARM -C android/bin . -platform iPhone-ARM -C ios . -platform default -C default .

8. 在 AIR 应用中使用 ANE

在你的 AIR 应用中,添加 ANE 并使用它:

1
2
3
4
5
6
7
8
<application xmlns="http://ns.adobe.com/air/application/32.0">
<id>com.example.MyApp</id>
<versionNumber>1.0.0</versionNumber>
<extensions>
<extensionID>com.example.MyExtension</extensionID>
</extensions>
...
</application>

在 ActionScript 代码中使用 ANE:

1
2
3
4
import com.example.MyExtension;

var myExtension:MyExtension = new MyExtension();
myExtension.someFunction();

9. 打包 AIR 应用

使用 ADT 工具打包 AIR 应用:

1
adt -package -target apk-captive-runtime -storetype pkcs12 -keystore /path/to/keystore.p12 -storepass your-keystore-password bin/MyApp.apk src/app-app.xml -C bin .

通过以上步骤,你可以创建一个完整的 ANE 开发流程,并在 AIR 应用中使用它。如果有任何问题,请提供更多详细信息以便进一步帮助。

制造需求

昨天看了看了一个视频很有感触。讲述的潘金莲和西门庆的那一档子事情。

西门庆看上了潘金莲,但是不知道怎么去追。就去问王婆,王婆知道后告诉西门庆,需要有 5 个能力。“潘、驴、邓、小、闲”,就是要求西门庆具备这些的能力才行。其实王婆知道西门庆是能够追到潘金莲的,有没有那五件东西都不是重要的。因为王婆知道了潘金莲是有这个需求的。但是王婆为了获取更多的好处,就将这个事情包装的复杂一点。

反观另外一个衙内去追求另外一个女人的时候,尽管有了更多的钱财。最终没有追上,核心在于这个女人是没有那个需求的。所以,找准用户的需求,找到具备这个需求的人,是最重要的事情。至于那些“潘、驴、邓、小、闲”其实没有那么重要,如果用 28 定律来分析的话,用户的需求占 8 成,产品的那些优势特点占 2 成

在那个视频中,还提到了一个案例。就是制造需求
案例是这样的,面试只面试官要求职者把一直笔卖给他。大部分的求职者都在描述这个产品的优势和好处。但是,只有一个求职者是这么说的,请在那个纸上签上你的名字。面试官说,我们没有笔。求职者说,卖给你了。

仔细的思考下,这个求职者其实是给面试官制造一个需求。就是让他在纸上签名字。

我们需要结合产品的用途和特性,制造出一种需求。这个需求可以是行为,目标,或者是某种心理的满足。
所以,这个过程其实是跟下象棋是很像的。就是我的目标将军,但是我是没法直接去将军的。就需要在将军之前去做一些的铺设。我的每一个行为都是为了将军去铺设的。
回到我们的产品上,我的目标是卖出产品。而我的方式有很多,这里的方式就是产品的一些特性,就类似将军的不同方式。那我就需要选定我的最具竞争力的特性,或者是最擅长的将军的方式比如马后炮。再就是-2 步了根据产品的这个特性,去找到用户的需求,不断的描述,不断的唤醒用户的痛点,这个过程就制造出了用户需求,本来没有的需求,硬是给造出来了。回到下象棋上来,就是本来是不具备将军的条件的,当

我一步一步走的时候,就发现慢慢的时机成熟了

可以通过当前的牌面去选择自己的进攻方式,也可以先选定自己的进攻方式去制造某个牌面。
再回到产品上来说,不同的用户其实是对与不同的需求有不同的感知程度的,有的用户确实是对于某个痛点不在乎。那么,你就没有必要去继续用这个进攻的方式了,可以用这个产品的其他的特性去进攻。

崩溃的一天

早上 6 点,闹钟把我叫醒。这次并没有去睡觉,而是去打开电脑。看了下广告数据,千展到了 80 刀,直接关掉了

这次彻底的宣告,投流结束了。通过付费流量的方式,去做普货,这个流程成本太高了,如果是普货,都不如去做平台呢?

那么,现在该怎么办呢?

出路在哪里

已经好久没有改变了,昨天跟着lie去了龙岗,折腾了一天的时间,并没有什么收获,一群人在一起吹牛逼,真的没有什么意思了

接下来该如何去做,很多人还是停留在讨论的层面上,执行层面如何去落地,facebook投流依然是有机会的,找到合适的品类就变的很重要了,什么是合适的品类呢?去思考,去研究,投入大量的时间在这上面才是重要的,不能因为自己是技术就只是去研究技术,技术只是电商的一个环节,但不是重要的环节。

选品才是最重要的,测品是一个技术的问题,一个品是否能够出效果,是在一定的环境下,一定的区域去看待的。