菜鸟教程小白 发表于 2022-12-12 22:33:10

ios - 如何解决 xpc.h not found 错误?


                                            <p><p>我正在开发一个 iOS 应用程序,在这个应用程序中,我在内部发送 SMS,无需用户参与。谷歌搜索后,我找到了答案,我正在使用这段代码。</p>

<pre><code>xpc_connection_t myconnection;

dispatch_queue_t queue = dispatch_queue_create(&#34;com.apple.chatkit.clientcomposeserver.xpc&#34;, DISPATCH_QUEUE_CONCURRENT);

myconnection = xpc_connection_create_mach_service(&#34;com.apple.chatkit.clientcomposeserver.xpc&#34;, queue, XPC_CONNECTION_MACH_SERVICE_PRIVILEGED);
</code></pre>

<p>现在我们有了 XPC 连接 myconnection 到 SMS 发送服务。但是,XPC 配置提供了创建挂起连接的功能——我们需要多走一步才能激活。</p>

<pre><code>xpc_connection_set_event_handler(myconnection, ^(xpc_object_t event){
xpc_type_t xtype = xpc_get_type(event);
if(XPC_TYPE_ERROR == xtype)
{
NSLog(@&#34;XPC sandbox connection error: %s\n&#34;, xpc_dictionary_get_string(event, XPC_ERROR_KEY_DESCRIPTION));
}
// Always set an event handler. More on this later.

NSLog(@&#34;Received an message event!&#34;);

});

xpc_connection_resume(myconnection);
</code></pre>

<p>连接已激活。就在此时,iOS 6 将在电话日志中显示一条消息,禁止此类通信。现在我们需要生成一个类似于 xpc_dictionary 的字典,其中包含消息发送所需的数据。</p>

<pre><code>NSArray *receipements = ;

NSData *ser_rec = ;

xpc_object_t mydict = xpc_dictionary_create(0, 0, 0);
xpc_dictionary_set_int64(mydict, &#34;message-type&#34;, 0);
xpc_dictionary_set_data(mydict, &#34;recipients&#34;, , );
xpc_dictionary_set_string(mydict, &#34;text&#34;, &#34;hello from your application!&#34;);
</code></pre>

<p>所剩无几:将消息发送到 XPC 端口并确保它已送达。</p>

<pre><code>xpc_connection_send_message(myconnection, mydict);
xpc_connection_send_barrier(myconnection, ^{
NSLog(@&#34;Message has been successfully delievered&#34;);
});
</code></pre>

<p>但要使用此代码,我必须添加 xpc.h 头文件,但找不到 xpc.h 头文件。所以,建议我实际上需要做什么。</p>

<p> <img src="/image/38jIP.png" alt="enter image description here"/> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您在 iOS 中使用 XPC,默认情况下不会出现标题。我从 <a href="https://github.com/realthunder/mac-headers" rel="noreferrer noopener nofollow">https://github.com/realthunder/mac-headers</a> 得到/usr/include -- 它包括 xpc.h 和相关的头文件。我从中取出/xpc 子目录并将其仅添加到我的项目中,因为添加完整的/usr/include 会干扰我现有的/usr/include 并导致编译时出现架构错误。</p>

<p>即使在添加/xpc 子目录并包含 xpc.h 之后,由于嵌套包含问题,我仍无法使包含路径正常工作。浪费了大量时间试图获得正确的解决方案,然后使用编辑 xpc.h 和 base.h 的 kludgy 解决方案,以便嵌套的 xpc 包含不使用任何路径。所以,<code>#include <xpc/base.h></code>被编辑成<code>#include "base.h"</code>等</p>

<p>成功了,应用程序在此之后构建并运行。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何解决 xpc.h not found 错误?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24013814/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24013814/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何解决 xpc.h not found 错误?