问题标签 [imessage-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
902 浏览

ios - 使用 iMessage 应用扩展为 iOS 应用设置 Fastlane + Match

我在让我们的 CI 服务器构建我们的应用程序时遇到问题(如果相关,我们会使用 Jenkins)。

我们之前已经设置了我们的 Jenkins 构建以与 Fastlane/Sigh/Gym 一起使用,但是由于我们最近在我们的应用程序中添加了 iMessage 扩展,因此构建过程被破坏了。

我读过的所有内容都表明我应该使用 Match 来获取签名证书,而不是 Sigh,所以我已经转而使用它。

我也无法让 Sigh 工作,因为它生成的证书似乎忽略了两个证书都需要应用程序组功能的事实(两者都具有适当的“group.com.mycomp.myapp”应用程序组)

在我的本地开发机器上切换到 Match 后,我现在构建应用程序的成功有限。我现在在 Match 命令中使用一组应用程序标识符。

这确实成功地将证书下载到本地计算机。(经过多次尝试以及使用无效证书等来回转发后,我终于设法让这一步在 CI 服务器上工作)

接下来,在我的本地计算机上运行 Gym 成功,但在 CI 服务器上失败并显示以下消息:

SDK“iOS 10.1”中的产品类型“App Extension”需要代码签名

查看完整日志文件的最后,我可以看到消息

检查依赖项

未找到“com.mycomp.appname.iMessage”的配置文件:Xcode 找不到匹配“com.mycomp.appname.iMessage”的配置文件。

SDK“iOS 10.1”中的产品类型“App Extension”需要代码签名

我们 Fastfile 中的这条通道如下所示:

我在两台机器上运行相同的组件和最新版本:

  • XCode v8.1
  • 快车道 v1.111.0
  • 健身房 v1.12.1
  • 匹配 v0.11.0
  • 叹息 v1.12.0

我猜这在我的本地开发计算机上正常工作,因为我总是在 XCode 中加载项目,我假设它修复了证书映射,而在 CI 服务器上我不这样做。

如何正确映射证书以便在 CI 服务器上工作?

或者,我该如何设置,以便 Sigh 生成具有正确应用组要求的证书?

0 投票
1 回答
469 浏览

ios - 在 iPhone 上安装 iMessage 贴纸包时出错

我在 Xcode 上制作了一个 iMessage 贴纸包。当我在我的 iPhone 上测试它时,点击构建按钮,它会成功构建,但 Xcode 总是说

无法附加到 pid ####

在我的手机上,只有包图标可见。我添加的照片和 GIF 都找不到。下面列出了屏幕截图。

iPhone 的屏幕截图

Xcode

我已经尝试过Pragnesh Vitthani 提供的方法,但它不起作用。输出是:

objc[313]:CKPPTSubTest 类在 /System/Library/PrivateFrameworks/ChatKit.framework/ChatKit (0x1a5a56ae0) 和 /Applications/MobileSMS.app/MobileSMS (0x1000d29a0) 中实现。将使用两者之一。哪一个是未定义的。未创建上下文!11 月 30 日 16:06:26 MobileSMS[313]:CGContextSaveGState:无效上下文 0x0。如果要查看回溯,请设置 CG_CONTEXT_SHOW_BACKTRACE 环境变量。11 月 30 日 16:06:26 MobileSMS[313]:CGContextDrawLinearGradient:无效的上下文 0x0。如果要查看回溯,请设置 CG_CONTEXT_SHOW_BACKTRACE 环境变量。11 月 30 日 16:06:26 MobileSMS[313]:CGContextRestoreGState:无效上下文 0x0。如果要查看回溯,请设置 CG_CONTEXT_SHOW_BACKTRACE 环境变量。11 月 30 日 16:06:26 MobileSMS[313]:CGBitmapContextCreateImage:无效的上下文 0x0。如果要查看回溯,请设置 CG_CONTEXT_SHOW_BACKTRACE 环境变量。

0 投票
1 回答
535 浏览

ios - 我对 Apple 的 iMessage 应用程序有哪些限制?

我刚刚意识到 Apple 现在允许开发人员创建 iMessage 应用程序。有人熟悉 iMessage 应用程序(或扩展程序)可以做什么吗?例如:

  • 扩展程序可以在用户不按常规发送按钮的情况下发送文本吗?
  • 扩展程序可以读取传入的消息吗?(我怀疑它可以)
  • 它可以看到用户在发短信吗?
  • 它可以看到用户输入的文本吗?

假设我想制作一个扩展程序来读取用户输入的内容(在普通消息界面中),在文本中查找任何算术,执行算术然后在答案中添加,然后发送消息,所有这些都只需单击一下。那可能吗?

我是 Apple Development 的新手,对他们的 API 和框架一无所知,所以我对可用的东西有点迷茫。我是一名计算机科学专业的学生,​​希望我能运用我目前的知识更快地学习。

0 投票
1 回答
379 浏览

ios - iOS iMessage 应用扩展 - 复制 iMessage 贴纸应用行为

有没有办法将行为类似于 Sticker App 贴纸的“真实”贴纸添加到您的自定义 iMessage 应用程序扩展中?我能找到的唯一示例使用 use MSMessageTemplateLayout,据我所知,它始终显示应用程序图标,并且不会让您剥离贴纸并将它们粘贴到其他消息上。

0 投票
1 回答
271 浏览

ios - 如何在贴纸 iOS 应用上使贴纸可旋转和调整大小?

我正在为 iOS 创建贴纸包,但我需要调整贴纸大小和旋转贴纸的能力。怎么做?

我应该使用 iMessage 扩展而不是贴纸包吗?

0 投票
0 回答
480 浏览

ios - 如何以编程方式清除 iMessage 扩展中的输入字段?

好的,我到处找,找不到一个关于这个的帖子。我正在构建一个 iMessage 扩展应用程序,我需要知道 IF 以及如何以编程方式清除 iMessage 文本输入字段。不一定要编辑内容,只需删除已放在那里的所有文字/贴纸。

我的意思是一旦发送消息就不会:

在此处输入图像描述

我知道我们拥有所有这些,我使用最后两个来查看贴纸是否已发送或已在输入字段中取消。

我怎么能这样做,或任何类似的东西?

0 投票
1 回答
462 浏览

ios - Swift:不能以编程方式在 UICollectionView 中选择 MStickerView?

好的,我已经查看了类似的帖子,例如在 UICollectionView 中以编程方式选择项目并尝试了我自己的方法,但是我无法在使用 Swift 以编程方式创建的 UICollectionView 中选择项目。

我正在构建一个 iMessage 扩展,并且我制作了 UICollectionview 来存储自定义 MSStickerViews 而不是 MSStickerBrowser。我像这样创建我的 MSStickerViews,它在 MSStickerView 上有一个自定义类来检测它们何时被剥离或点击:

然后在我从另一篇文章中采用的自定义课程中:

我的问题是我需要能够以编程方式(如使用按钮)在我的收藏视图中的位置选择我的一个贴纸视图。意思是模拟用户点击贴纸并使其出现在 iMessage 文本输入字段中。

我不知道如何直接将贴纸直接放在输入字段中,这就是我使用模拟点击方法的原因。

我的集合视图有一个标题,我尝试使用以下方法在集合视图中选择项目,但是尽管当我输入 0,0 时尝试导航不同的行/部分,但没有任何反应(怀疑它正在选择标题)其他任何事情要么什么都不做,要么发生未捕获的异常错误:

我已经直接从类中调用了 didTap 和自定义函数,但这并没有选择刚刚调用函数的贴纸:

我需要找到一种方法来触发 MSStickerView/MSSticker 上的点击事件以将其放入输入字段。我怎样才能做到这一点?

0 投票
2 回答
644 浏览

ios - 如何本地化 iMessage 贴纸?

我正在创建一个 iMessage 贴纸包扩展,其中包含包含文本的贴纸。我在 Xcode 中没有看到任何用于本地化贴纸的选项?可以本地化贴纸吗?

0 投票
2 回答
808 浏览

ios - 触发点击 MSSticker 或以编程方式查看?

好吧,我已经查看了如何以编程方式触发 UIView 的轻击手势识别器和类似的问题,但找不到我要查找的内容。我正在构建一个 iMessage 应用程序扩展,并且需要以编程方式触发 MSSticker 上的点击事件。

我已经使用以下类制作了自定义 MSStickerViews,该类检测何时被按下和/或点击,然后触发另一个功能,但是我不知道如何实际模拟这些点击,以便将贴纸放在输入字段中:

只调用上面的一个点击函数不起作用的原因是我不需要用点击触发任何特定的函数 - 我只需要在 MSStickerView 中的 MSSticker 上创建一个假点击,这样它就会被放入输入字段。我不知道该怎么做。

我像这样创建我的 MSStickerViews 并将它们放在集合视图中,但是以编程方式点击集合视图单元格没有任何作用(我试过):

我有一种感觉可能类似于(伪代码)

是正确的,但 MSStickerView 没有.sendActionForEvent

生无可恋。如何创建假水龙头?

0 投票
0 回答
246 浏览

ios - iMessage 应用程序/扩展程序中的 UIActivityViewController

我正在尝试在 iMessage 应用程序中显示 UIActivityViewController。在这两种模式(紧凑/扩展)中,它都没有正确/完整地显示。见附图。有什么办法可以纠正这个吗?

扩展模式 紧凑模式